在AtomGit发现的好东西,分享出来供参考
原仓库地址:https://atomgit.com/securitytools-assessment/SecurityTools-Assessment/tree/master/SCA/
以下为搬运(非全文,建议直接码住原仓库文档,有很详细的指标选取及用例细节,很有价值):
本文件夹内容为开放原子基金会开源SCA工具评测项目,本轮评测工作由统信软件、百度、阿里、绿盟共同完成。
测试说明
每一个testcase可对应评测框架中的多个指标项,correct.json是其正确结果的描述,当工具能正确解析该testcase(并得到正确的漏洞结果)时通过该testcase。
correct.json 中 artifacts 是基于Maven等原生编译工具解析而得到的组件列表,vulns则是基于此结果遍历当时所有已知CVE漏洞的结果。
评测结果说明
由于各开源工具和厂商对「组件」和「漏洞」的定义并不统一,在组件、版本、漏洞的描述和格式上也较为多样(如厂商自定义的漏洞编号等),因此在本轮次评测中,我们采用了较为宽松的方式,当开源工具支持该testcase的解析并得到扫描结果便视为用例通过。
但我们也保留了一份基于correct.json进行评测的结果,在表格中带有「严格」字样。
不同的生产环境、测试时间、网络等原因可能导致偏移,本项目以提供「评测方法」及「评测用例」为主,在每轮评测我们都对工具都提供了同样测试环境,但因其他因素影响(如网络等)而导致表现出不同结果也是有可能的,这将被视为是工具自身的特性。
致谢
我们站在巨人肩膀上,感谢 EFDA 等开源项目。
评测工具
检测工具 | OpenSCA | Murphysec | DependencyCheck | Trivy | Synk-cli |
版本 | v1.0.12 | V3.1.1 | 8.3.1 | 0.42.1 | 1.1196.0 |
评测用例
用例选取自开源项目EFDA、各语言开源集成工具以及自研。除检验基础SCA解析能力外,还重点选取了如编译动态特性、多模块、跨目录、文件级分析、代码级分析等复杂场景,其中部分用例仅在低版本/特定版本编译环境中支持,以全面测试开源工具SCA能力。
语言 | 测试用例数 |
Go | 4 |
Java | 14 |
JS | 9 |
Python | 3 |
评测方法
使用检测工具对测试用例集进行软件成分分析及漏洞检测,测试期间收集各类性能指标。检测结束后根据检测工具报告的内容进行分析。当工具支持该测试用例,并能正确解析出组件及漏洞时记为该测试用例正确检出,否则记为错误检出。
根据正确检出数、错误检出数,结合该指标权重(合格、良好、优秀)计算该测评得分。
如有多轮评测,计算各轮次的平均得分为最终得分。
此处仅附上结果,详情可跳转原文档查看:
工具名称 | 版本 | 得分(第一轮) | 得分(第二轮) | 最终得分 |
OpenSCA | v1.0.12 | 117.61 | 135.61 | 126.61 |
DependencyCheck | 8.3.1 | 88.9 | 78.443 | 83.6715 |
Murphysec | v3.1.1 | 99.96 | 66.84 | 83.22 |
Trivy | 0.42.1 | 76.7 | 86.04 | 81.37 |
Synk-cli | 1.1196.0 | 72.9 | 53.99 | 63.445 |