SCA软件组成成分分析,是用于分析开发人员使用的源码、模块、框架和库,以识别和清点开源软件的组件构成及依赖关系,并识别已知的安全漏洞或者潜在的许可证授权问题,将风险排查在应用系统投产前,同时也适用于应用系统运行中的诊断分析。

开源安全研究院参与信通院的行业标准《网络安全产品成熟度评价体系 应用软件成分安全检测分析系统评价方法》的起草和研讨,该标准拟提出应用软件成分安全检测分析系统或具有应用软件成分安全检测分析功能的产品技术框架、测试检验和评价方法。基于我们对标准的理解以及对SCA工具的理解,对以下7个可获得的知名免费SCA工具进行调研:

开源网安SourceCheck(SaaS版) 访问地址:

https://sca.seczone.cn/

SNYK(SaaS版)访问地址:

https://app.snyk.io/login?cta=sign-up&loc=body&page=open-source-security

SNYK(开源版) 访问地址:

https://github.com/snyk/cli

OWASP DependencyCheck 访问地址:

https://owasp.org/www-project-dependency-check/

悬镜OpenSCA 访问地址:

https://github.com/XmirrorSecurity/OpenSCA-cli/releases

墨菲安全 苏木 访问地址 :

https://s.murphysec.com/install.sh

FOSSA 访问地址:

https://raw.githubusercontent.com/fossas/fossa-cli/master/install-latest.sh

以JEESNS1.4.2作为项目进行扫描,详情如下:

扫描对象:

JEESNS是一款基于JAVA企业级平台研发的社交管理系统,依托企业级JAVA的高效、安全、稳定等优势,开创国内JAVA版开源SNS先河。数据库使用MYSQL,全部源代码开放。

扫描版本:JEESNS1.4.2

下载地址:https://github.com/zchuanzhao/jeesns

通过对JEESNS1.4.2项目的扫描检测,人工统计核对出该项目的组件数量,漏洞数量及许可数量。

(扫描结果如下图)

根据SCA工具可以解决的问题,可以知道SCA工具的核心功能是能扫描检测出组件相关信息(名称,版本号,组件路径),提供漏洞清单,漏洞清单具备的基础上或许还能检测并提供许可证授权的报告。7个免费SCA工具的导出报告中可提供信息如下图显示:

按SCA工具的信息覆盖能力:

SourceCheck(SaaS)=Snyk(SaaS)>Snyk(开源版)=Dependency Check>墨菲安全>OpenSCA>FOSSA

组件检出率分析

对于java项目的第三方组件检出率来说,Pom文件和项目运行时lib目录中的jar包是可以通过人工分析得出的,因此我们认为这是sca工具最起码要达到的标准。

在jar包里面的内容由于分析层次及数据库能力的关系,无法确定数量,但扫描的第一层级应当完全识别出来。标杆数据为人工统计的组件数目,以此作为标准,对调研的免费SCA工具进行计算检出率(具体数据详情如下)

按SCA工具的检出率:

SourceCheck(SaaS版本)>Snyk(SaaS版)>Snyk(开源版)>OpenSCA>DependencyCheck>墨菲安全

组件漏洞知识库更新频率分析

每年有数以百万计的新的安全漏洞被发现,好的SCA 工具需要保持最新的漏洞检测库,漏洞库的更新不能在一个重大漏洞发现一个月后才进行。这样每次运行扫描程序时才能得到最新的结果,软件上线后,也依然可以依据经常更新其已知漏洞列表去发现软件中的缺陷,便利了研发人员对已发布软件的维护。

我们以国家信息安全漏洞库2022年4月份更新的2个漏洞来对各个工具进行测试验证

CVE-2021-31805

漏洞发现时间:2022年4月12日

扫描检测时间:2022年4月22日

漏洞描述:

Apache Struts2是一个用于开发Java EE网络应用程序的Web框架。在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

本次漏洞是对CVE-2020-17530修复之后的绕过,当使用语法%{...}应用强制OGNL解析,某些tag标签的属性仍然可以被二次解析。

漏洞编号:

CVE-2022-24859

漏洞发现时间:2022年4月18日

扫描检测时间:2022年4月21日

漏洞描述:

PyPDF2是一个开源python PDF库,能够拆分,合并,裁剪和转换PDF文件的页面。在 1.27.5 之前的版本中,使用此漏洞的攻击者可以制作 PDF,如果代码尝试获取内容流,则会导致 PyPDF2 无限循环。原因是“ContentStream._readInlineImage”中的最后一个 while 循环仅在找到“EI”令牌时终止,但从未实际检查流是否已经结束。此问题已在版本“1.27.5”中解决。无法升级的用户应在循环访问其内容流之前验证 PDF 和 PDF。

详情如下图

根据组件漏洞知识库更新频率:

SourceCheck(SaaS版)>Snyk(SaaS版)=Snyk(开源版)=墨菲安全=FOSSA=墨菲安全>DependencyCheck=OpenSCA

SCA工具的使用方式分析

SCA工具含有WEB界面,命令行两种使用方式,但不同的免费的SCA工具可提供到的使用方式不同,下表为本次调研的7个免费SCA工具的WEB界面命令行数据对比图:

使用方式:

提供命令行的是Synk(开源版),墨菲安全,Dependency Check,FOSSA和OpenSCA

提供Web界面的是OpenSCA,Snyk(SaaS版)和SoureCheck (SaaS版)

漏洞数据库分析

OpenSCA、墨菲安全、FOSSA、Snyk(开源版)、Snyk(SaaS版)、SourceCheck(SaaS版)数据均需要依赖工具厂商。仅有Dependency Check用户可在本地保存数据。

 免费SCA工具SaaS版本的注册登录

SourceCheck(SaaS版)

访问地址:

https://sca.seczone.cn/

注册使用:

申请Gitee账号,登录到SourceCheck平台,用Gitee账户登录即可

如何通过Gitee账号使用SourceCheck详情如下图

Snyk(SaaS版)

访问地址:

https://app.snyk.io/login?cta=sign-up&loc=body&page=open-source-security

注册使用:

申请Github账号,登录到Synk平台,用Github账户登录即可。(详情如下图)

选择建议 

根据组件检出率分析,组件漏洞知识库更新频率分析以及SCA工具的使用方式分析及漏洞数据库分析,开源安全研究院对本次调研的7个免费SCA工具的建议如下:

1.仅需使用sca功能的推荐使用SourceCheck

2.希望二次开发使用,带WEB界面,推荐使用Open SCA

3.注重独立性不依托厂商,希望二次开发使用,推荐使用Dependency Check

各个用户可以根据各自所需选择使用自己偏好的SCA免费工具

开源安全研究院

开源安全研究院是依托开源网安公司的产品和丰富的案例,专注于软件安全相关技术及政策的研究,围绕行业发展的焦点问题以及前沿性的研究课题,结合国家及社会的实际需求以开放、合作共享的方式开展创新型和实践性的技术研究及分享。团队自2021年成立以来现已发现了10多个CVE漏洞,参编了中国联通研究院《CU-DevSecOps实践白皮书》,国资委《中央企业网络安全发展研究报告》,国家标准《政府门户网站系统安全技术指南》、《软件供应链安全要求》、《网络安全从业人员能力基本要求》,国家标准研究《互联网恶意软件治理规范》、《安全开发能力评估准则》,工信安全团标《软件安全开发基本要求》、《软件安全开发能力评估》,等级保护团标《网络安全等级保护应用软件安全开发管理评估指南》,通信行业标准《面向云计算的研发运营安全工具能力要求》、《开源软件治理能力评估方法》、《网络安全产品成熟度系列标准》。并于2021年底在OWASP中国的技术支撑下成功地举办了2021首届WAF攻防大赛。

开源安全研究院不定期发布对各类安全工具进行的测评报告及安全知识科普文,方便大家筛选适合自己的安全工具,并且开源安全研究院搭建有免费的DevSecOps平台git.gitsec.cn,来为软件安全爱好者提供一个完整的DevSecOps实验环境,与此同时我们也欢迎开源软件的作者、开源项目厂商进行战略合作对开源项目存在的安全问题进行深入交流。希望能共同维护开源生态平衡,并对开源出一份力。

免费SCA工具横向测评相关推荐

  1. 你的新媒体写作工具横向测评,请查收!

    在流量为王的时代,新媒体运营岗位工作内容琐碎而繁杂,不仅要选题策划,还要兼顾撰文.作图.排版等一系列工作,但实际情况是,从业者没有三头六臂,精力和创造力有限,这时候高效便捷的辅助工具和提供灵感的触发机 ...

  2. 专业清洁工 八款系统垃圾清理工具横向测评

    经常听到有人抱怨,自己的电脑越用越慢,难道是中毒了吗,于是找来各种杀毒杀木马软件一阵猛杀,可是不起效果,甚至更慢,那到底是什么原因导致系统变慢了呢?答案可能就是今天小编要带领大家对付的对象--系统垃圾 ...

  3. 五款轻量型bug管理工具横向测评

    最近正在使用的本地bug管理软件又出问题了,已经记不清这是第几次了,每次出现问题都要耗费大量的时间精力去网上寻找解决方案,劳心劳力.为了避免再次出现这样的情况,我决定从线下转到线上,使用轻量型的在线b ...

  4. Linux内核漏洞精准检测如何做?SCA工具不能只在软件层面

    摘要:二进制SCA工具要想更好的辅助安全人员实现安全审计.降低漏洞检测的误报率,必须向更细颗粒度的检测维度发展,而不仅仅停留在开源软件的层面,同时对漏洞库的要求也需要向细颗粒度的精准信息提出的挑战. ...

  5. SD卡内存卡修复工具哪个好?4款工具对比测评

    现在的内存卡不管是SD卡还是 TF卡还是手机内存卡都或多或少有各种各样的问题,内存卡又不像U盘可以用 量产工具修复,如果出现无法格式化,不能读出数据,不能打开等问题受伤的不止是数据还有内存卡本身也没法 ...

  6. 这19款最好用的免费安全工具,使用不当或许面临牢狱之灾。

    前言: 大家好 我是周杰伦! 工具本身没有好坏,但如果能充分利用好的工具,往往能达到意想不到的效果,安全行业尤其如此.这期推荐的是一些免费而且很优秀的安全软件工具,无论是渗透测试,开源情报,还是漏洞评 ...

  7. SCA工具对比分析和应用解读「超全」

    开源软件在软件开发中的应用越来越广泛,但开源软件的使用也带来了不容忽视的安全威胁,开源软件中的漏洞容易直接被引入,企业安全合规面临的新挑战也在逐渐增加. 为了对开源软件进行管理,软件成分分析(Soft ...

  8. 业界最全的Redis可视化工具横向评测

    业界最全的Redis可视化工具横向评测 QuickRedis QuickRedis 是一款 永久免费 的 Redis 可视化管理工具.它支持直连.哨兵.集群模式,支持亿万数量级的 key,还有令人兴奋 ...

  9. 4款UI智能标注工具真实测评-有态度的测评

    小编用同一张图的标注结果,测评一下当前市面上的各种智能标注工具,及其优缺点. UI智能标注工具哪个好用?这样的疑问通常源于以下几个场景: 懒,不想一个个试: 忙,没时间一个个试: 白,无从下爪: 对目 ...

最新文章

  1. 用计算机问你叫什么名字,计算器女友与男子谈情说爱 一分钟发出各种甜言蜜语...
  2. 无线多操作系统启动之uInitrd阶段NFS挂载篇
  3. 蹦球传说诺基亚java_bouncetales蹦球传说
  4. 【ASP.NET Web API教程】2.3 与实体框架一起使用Web API
  5. 清华同方计算机教程,清华同方电脑u盘重装系统win10教程
  6. java实现控制继电器_单片机控制继电器
  7. 基于tensorflow的RNN中文自动写诗程序
  8. 修改服务器配额有什么坏处,云服务器配额调整
  9. 老男孩Day1作业(二):三级菜单
  10. 互联网之子:亚伦·斯沃茨
  11. win7音量图标不见了怎么办
  12. 程序员的焦虑!承认吧!你不是不行,你是不敢
  13. 【Matlab学习手记】三维矢量场图
  14. 火狐使用js下载文件_如何使用Firefox Send安全地将大文件发送给任何人
  15. GitHub 爆赞的 RocketMQ 分布式中间件学习手册,竟一夜下载量破 10W+
  16. 阿里巴巴字体图标怎么改变尺寸
  17. linux配置selinux为许可模式,SELinux安全配置,详细说明
  18. 【PYTHON数据分析实战】电影票房数据分析(一)数据采集
  19. NLPCC 2023 Shared Task 5:中文医疗教学视频问答任务
  20. 角色扮演swing小游戏项目总结

热门文章

  1. Dev中的ChartControl的Y轴显示单位
  2. good 第一篇、教你学会看电路图轻松修手机
  3. H264文件封装MP4文件
  4. 小程序适配H5端跨域问题解决
  5. 朱志星:道路交通事故“减量控大”技术治理思路和对策
  6. 使用TensorFlow的卷积神经网络识别手写数字(3)-识别篇
  7. 外观检测可以检测产品的哪些项目?
  8. 不安抗辩权有哪些规定
  9. GeoPandas官方中文文档--译著
  10. 汇编语言程序设计实验报告三