使用DependencyCheck工具检测JAR依赖包的安全漏洞
创作时间:
作者:
@小白创作中心
使用DependencyCheck工具检测JAR依赖包的安全漏洞
引用
CSDN
1.
https://blog.csdn.net/kennylee26/article/details/138440301
DependencyCheck是一个开源工具,用于检测软件项目中使用的第三方库和组件是否存在已知的安全漏洞。它可以帮助开发团队及时发现和解决项目中的潜在安全风险,从而提高软件的安全性。本文将详细介绍DependencyCheck工具的使用方法,包括通过命令行和Maven插件进行漏洞检测。
DependencyCheck项目
- GitHub项目地址:https://github.com/jeremylong/DependencyCheck
- 文档地址:https://jeremylong.github.io/DependencyCheck/
使用方法
注意网络因素
由于漏洞数据库和一些依赖文件需要从国外网站下载,因此在使用时需要注意网络环境。
通过命令行使用
MacOS
安装命令
通过Homebrew安装:
$ brew install dependency-check
执行命令
// 扫描本地的foo-0.0.1-SNAPSHOT.jar文件,报告文件输出到Desktop目录 $ dependency-check --out ~/Desktop/ --scan ./foo-0.0.1-SNAPSHOT.jar
可以直接扫描项目中的所有JAR目录(libs),或者生成JAR文件(Spring Boot)后进行扫描。
漏洞数据库
DependencyCheck漏洞检测依赖一些数据库文件,如NVD漏洞数据库。首次使用时,需要花费较长时间下载这些数据库文件(视网络条件等因素)。界面参考如下:
其次是RetireJS。如果下载报错,例如遇到以下错误:
Caused by: org.owasp.dependencycheck.utils.DownloadFailedException: Download failed, unable to copy 'https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json' to '/opt/homebrew/Cellar/dependency-check/9.1.0/libexec/data/jsrepository.json'; Error downloading file https://raw.githubusercontent.com/Retirejs/retire.js/master/repository/jsrepository.json; unable to connect. at org.owasp.dependencycheck.utils.Downloader.fetchFile(Downloader.java:152) at org.owasp.dependencycheck.utils.Downloader.fetchFile(Downloader.java:100) at org.owasp.dependencycheck.data.update.RetireJSDataSource.initializeRetireJsRepo(RetireJSDataSource.java:150) ... 7 common frames omitted
可以手动下载
jsrepository.json
文件,然后将其拷贝到本地目录/opt/homebrew/Cellar/dependency-check/9.1.0/libexec/data/jsrepository.json
(根据实际本地提示进行操作)。
其他操作系统
到下载页面https://github.com/jeremylong/DependencyCheck/releases/下载最新版本,如`dependency-check-9.1.0-release.zip`。
解压压缩包。
找到工具目录,如:
bin
目录为命令行工具目录。Windows系统:
> .\bin\dependency-check.bat -h > .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]
Unix Like系统:
$ ./bin/dependency-check.sh -h $ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]
- 工具依赖和漏洞数据库文件的处理方式与MacOS类似。
通过Maven插件使用
在pom.xml
文件中加入DependencyCheck插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- dependency-check插件 -->
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>9.1.0</version>
<configuration>
<skipProvidedScope>true</skipProvidedScope>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
通过上述配置,可以在构建过程中自动进行依赖项安全检查。
热门推荐
提升肺活量的运动推荐 探索适合你的轻缓锻炼
苏格拉底说:“世上只有一种善,那就是知识,也只有一种恶,那就是无知。”
债权人申请债务人破产的条件及提交什么材料
债权人如何向法院申请破产?执行异议处理全解析
不小心做了错事,如何改正?
原神5.0版本新角色玛拉妮技能详解
液压泵压力与排量之间的关系如何?
吃东西呕吐不止挂什么科室
富马酸比索洛尔片的成人使用量是多少
离析混凝土怎么处理
泡水车内饰修复,哪款胶水最靠谱?泡水车汽车内饰胶水哪种好
北大经院学者 | 贾若:浅析区块链技术在保险领域的应用
软件交易条款是什么?一文读懂其核心内容与注意事项
治疗白内障的常用眼药水有哪些?
警惕插线板"发火"!这样用才放心!
各品牌N卡和A卡怎么选?丐版和旗舰有什么区别?显卡小白选购指南
合肥十大小吃,你真的尝遍了吗?
迈威生物谋求"A+H"两地上市,亏损已经常态化
《曹刿论战》专业级深度解读
广东惠州龙门永汉镇依托区位优势和旅游资源推动镇域经济新发展
动态景观的描绘,时空交织的艺术
“惊弓之鸟”的故事是什么?“惊弓之鸟”有什么寓意?
冒充快手运营商,三团伙诈骗千余家商户超5000万元
桥梁安全监测系统的关键监测指标是什么?
金属卟啉类化合物的合成方法
养老保险转移后怎么合并
乡村产业发展规划五大策略:目标+定位+原则+设计+谋划
公司处罚制度范本:构建规范、公正的处罚体系
芯势力焕发新动能
王者荣耀的社区化:以竞技类之身,行内容类之事