
OWASP dependency-checkは、アプリケーションの依存関係に存在する公開済みの脆弱性を検出するソフトウェア構成分析ユーティリティです。
Dependency-Check は、プロジェクトの依存関係に含まれる公開済みの脆弱性を検出するソフトウェア構成分析(SCA)ツールです。これは、特定の依存関係に Common Platform Enumeration (CPE) 識別子が存在するかどうかを判定することで実現されます。見つかった場合、関連する CVE エントリにリンクするレポートを生成します。
ドキュメントと本番用バイナリリリースへのリンクは、github pages にあります。さらに、アーキテクチャの詳細や dependency-check を拡張する方法については wiki を参照してください。
この製品は NVD API を使用していますが、NVD の推奨または認定を受けたものではありません。
NVD API の互換性の変更により、アップグレードが必須です。詳細は #7463 を参照してください。
dependency-check 11.0.0 以降を実行するには Java 11 が必要になりました
H2 データベースのアップグレード
11.0.0 には、ローカル H2 データベースに関する破壊的変更が含まれています。NVD データの完全なダウンロードが行われます。共有データディレクトリを使用している場合、h2 データベースファイルは古いバージョンの dependency-check と互換性がないことに注意してください。問題が発生した場合は、パージを実行する必要があるかもしれません:
./gradlew dependencyCheckPurgemvn org.owasp:dependency-check-maven:11.0.0:purgedependency-check.sh --purgeDependency-check は、9.0.0+(2024年1月)より、NVD データフィードの代わりに NVD API を使用するようになりました。
dependency-check のユーザーには、NVD API キーの取得を強くお勧めします。https://nvd.nist.gov/developers/request-an-api-key を参照してください。
NVD API キーがない場合、dependency-check の更新は非常に遅くなります。
NVD API キーの設定方法については、cli、maven、gradle、ant 統合のドキュメントを参照してください。
NVD API にはレート制限が適用されています。単一の API キーを使用していて複数のビルドが発生する場合、レート制限に達して 403 エラーが発生する可能性があります。CI 環境ではキャッシュ戦略を使用する必要があります。
2025年9月に Sonatype OSS Index は認証用の API トークンの使用を強制し始めました。2026年4月には引き続き Sonatype Guide への移行が始まり、2026年末までにレガシーな OSS Index API キー/トークンを置き換える予定の Sonatype Guide API トークンの使用への移行が開始されました。
認証情報がない場合、Dependency Check は OSS Index アナライザーを自動的に無効化します。Sonatype Guide トークンまたはレガシーな OSS Index API キーを使用するためのアナライザー認証情報の設定方法については、CLI、Maven、Gradle、または Ant 統合のドキュメントを参照してください。
Sonatype OSS Index(Guide 経由)を使用する場合は、Dependency-Check を設定し、商業/利用モデルが変更された Sonatype Guide への移行への影響を考慮する必要があります。詳細については アナライザーのドキュメント を参照してください。
9.0.0+ では、依存関係の解決により NoSuchMethodError 例外の問題が発生する可能性があります。この問題が発生した場合は、dependency-check の推移的依存関係の一部を特定のバージョンに固定する必要があります。例:
/buildSrc/build.gradle
dependencies {
constraints {
// org.owasp.dependencycheck needs at least this version of jackson. Other plugins pull in older versions..
add("implementation", "com.fasterxml.jackson:jackson-bom:2.21.2")
// org.owasp.dependencycheck needs these versions. Other plugins pull in older versions..
add("implementation", "org.apache.commons:commons-lang3:3.20.0")
add("implementation", "org.apache.commons:commons-text:1.15.0")
}
}
最低 Java バージョン: Java 11
OWASP dependency-check は、外部でホストされているいくつかのリソースへのアクセスを必要とします。詳細については 必要なインターネットアクセス を参照してください。
一部のテクノロジースタックを分析するために、dependency-check は他の開発ツールのインストールを必要とする場合があります。下記の分析の一部は実験的なものであり、実験的アナライザーを有効にする必要がある場合があります。
go をインストールする必要があります。Elixir プロジェクトの分析には mix_audit が必要です。npm、pnpm、yarn プロジェクトの分析には、npm、pnpm、または yarn をインストールする必要があります。
audit 機能を利用します。bundle-audit のラッパーであり、bundle-audit をインストールする必要があります。Jenkins プラグインの使用方法については、OWASP Dependency-Check プラグインページ を参照してください。
より詳細な手順は dependency-check github pages にあります。最新の CLI は github の リリースセクション からダウンロードできます。
最新リリースのダウンロード:
$ VERSION=$(curl -s https://dependency-check.github.io/DependencyCheck/current.txt)
$ curl -Ls "https://github.com/dependency-check/DependencyCheck/releases/download/v$VERSION/dependency-check-$VERSION-release.zip" --output dependency-check.zip
*nix の場合
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]
Windows の場合
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]
Mac で Homebrew を使用する場合
注 - 5.x から 6.0.0 にアップグレードする homebrew ユーザーは dependency-check.sh --purge を実行する必要があります。
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --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>
Gradle プラグインの使用方法については、dependency-check-gradle github page を参照してください。
Ant タスクの使用方法については、dependency-check-ant github page を参照してください。
インストールを成功させるには、以下のコンポーネントがインストールされている必要があります:
java -version 25.0mvn -version 3.6.3 以上テストケースには以下が必要です:
go version 1.12 以上以下の手順は、現在のスナップショットをコンパイルして使用する方法を説明しています。安定したスナップショットを維持することを意図していますが、上記のリリースバージョンを使用することをお勧めします。
リポジトリにはテストリソースのため大きいファイルがいくつかあります。チームは履歴を可能な限り整理しようとしました。ただし、時間を節約するためにシャロークローンを実行することをお勧めします:
git clone --depth 1 https://github.com/dependency-check/DependencyCheck.git
*nix の場合
$ mvn -s settings.xml install
$ ./cli/target/release/bin/dependency-check.sh -h
$ ./cli/target/release/bin/dependency-check.sh --out . --scan ./src/test/resources
Windows の場合
> mvn -s settings.xml install
> .\cli\target\release\bin\dependency-check.bat -h
> .\cli\target\release\bin\dependency-check.bat --out . --scan ./src/test/resources
その後、生成された 'dependency-check-report.html' をお好みのブラウザで開いてください。
ターンアラウンドサイクルを短縮するために、毎回テストを実行せずにコンパイルすることもできます:
mvn -s settings.xml install -DskipTests=true
PR を開く前に、少なくとも一度はテストを実行することを忘れないでください。:)
IntelliJ Idea でテストをデバッグできるようにするには、テストを実行してブレークポイントなどによるデバッグを有効にする Maven 設定を導入できます。
基本的には、https://www.jetbrains.com/help/idea/work-with-tests-in-maven.html#run_single_test に記載されている手順を行い、forkCount を 0 に設定します。そうしないとデバッグは機能しません。
手順:
Run -> Edit Configurations+ (Add new configuration) -> MavenRun tests)core)command line に -DforkCount=0 -f pom.xml -s ../settings.xml test と入力しますOK を押しますRun -> Debug を選択し、新しく作成した実行構成を選択しますIntelliJ はデバッグを有効にして core サブプロジェクトのテスト実行を実行します。コード内のどこに設定したブレークポイントでも機能するはずです。
ターンアラウンドサイクルを短縮したい場合は、1つの関数または1つのテストクラスのみをテストすることもできます。これは、実行構成に -Dtest=MyTestClass または -Dtest=MyTestClass#myTestFunction を追加することで機能します。実行構成の完全なコマンドラインは次のようになります:
-Dtest=MyTestClass#myTestFunction -DforkCount=0 -f pom.xml -s ../settings.xml test
以下の例では、チェック対象のソースが現在の作業ディレクトリにあり、レポートが $(pwd)/odc-reports に書き込まれることを想定しています。永続的なデータディレクトリとキャッシュディレクトリが使用されるため、実行後にコンテナを破棄できます。
Linux の場合:
#!/bin/sh
DC_VERSION="latest"
DC_DIRECTORY=$HOME/OWASP-Dependency-Check
DC_PROJECT="dependency-check scan: $(pwd)"
DATA_DIRECTORY="$DC_DIRECTORY/data"
CACHE_DIRECTORY="$DC_DIRECTORY/data/cache"
if [ ! -d "$DATA_DIRECTORY" ]; then
echo "Initially creating persistent directory: $DATA_DIRECTORY"
mkdir -p "$DATA_DIRECTORY"
fi
if [ ! -d "$CACHE_DIRECTORY" ]; then
echo "Initially creating persistent directory: $CACHE_DIRECTORY"
mkdir -p "$CACHE_DIRECTORY"
fi
# Make sure we are using the latest version
docker pull owasp/dependency-check:$DC_VERSION
docker run --rm \
-e user=$USER \
-u $(id -u ${USER}):$(id -g ${USER}) \
--volume $(pwd):/src:z \
--volume "$DATA_DIRECTORY":/usr/share/dependency-check/data:z \
--volume $(pwd)/odc-reports:/report:z \
owasp/dependency-check:$DC_VERSION \
--scan /src \
--format "ALL" \
--project "$DC_PROJECT" \
--out /report
# Use suppression like this: (where /src == $pwd)
# --suppression "/src/security/dependency-check-suppression.xml"
Windows の場合:
@echo off
set DC_VERSION="latest"
set DC_DIRECTORY=%USERPROFILE%\OWASP-Dependency-Check
SET DC_PROJECT="dependency-check scan: %CD%"
set DATA_DIRECTORY="%DC_DIRECTORY%\data"
set CACHE_DIRECTORY="%DC_DIRECTORY%\data\cache"
IF NOT EXIST %DATA_DIRECTORY% (
echo Initially creating persistent directory: %DATA_DIRECTORY%
mkdir %DATA_DIRECTORY%
)
IF NOT EXIST %CACHE_DIRECTORY% (
echo Initially creating persistent directory: %CACHE_DIRECTORY%
mkdir %CACHE_DIRECTORY%
)
rem Make sure we are using the latest version
docker pull owasp/dependency-check:%DC_VERSION%
docker run --rm ^
--volume %CD%:/src ^
--volume %DATA_DIRECTORY%:/usr/share/dependency-check/data ^
--volume %CD%/odc-reports:/report ^
owasp/dependency-check:%DC_VERSION% ^
--scan /src ^
--format "ALL" ^
--project "%DC_PROJECT%" ^
--out /report
rem Use suppression like this: (where /src == %CD%)
rem --suppression "/src/security/dependency-check-suppression.xml"
dependency-check をビルドするには(Java 11 を使用)、次のコマンドを実行します:
mvn -s settings.xml install
Dependency-check は、テストリソースとしてのみ使用されるいくつかの脆弱な依存関係を参照しています。これらのオプションのテスト依存関係はすべて test-dependencies プロファイルに含まれています。dependency-check をそれ自身に対して実行するには、test-dependencies プロファイルを除外するだけです:
mvn org.owasp:dependency-check-maven:aggregate -P-test-dependencies -DskipProvidedScope=true
github pages のドキュメントはこのリポジトリから生成されます:
mvn -s settings.xml site site:stage
完了したら、ブラウザで ./target/staging/index.html を開いてください。
dependency-check の Docker イメージをビルドするには、次のコマンドを実行します:
mvn -s settings.xml install
./docker-build.sh
修正および再配布の許可は、Apache 2.0 ライセンスの条件に基づいて付与されます。完全なライセンスについては LICENSE.txt ファイルを参照してください。
Dependency-Check は他のいくつかのオープンソースライブラリを利用しています。詳細については NOTICE.txt ファイルを参照してください。
この製品は NVD API を使用していますが、NVD の推奨または認定を受けたものではありません。
Copyright (c) 2012-2025 Jeremy Long. All Rights Reserved.
