跳至主要內容

Dependency-Check 依赖漏洞检测使用手册

大林鸱大约 3 分钟研发工具依赖漏洞检测

Dependency-Check 是 OWASP(Open Web Application Security Project)的一个实用开源程序,用于识别项目依赖项并检查是否存在任何已知的,公开披露的漏洞。目前,已支持 Java、.NET、Ruby、Node.js、Python 等语言编写的程序,并为 C/C++构建系统(autoconf 和 cmake)提供了有限的支持。而且该工具还是 OWASP Top 10 的解决方案的一部分。 Dependency-Check 支持面广(支持多种语言)、可集成性强,作为一款开源工具,在多年来的发展中已经支持和许多主流的软件进行集成,比如:命令行、Ant、Maven、Gradle、Jenkins、Sonar 等;具备使用方便,落地简单等优势。

实现原理

依赖性检查可用于扫描应用程序(及其依赖库),执行检查时会将 Common Platform Enumeration (CPE)国家漏洞数据库及 NPM Public Advisories 库下载到本地,再通过核心引擎中的一系列分析器检查项目依赖性,收集有关依赖项的信息,然后根据收集的依赖项信息与本地的 CPE&NPM 库数据进行对比,如果检查发现扫描的组件存在已知的易受攻击的漏洞则标识,最后生成报告进行展示。它可以用于甲方扫描乙方交付物,也可以用于研发人员的自扫描。

项目开源地址:https://github.com/jeremylong/DependencyCheck

使用方式

命令行执行(推荐)

首先需要下载 dependency-check 的工具包。dependency-check 支持多种使用方式,可集成 Ant Task、Maven 插件、Gradle 插件、Jenkins 插件等等,具体可以在下载地址页面查看。
下载地址:https://owasp.org/www-project-dependency-check/

解压后将 bin 目录添加到 Path 环境变量中。

  • Windows 环境:
# -n 不更新漏洞库,默认4小时自动拉取
# --project 项目名称
# --scan 扫描的路径或文件(可以扫目录,也可以直接扫压缩文件,zip,war,tgz等)
# --log 日志记录
# --disableRetireJS 不检查js
# --disableNodeJS 不检查nodejs
dependency-check.bat -n --project "My App Name" --scan "c:\workspace\application\path"
  • Linux 环境:
# Linux 环境中可以创建一个软连接,方便使用
cd ./bin
ln -s dependency-check.sh dependency-check
dependency-check --project "My App Name" --scan "/workspace/application/path"
  • 查看命令帮助
dependency-check --advancedHelp

Maven 集成

dependency-check-maven 非常易于使用,可以作为独立插件使用,也可以作为 maven site 的一部分使用。该插件需要使用 Maven 3.1 或更高版本。集成很简单,只需要在项目的 pom 文件中增加 maven 配置即可。

  • 用法一:修改 pom.xml 文件,用于在 target 目录中生成 dependency-check-report.html
<plugin>
  <groupId>org.owasp</groupId>
  <artifactId>dependency-check-maven</artifactId>
  <version>9.1.0</version>
  <configuration>
    <ossindexAnalyzerEnabled>false</ossindexAnalyzerEnabled>
    <nexusAnalyzerEnabled>false</nexusAnalyzerEnabled>
    <skipProvidedScope>true</skipProvidedScope>
    <skipRuntimeScope>false</skipRuntimeScope>
    <failOnError>false</failOnError>
  </configuration>
  <executions>
    <execution>
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>
  • 用法二:修改 pom.xml 文件,用于创建聚合报告
<plugin>
    <groupId>org.owasp</groupId>
    <artifactId>dependency-check-maven</artifactId>
    <version>9.1.0</version>
    <configuration>
        <ossindexAnalyzerEnabled>false</ossindexAnalyzerEnabled>
        <nexusAnalyzerEnabled>false</nexusAnalyzerEnabled>
        <skipProvidedScope>true</skipProvidedScope>
        <skipRuntimeScope>false</skipRuntimeScope>
        <failOnError>false</failOnError>
    </configuration>
    <reportSets>
        <reportSet>
            <reports>
                <report>aggregate</report>
            </reports>
        </reportSet>
    </reportSets>
</plugin>

配置好 POM 文件后,在执行 mvn verify 或者 mvn suit 时,便可同步生成聚合报告。

上次编辑于: