【安服联合运营中心】【工具分享】超好用工具分享之DependencyCheck
工具介绍
Dependency-Check是一个软件组成分析(SCA)工具,它的功能是检测项目的依赖关系中是否包含的公开披露的漏洞。如果发现漏洞,它将生成一份报告,链接到相关的CVE条目。
同时它是开源的,源码:https://github.com/jeremylong/DependencyCheck,关于工具更多详细信息请阅读README.md
工具使用及下载
工具提供了多种使用方式
插件使用
- Jenkins 插件
请参考OWASP Dependency-Check Plugin页面 - Maven 插件
Pom.xml 中添加依赖
<project>
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>7.4.1</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
执行 mvn verify
即可获取结果,部分输出结果如下图所示:
检查结果位于target/dependency-check-report.html
打开html 可以看到有很多已知漏洞存在于该工程,详细信息包括存在漏洞的库名称、危害等级,数量等信息。
点击具体库名称,还可以查看更多详细信息,比如点击fastjson-1.2.76.jar,详细如下图所示
命令行使用
命令行安装
扫描jar包
$ dependency-check --out . --scan /path/org/apache/shiro
结果输出与当前目录,如下图所示:
结构和细节与上文提到一致,此处不再赘述。
小结
DependencyCheck 是安服同事在进行java web 代码审计工作中发现依赖库历史漏洞的利器,如果你还没用过那么在以后做代码审计的时候一定要想起它。