Dependency-Check 是一个试图检测项目依赖中所包含的公开披露漏洞的实用工具。它通过确定给定依赖是否存在通用平台枚举(CPE)标识符来实现这一点。如果找到,它将生成一个报告,链接到相关的 CVE 条目。
文档及生产二进制发行版的链接可在 GitHub 页面 上找到。此外,关于架构和扩展 dependency-check 方式的更多信息可在 wiki 上找到。
关于 Jenkins 插件的使用说明,请参阅 OWASP Dependency-Check 插件页面。
更详细的说明可在 dependency-check GitHub 页面 上找到。最新的 CLI 可从 bintray 的 dependency-check 页面 下载。
在 *nix 上
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --project Testing --out . --scan [path to jar files to be scanned]
在 Windows 上
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --project Testing --out . --scan [path to jar files to be scanned]
在 Mac 上使用 Homebrew
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --project Testing --out . --scan [path to jar files to be scanned]
更详细的说明可在 dependency-check-maven GitHub 页面 上找到。默认情况下,该插件绑定到 verify 阶段(即 mvn verify)。或者,可以通过 mvn org.owasp:dependency-check-maven:check 直接调用该插件。
可以通过以下方式配置 dependency-check 插件:
<project>
<build>
<plugins>
...
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
关于 Ant 任务的使用说明,请参阅 dependency-check-ant GitHub 页面。
以下说明概述了如何编译和使用当前快照。虽然我们力求保持快照稳定,但仍建议使用上面列出的发布版本。
由于测试资源,仓库中包含一些大文件。团队已尽可能清理历史记录。不过,建议您执行浅克隆以节省时间:
git clone --depth 1 https://github.com/jeremylong/DependencyCheck.git
在 *nix 上
$ mvn install
$ ./cli/target/release/bin/dependency-check.sh -h
$ ./cli/target/release/bin/dependency-check.sh --project Testing --out . --scan ./src/test/resources
在 Windows 上
> mvn install
> .\dependency-check-cli\target\release\bin\dependency-check.bat -h
> .\dependency-check-cli\target\release\bin\dependency-check.bat --project Testing --out . --scan ./src/test/resources
然后在您常用的浏览器中加载生成的 'dependency-check-report.html' 文件。
在以下示例中,假设要检查的源代码位于当前工作目录。示例使用了持久化数据和报告目录,允许您在运行后销毁容器。
#!/bin/sh
OWASPDC_DIRECTORY=$HOME/OWASP-Dependency-Check
DATA_DIRECTORY="$OWASPDC_DIRECTORY/data"
REPORT_DIRECTORY="$OWASPDC_DIRECTORY/reports"
if [ ! -d "$DATA_DIRECTORY" ]; then
echo "Initially creating persistent directories"
mkdir -p "$DATA_DIRECTORY"
chmod -R 777 "$DATA_DIRECTORY"
mkdir -p "$REPORT_DIRECTORY"
chmod -R 777 "$REPORT_DIRECTORY"
fi
# Make sure we are using the latest version
docker pull owasp/dependency-check
docker run --rm \
--volume $(pwd):/src \
--volume "$DATA_DIRECTORY":/usr/share/dependency-check/data \
--volume "$REPORT_DIRECTORY":/report \
owasp/dependency-check \
--scan /src \
--format "ALL" \
--project "My OWASP Dependency Check Project"
# Use suppression like this: (/src == $pwd)
# --suppression "/src/security/dependency-check-suppression.xml"
请注意,从 1.x.x 版本升级时,需要对您的配置进行以下更改。
为了支持多个抑制文件,配置抑制文件的机制已更改。因此,已在配置中定义抑制文件的用户需要更新。
请参见下面的示例:
旧:
<dependency-check
failBuildOnCVSS="3"
suppressionFile="suppression.xml">
</dependency-check>
新:
<dependency-check
failBuildOnCVSS="3">
<suppressionFile path="suppression.xml" />
</dependency-check>
旧:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFile>suppression.xml</suppressionFile>
</configuration>
</plugin>
新:
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<configuration>
<suppressionFiles>
<suppressionFile>suppression.xml</suppressionFile>
</suppressionFiles>
</configuration>
</plugin>
除抑制文件的更改外,任务 dependencyCheck 已重命名为 dependencyCheckAnalyze。
旧:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFile='path/to/suppression.xml'
}
check.dependsOn dependencyCheckAnalyze
新:
buildscript {
repositories {
mavenLocal()
}
dependencies {
classpath 'org.owasp:dependency-check-gradle:2.0.1-SNAPSHOT'
}
}
apply plugin: 'org.owasp.dependencycheck'
dependencyCheck {
suppressionFiles = ['path/to/suppression1.xml', 'path/to/suppression2.xml']
}
check.dependsOn dependencyCheckAnalyze
订阅:[[email protected]] subscribe
发布:[[email protected]] post
存档:Google 群组
Dependency-Check 版权所有(c)2012-2017 Jeremy Long。保留所有权利。
根据 Apache 2.0 许可证的条款,授予修改和重新分发的权限。完整的许可证请参阅 LICENSE.txt 文件。
Dependency-Check 使用了多个其他开源库。更多信息请参阅 NOTICE.txt 文件。