使用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>
通过上述配置,可以在构建过程中自动进行依赖项安全检查。
热门推荐
烤瓷牙冠的使用寿命通常为多少年?影响其耐用性的因素有哪些?
洋葱和白萝卜的减肥功效与作用
SQE工程师职责是什么意思
单场狂破71分,MVP+得分王竟被新秀邓肯碾压?
《美丽心灵》心理分析:纳什的精神世界与爱情的力量
《中国互联网发展报告2024》:数字经济政策体系化布局加速推进
揭秘数据关系:深入理解相关系数公式的应用
河南今年新建7所新大学,大学数量持续增加,终于跃居全国第一
单招志愿填报指南:如何避免滑档、退档?
如何做好客户的定位管理
「常州智造」:助推工业高质量转型升级
汽车年检地点选择指南:如何找到适合自己的检测站
公务员薪资揭秘:谁为公务员发放工资?国家干部的薪酬源自何处?
高尿酸血症营养和运动指导原则(2024年版)附数百种食物嘌呤含量表
如何理解IB课程中的SL与HL
遭遇轻视、不尊重时,请记住心理学“海格力斯效应”
夏日除湿大作战:揭秘体内湿气与11味中药祛湿秘籍
湖南邵阳2025年十大富豪揭晓,4人身价超百亿,三位女老板齐上榜
STM32学习:存储器与寄存器映射详解
工行私人银行部涉11项违规,领开年最大罚单950万,合规意识哪去了?
低调景区临清东宛园,夜色迷透着唐风宋韵
糖尿病检测前的准备有哪些
魂魄理论在现代医学中的应用
如何在千元预算内挑选高性价比的翡翠吊坠?
咳嗽检查肺部挂什么科室
快乐豁达!原来汉代贵州先民对“死亡”是这样理解的
清华大学教授彭凯平:怎样应对死亡恐惧?
燕窝粥变质特征详解:如何识别变质燕窝粥的外观与味道
如何正确保存新鲜燕窝粥以延长保鲜期:全方位指南
美国经济的韧性与衰退风险