
OWASP dependency-checkは、アプリケーションの依存関係に存在する公開済みの脆弱性を検出するソフトウェア構成分析ユーティリティです。
Dependency-Checkは、プロジェクトの依存関係に含まれる公開されている脆弱性を検出することを目的としたソフトウェア構成分析(SCA)ツールです。これは、特定の依存関係にCommon Platform Enumeration(CPE)識別子が存在するかを判定することで実現します。該当する識別子が見つかった場合、関連するCVEエントリへのリンクを含むレポートを生成します。
ドキュメントおよび本番用バイナリリリースへのリンクはgithub pagesで確認できます。また、アーキテクチャの詳細やdependency-checkを拡張する方法については、[wiki]をご覧ください。
本製品はNVD APIを使用しますが、NVDによって承認または認定されたものではありません。
NVD APIの互換性変更により、アップグレードが必須となりました。詳細は#7463をご覧ください。
Java 11がdependency-check 11.0.0以上を実行するために必要になりました
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の更新は非常に遅くなります。cli、maven、gradle、またはant統合におけるNVD APIキーの設定方法については、各ドキュメントをご覧ください。
NVD APIには厳格なレート制限が適用されています。単一のAPIキーを使用しており、複数のビルドが実行される場合、レート制限に達して403エラーを受け取る可能性があります。CI環境ではキャッシュ戦略を使用する必要があります。
2025年9月、Sonatype OSS Indexは認証のためにAPIトークンの使用を義務付け始めました。2026年4月には、Sonatype Guideへの後続移行が始まり、レガシーなOSS Index APIキー/トークンを2026年末までに置き換える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のラッパーであり、これがインストールされている必要があります。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]
Homebrew搭載のMac上
注 - homebrewユーザーで5.xから6.0.0にアップグレードする場合は、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)。 alternatively、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以降以下の手順は、現在のスナップショットをコンパイルして使用する際の概要を示しています。安定したスナップショットを維持する意図はありますが、上記のリリースバージョンを使用することを推奨します。
テストリソースのため、リポジトリにはいくつかの大きなファイルが含まれています。チームは履歴のクリーンアップに努めていますが、時間を節約するために浅いクローン(shallow clone)を実行することを推奨します:
git clone --depth 1 https://github.com/dependency-check/DependencyCheck