
Dependency-Check は、プロジェクトの依存関係に含まれる公開済みの脆弱性を検出するユーティリティです。これは、特定の依存関係に対して Common Platform Enumeration (CPE) 識別子が存在するかどうかを判定することで実現します。識別子が見つかった場合、関連する CVE エントリへのリンクを含むレポートを生成します。
ドキュメントと本番用バイナリリリースへのリンクは GitHub Pages にあります。さらに、アーキテクチャの詳細や dependency-check を拡張する方法については wiki を参照してください。
Jenkins プラグインの使用方法については、OWASP Dependency-Check Plugin ページ を参照してください。
より詳細な手順は dependency-check GitHub Pages にあります。最新の 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 Pages にあります。デフォルトでは、プラグインは 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 Group
Dependency-Check は Jeremy Long が著作権を所有しています(Copyright (c) 2012-2017 Jeremy Long)。無断転載を禁じます。
変更および再配布は、Apache 2.0 ライセンスの条件に基づき許可されます。完全なライセンスについては LICENSE.txt ファイルを参照してください。
Dependency-Check は、他のいくつかのオープンソースライブラリを利用しています。詳細については NOTICE.txt ファイルを参照してください。