阅读 183

DependencyCheck踩坑记录

DependencyCheck踩坑记录

DependencyCheck 是owasp开源的一个SCA工具,之前在群里交流,有几家也在尝试落地实践了。

刚好Q3的时候在做代码审计系统的,Q4增加了SCA的检测功能,简单的调研了几个工具,如下:

 

Dependency Check ,OWASP开源,主要是检测java也支持检测其他的语言。

支持命令行方式,直接对jar包进行资产清点

支持maven的方式,直接使用mvn org.owasp:dependency-check-maven:check即可。

检测原理:将Dcheck,读取jar或maven包内的数据,将包内的数据转换为CPE格式,

例如:

 

 而CPE格式是NVD漏洞库提供的cpe32格式:

可以参考,后门会专门单独写这块:https://stackoverflow.com/questions/56680580/nvd-json-feeds-tags-meaning-and-their-purpose

例如在fastjson NVD这样定义CPE:

 

 

私有化部署,需要镜像NVD漏洞库,track同理

初次启动或间隔几个小时没有使用将会更新,官网有几个参数,可以仔细留意一下。

mvn org.owasp:dependency-check-maven:check -Dformats=CSV -DcveUrlModified=http://127.0.0.1:8000/nvdcve-1.1-modified.json.gz -DcveUrlBase=http://127.0.0.1:8000/nvdcve-1.1-%d.json.gz -Danalyzer.retirejs.repo.js.url=http://127.0.0.1:8000/jsrepository.json -Dinherited=false

 

 

 

 

 

 

 

支持生成HTML默认,CSV,JSON等格式,私有化需要指定参数,如项目中存在多个子任务,可能生成报表时出现问题,inherited=false启用聚合。

 

Dependency track,OWASP开源,支持的语言比较丰富。

检测原理:使用插件对代码项目生成bom.xml,类似pip request requirements,清点出使用的组件,Dependency track相当于一个漏洞库和分析引擎

这个方法好处就是只需要在客户端直接生成bom.xml,PUT track的REST接口即可。在测试过程中测试fastjson没清点出来。

 

 

snyk是商业化的,某公司在最开始Dependency Check切换到这个,漏洞库比较丰富。

 

2020年12月21日18:51:11 更新

最终还是自己重写了一套,便于后期维护,解析CPE,录入漏洞库,根据手机项目组件信息,自动实时检索组件相关漏洞。

 

 

查看漏洞:

 

【版权所有@Sevck 博客地址http://www.cnblogs.com/sevck】 可以转载,注明出处.


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐