OWASP Dependency-Check软件依赖分析工具

发布一下 0 0

当下的软件开发大量使用开源软件,以便快速开发出产品,迅速占领市场。开源软件确实给软件开发带来了便利,但是随之而来的安全问题也越发凸显,开源软件报告的漏洞数量每年都在增长,企业对开源组件的安全管控已刻不容缓。

Dependency-Check是非营利组织OWASP开源的的一款软件组成分析(SCA, Software Composition Analysis)工具,它通过扫描项目软件包结构、依赖配置文件提取依赖组件的厂商、名称、版本信息,然后通过与美国NVD开放漏洞库数据进行匹配,如果匹配成功则认为存在漏洞。目前工具已支持的扫描应用类型有Java&.NET、Python、PHP(comoser)、Ruby、Node.js、CocoaPods、Swift Package Manager。

值得一提的是SCA领域最著名的软件是黑鸭Black Duck Software,我试着通过官网申请试用,得到的答复是不提供个人用户的试用,连用户文档都不愿意提供。

下载

访问链接[OWASP Dependency-Check Project | OWASP](https://owasp.org/www-project-dependency-check/),点击Common Line即可下载工具,另外,还提供其他使用方式,可以根据实际场景选择合适的方式,本文以命令行方式进行介绍。

OWASP Dependency-Check软件依赖分析工具


下载解压后的目录如下

OWASP Dependency-Check软件依赖分析工具

bin目录如下,windows系统下运行.bat脚本,linux系统运行同名的.sh脚本,建议将bin目录添加到系统环境变量,这样就可以在任意位置执行。

OWASP Dependency-Check软件依赖分析工具

基本命令

执行扫描任务非常简单,下面是执行命令的示例,执行扫描任务前会首先从NVD数据库下载漏洞数据,如果之前已经执行过扫描则会增量进行同步。

dependency-check.sh --project DEMO --disableRetireJS --exclude */web/node_modules/** -s ./ -o /opt/data/report/dependency_check_report.html

命令参数说明:

--project 表示项目名称;


--disableRetireJS 表示忽略RetireJS,还支持其他类型,参加下面的链接详情;


--exclude 表示排除扫描的目录,模式"*/web/node_modules/**"表根目录下级子目录中

包含web/node_modules路径以及以下所有层级路径都不扫描,*表示一个层级任意目录,

**表示任意层级目录。支持多个排除项需要分别增加多个--exclude;


-s 表示扫描的目录,./表示在当前目录下执行扫描;


-o 表示输出报告的目录,默认输出html报告,也可以不指定具体的html报告名称而仅指定目录即可,自动创建报告默认名称为dependency_check_report.html;


-f 表述输出的格式,示例命令未使用该参数,如果要指定多个输出报告格式,

需要增加多个-f参数,如-f HTML -f JSON.


命令支持的参数详情请查看[dependency-check-cli – Command Line Arguments (jeremylong.github.io)](https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html);

报告

执行完毕后就会在指定目录生成报告,html格式报告示例如下,各项内容含义已做了标注。

OWASP Dependency-Check软件依赖分析工具

参考文献

[1]. OWASP Dependency-Check Project | OWASP

版权声明:内容来源于互联网和用户投稿 如有侵权请联系删除

本文地址:http://0561fc.cn/71486.html