
OWASP dependency-check는 애플리케이션 종속성에서 공개적으로 알려진 취약점을 탐지하는 소프트웨어 구성 분석 유틸리티입니다.
Dependency-Check는 프로젝트의 종속성 내에 포함된 공개적으로 공개된 취약점을 탐지하려는 소프트웨어 구성 분석(SCA) 도구입니다. 이는 주어진 종속성에 대한 공통 플랫폼 열거(CPE) 식별자가 있는지 확인하여 수행됩니다. 발견되면 관련 CVE 항목에 연결되는 보고서를 생성합니다.
문서 및 프로덕션 바이너리 릴리스 링크는 github 페이지에서 찾을 수 있습니다. 또한 아키텍처 및 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로의 마이그레이션에 대한 영향을 고려해야 합니다. 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 페이지에서 찾을 수 있습니다. 최신 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 페이지에서 찾을 수 있습니다.
기본적으로 플러그인은 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 페이지를 참조하십시오.
Ant 태스크 사용 지침은 dependency-check-ant github 페이지를 참조하십시오.
설치를 통과하려면 다음 구성 요소가 설치되어 있어야 합니다.
java -version 25.0mvn -version 3.6.3 이상테스트 케이스에는 다음이 필요합니다.
go version 1.12 이상다음 지침은 현재 스냅샷을 컴파일하고 사용하는 방법을 설명합니다. 안정적인 스냅샷을 유지하려는 모든 의도가 있지만 위에 나열된 릴리스 버전을 사용하는 것이 좋습니다.
저장소에는 테스트 리소스 때문에 일부 큰 파일이 있습니다. 팀은 가능한 한 기록을 정리하려고 노력했습니다. 그러나 시간을 절약하기 위해 얕은 복제(shallow clone)를 수행하는 것이 좋습니다.
git clone --depth 1 https://github.com/dependency-check/DependencyCheck