使用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>
通过上述配置,可以在构建过程中自动进行依赖项安全检查。
热门推荐
牛津布和无纺布收纳袋的优缺点对比
孕妇咳嗽怎么办?这些安全有效的缓解方法请收好
整牙须尽早?这些说法别轻信
满射单射一一映射如何区分
有社工证好不好找工作?解析社工证对就业的影响
普洱茶原料茶树品种为云南大叶种:其种植原因及不同品种解析
新能源汽车智慧充电桩液冷技术的工作原理是什么?
有一种逆袭叫“广元陈超”,脑瘫的他已从中大博士毕业!
SPS改善椎间盘突出的底层逻辑(内附海量训练动作)
腮腺恶性肿瘤怎么检查
“用音乐写小说”的诺贝尔文学奖得主罗曼·罗兰
培养孩子解决冲突的能力
咖啡养肝论
咖啡喝多了会损伤肝脏健康?过量饮用咖啡会给身体带来哪些危害?
如何解决水龙头滴水的问题?有哪些常见的解决方法?
地下室防水防潮全攻略:材料选择与施工要点详解
脾胃不好的人,这7种食物可以多吃,让您胃口更好
什么茶叶需要放冰箱冷藏?家庭存茶的5个要点,做不好茶就坏了
名医大典|刘海鹰,一心为民立脊梁!
科目一第一次考试要交钱吗?谁缴费?详细指南,看这篇就够了
如何查询人力资源考试的报考费用?
如何获取 Cloudflare 全局 API Token:完整步骤指南
抗炎、抗氧化、保护心血管健康 这种蔬菜你吃过吗?
红外线灯一天照几次一次多长时间
打印机的IP地址要如何查询
二元函数的极值(简明微积分)
直流电机的基本原理与结构
海南擦亮“海洋风”音乐名片,佳作频出
如何高效编写项目管理周报和月报?掌握这几个技巧让你的报告更出彩!
八字五行缺水吃什么食物,五行缺水吃什么好