前言
在现代软件开发中,开源库的使用愈加普遍,然而这些开源库中的漏洞往往会成为潜在的安全风险。如何及时的发现依赖的第三方库是否存在漏洞,就变成很重要了。
本文向大家推荐一款可以进行依赖包漏洞检查的 maven 插件 dependency-check-maven。通过这个插件可以扫描出项目中是否依赖已经存在的安全漏洞包及对应版本。
相关官方网址:
- https://owasp.org/www-project-dependency-check/
- https://jeremylong.github.io/DependencyCheck/
- http://jeremylong.github.io/DependencyCheck/dependency-check-cli/
- https://github.com/jeremylong/DependencyCheck
使用方法
1、申请 nvdApiKey
打开网址 https://nvd.nist.gov/developers/request-an-api-key 提交申请,会在填写的邮箱中收到下发的 API Key
,如下图所示:
2、添加插件依赖
在代码工程的 pom.xml 文件中添加插件依赖,内容如下:
<build>
<plugins>
......
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>10.0.3</version>
<configuration>
<autoUpdate>true</autoUpdate>
<nvdApiKey>6d88f39a-aa0a-4312-xxxx-xxxxxxxxxxx</nvdApiKey>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
更多配置参数详解官方文档: https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html
3、执行插件分析
打开命cmd命令行,执行命令 mvn dependency-check:check
即可进行分析检查。
如果是 idea 开发工具,可以直接在右侧的 maven 窗口中直接执行,如下图所示:
等待插件执行。
第一次执行的话,他的速度可能会比较慢,因为他需要从 NIST
托管的国家漏洞数据库下载漏洞数据到本地备份库。
如果执行出现错误 Failed to initialize the RetireJS repo
,可以手工下载 jsrepository.json
然后拷贝到 Maven本地私仓路径\org\owasp\dependency-check-data
中对应版本的目录下,如下图所示:
4、查看结果报告
执行完毕后,会在代码工程的 target
目录下产生 dependency-check-report.html
文件,这个文件是一个静态的 html 文件,通过浏览器即可打开查看。
点击每个链接可以插件具体的漏洞信息描述:
(END)