使用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>
通过上述配置,可以在构建过程中自动进行依赖项安全检查。
热门推荐
怎么备份微信群里的照片
微信群聊怎么管理照片
夫妻间有什么新玩法:夫妻间新趣味!尝试这些创意活动
当归散:传统中药方剂的现代应用
股票中的浮动盈亏与当日参考盈亏的区别?
养殖金孔雀犯法吗?解析相关法律法规与法律责任
连丢两盘出局,王欣瑜止步迈阿密站首轮,中国金花仅剩郑钦文
从深圳到巴黎 被“摇来”的王欣瑜很靠谱!
民商法硕士就业难?解析当前就业形势及应对策略
北京:优化“快进”设施网络,提升“慢游”服务体验
CPI、PPI和PMI:获得成功投资和交易策略的关键
架构师的六大核心职责详解
想成为技术架构师?这些核心能力你是否已经具备
反馈控制理论在优化、机器学习等领域的四大应用
全国爱眼日:甲亢突眼如何恢复正常?
新手养蜂全攻略:从入门到实战
春繁成败关键!定期查蜂群,你做对了吗,看看这4种检查蜂群技巧
新参加社保要带什么
如何通过教案有效组织教学活动:锻炼幼儿上肢力量与协调能力的实用指南
企业和机关事业养老保险缴费有什么区别?对养老金的影响有哪些?
价格贵一半!PS5版《极限竞速:地平线5》售价较Xbox版大幅降低
万年青种类区别与养护方法 | 植物特性及文化寓意解析
光智科技收购先导电科重大资产重组估值探讨
高压注射器使用方法及注意事项
2024 ASCO:靶向B7-H3药物有哪些最新研究进展?
企业风险管理中的常见问题及解决方案是什么?
自来水管网水质监测有什么意义
贝贝小南瓜和其它南瓜的区别
揭秘"富不过三代":古代社会财富传承难在哪?
李悝变法:古代中国的改革先驱与历史启示