问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

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

创作时间:
作者:
@小白创作中心

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

引用
CSDN
1.
https://blog.csdn.net/kennylee26/article/details/138440301

DependencyCheck是一个开源工具,用于检测软件项目中使用的第三方库和组件是否存在已知的安全漏洞。它可以帮助开发团队及时发现和解决项目中的潜在安全风险,从而提高软件的安全性。本文将详细介绍DependencyCheck工具的使用方法,包括通过命令行和Maven插件进行漏洞检测。

DependencyCheck项目

使用方法

注意网络因素

由于漏洞数据库和一些依赖文件需要从国外网站下载,因此在使用时需要注意网络环境。

通过命令行使用

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文件(Spring Boot)后进行扫描。

  3. 漏洞数据库

    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(根据实际本地提示进行操作)。

其他操作系统

  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]
    
  1. 工具依赖和漏洞数据库文件的处理方式与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>

通过上述配置,可以在构建过程中自动进行依赖项安全检查。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号