使用DependencyCheck工具检测JAR依赖包的安全漏洞

news2024/11/24 20:15:05

引言

Dependency-Check 是一个开源工具,用于检测软件项目中使用的第三方库和组件是否存在已知的安全漏洞。它可以帮助开发团队及时发现和解决项目中的潜在安全风险,从而提高软件的安全性。

该工具通过分析项目的依赖关系,识别其中使用的第三方库和组件,并与已知的漏洞数据库(如 National Vulnerability Database)进行对比,以确定这些依赖项是否受到已知漏洞的影响。一旦发现存在安全漏洞的依赖项,Dependency-Check 将提供详细的报告,包括漏洞描述、影响范围、修复建议等信息,帮助开发者及时采取必要的措施来修复漏洞。

使用 Dependency-Check 工具可以在早期发现并解决项目中的安全问题,减少了软件开发生命周期中安全漏洞带来的风险和成本。它可以集成到持续集成(CI)环境中,实现自动化的安全检测,为软件项目的安全保障提供了可靠的基础。

DependencyCheck项目

Github 项目地址:https://github.com/jeremylong/DependencyCheck
文档地址:https://jeremylong.github.io/DependencyCheck/

使用

注意网络因素

原因不多叙述,漏洞数据库和一些依赖文件会使用到国外网站,例如github等

通过命令

MacOS
1.安装命令

通过Homebrew安装

$ brew install dependency-check
2.执行命令
// 扫描本地的foo-0.0.1-SNAPSHOT.jar文件,报告文件输出到Desktop目录
$ dependency-check --out ~/Desktop/ --scan ./foo-0.0.1-SNAPSHOT.jar

可直接扫描项目用所有的jar目录(libs),或者生成jar文件(springboot)后进行扫描

3.漏洞数据库

Dependency-Check漏洞检测依赖一些数据库文件,如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 目录即可(根据实际本地提示进行操作)。

其他操作系统
  1. 到下载页面 https://github.com/jeremylong/DependencyCheck/releases/ 下载最新版本,如 dependency-check-9.1.0-release.zip

  2. 解压压缩包

  3. 找到工具目录,如

    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]
    
  4. 工具依赖,漏洞数据库文件,参见上面MacOS命令,大同小异

通过Maven插件

全局使用

修改 pom.xml 文件,加入dependency-check插件,参考如下:

    <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</

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1649182.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【牛客】Tokitsukaze and Average of Substring

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N]&#xff08;pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…

PE文件(四)FileBuffer-ImageBuffer

文件执行的总过程 当文件从硬盘中读入虚拟内存&#xff08;FileBuffer&#xff09;中时&#xff0c;文件数据会被原封不动的复制一份到虚拟内存中&#xff0c;然后进行拉伸对齐。此时虚拟内存中文件数据叫做文件印象或者内存印象&#xff0c;即ImageBuffer。此时ImageBuffer中…

KDTree空间搜索算法学习

目录 KDTree&#xff08;K-Dimensional Tree&#xff09;原理步骤空间索引建立例子[^1] 相关包案例[^2]数据KDTree 识别轨道衔接出行轨道衔接单车骑行范围分析结果保存 KDTree&#xff08;K-Dimensional Tree&#xff09;原理 将需要匹配的 K 维空间点建立 K 维树空间索引&…

FSC森林认证是什么?

FSC森林认证&#xff0c;又称木材认证&#xff0c;是一种运用市场机制来促进森林可持续经营&#xff0c;实现生态、社会和经济目标的工具。FSC森林认证包括森林经营认证&#xff08;Forest Management, FM&#xff09;和产销监管链认证&#xff08;Chain of Custody, COC&#…

Compose 状态管理

文章目录 Compose 状态管理概述使用MutableStaterememberStatelessComposable & StatefulComposable状态提升rememberSaveable支持parceable不支持parceable 使用ViewModelViewModelProvider.Factory 使用Flow Compose 状态管理 概述 当应用程序的状态发生变化时&#xf…

2024.5.7

槽函数声明 private slots:void on_ed_textChanged();void on_pushButton_clicked(); }; 槽函数定义 void Widget::on_ed_textChanged()//文本框 {if(ui->ed1->text().length()>5&&ui->ed2->text().length()>5){ui->pushButton->setStyleSh…

纯血鸿蒙APP实战开发——手写绘制及保存图片

介绍 本示例使用drawing库的Pen和Path结合NodeContainer组件实现手写绘制功能。手写板上完成绘制后&#xff0c;通过调用image库的packToFile和packing接口将手写板的绘制内容保存为图片&#xff0c;并将图片文件保存在应用沙箱路径中。 效果图预览 使用说明 在虚线区域手写…

二进制转为HEX数组小工具

在使用RA8889时&#xff0c;JPG的解码只能从FLASH的DMA通道获取&#xff0c;那么如果要从远端、或者SD卡等处读取JPG图片出来显示怎么办&#xff1f; RA8889支持JPG图片硬解码&#xff0c;但数据流是从FLASH进行DMA读取的&#xff0c;然后再进行解码。因此这种情况下&#xff…

音频数字信号I2S一些知识理解

(1)I2S单向基本传输需要几根线传输音频信号? 3根线 LRCK SCLK(也叫BLK) DATA(单向) (2)如何理解I2S MASTER或者SLAVE的模式&#xff1f; codec的i2s作为slave mode,LRCK和SCLK来自于soc主控端,codec端自动检测MCLK和LRCK codec的i2s作为master mode,codec通过MCLK LRCLKDIV…

使用Simulink Test进行单元测试

本文摘要&#xff1a;主要介绍如何利用Simulink Test工具箱&#xff0c;对模型进行单元测试。内容包括&#xff0c;如何创建Test Harness模型&#xff0c;如何自动生成excel格式的测试用例模板来创建测试用例&#xff0c;如何手动填写excel格式的测试用例模板来手动创建测试用例…

springboot模块以及非springboot模块构成的多模块maven项目最佳构建方式

文章目录 背景一般的实现使用spring-boot-dependencies 更优雅的实现. 背景 有时候构建一个多模块maven项目其中某一个模块是web-service需要使用spring boot,其他模块跟spring boot 完全无关,本文总结一下在这个场景下maven项目最佳构建方式. 一般的实现 网上应该也看到过很…

notepad++安装 hex-editor插件

打开notepad 点击插件 搜索 hex-editor,点击右侧 安装install 安装成功后&#xff0c;在已安装插件中就有显示了

LT6911GXC HDMI2.1转mipi / lvds 支持8K 60HZ,提供技术支持

一、 HDMI 以及 GPIO 使用的相关配置 1.1 配置 EDID 在 LT6911GX.c 文件中添加需要的 EDID 二、输出信号配置 2.1 选择输出信号格式 在 Global.h 中配置输出信号类型&#xff0c;如下图所示 2.2 MIPI 信号格式配置 在 MIPITXGlobal.h 中配置 MIPI 相关参数

Linux--基础IO(文件描述符fd)

目录 1.回顾一下文件 2.理解文件 下面就是系统调用的文件操作 文件描述符fd&#xff0c;fd的本质是什么&#xff1f; 读写文件与内核级缓存区的关系 据上理论我们就可以知道&#xff1a;open在干什么 3.理解Linux一切皆文件 4.C语言中的FILE* 1.回顾一下文件 先来段代码…

Python扩展模块的开发

有关python C扩展开发的教程可以参考概述 — Python 3.12.3 文档。项目已经发布至python官方的pypi里了。具体详情请见AdroitFisherman PyPI。目前该项目还处在测试阶段。尚有部分模块需要开发和测试。 项目结构 项目结构见下图&#xff1a; 代码展示与说明 以单链表(SingleL…

uniapp video 层级覆盖

层级覆盖 cover-view组件 我这里做了个判断 监听全屏时隐藏按钮 根据项目需求自行更改

KIE关键信息抽取——SDMG-R

https://arxiv.org/pdf/2103.14470https://arxiv.org/pdf/2103.14470 1.概述 背景:传统的关键信息提取方法依赖于模板匹配,这使它们难以泛化到未见过的模板,且对文本识别错误不够鲁棒。SDMG-R方法:提出一种端到端的双模态图推理方法,通过构建双模态图(视觉和文本特征),…

Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 4、Spring Data JPA的一对一、LazyInitializationException异常、一对多、多对多操作 前言 通过前三篇Sprin…

速看!这次主食冻干评测极可能被商家恶意举报~VE、希喂、PR真实测评

我发现还是有不少铲屎官局限于“进口最高贵”&#xff0c;盲目的迷信进口产品。看到进口粮就盲买&#xff0c;甚至过分的贬低国产品牌&#xff0c;将国产粮贴上“不靠谱”“不合格”等标签。 最近&#xff0c;我针对主食冻干的国内、国际标准&#xff0c;相关规范文件&#xf…