Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/dependency-check/dependencycheck
Vulnerability ScannersVulnerability AnalysisDevSecOpsSupply Chain Security
GitHubdependency-check/dependencycheck

DependencyCheck

OWASP dependency-check는 애플리케이션 종속성에서 공개적으로 알려진 취약점을 탐지하는 소프트웨어 구성 분석 유틸리티입니다.

저장소 보기
7.7k1.4k2일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Maven Central Build and Deploy Snapshot CII Best Practices Apache 2.0 License

Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal Black Hat Arsenal

Dependency-Check

Dependency-Check는 프로젝트의 의존성 내에 포함된 공개적으로 알려진 취약점을 탐지하는 SCA(Software Composition Analysis) 도구입니다. 주어진 의존성에 대해 CPE(Common Platform Enumeration) 식별자가 존재하는지 확인하는 방식으로 이를 수행합니다. 식별자가 발견되면 관련 CVE 항목으로 연결되는 보고서를 생성합니다.

문서 및 프로덕션 바이너리 릴리스 링크는 GitHub 페이지에서 확인할 수 있습니다. 또한 아키텍처 및 dependency-check 확장 방법에 대한 자세한 내용은 [위키]에서 확인할 수 있습니다.

공지

이 제품은 NVD API를 사용하지만 NVD의 보증이나 인증을 받지 않았습니다.

12.1.0+ 필수 업그레이드

NVD API 호환성 변경으로 인해 업그레이드가 필수입니다. 자세한 내용은 #7463을 참조하십시오.

11.0.0의 주요 변경 사항

  • dependency-check 11.0.0 이상을 실행하려면 이제 Java 11이 필요합니다.

  • H2 데이터베이스 업그레이드

    11.0.0에는 로컬 H2 데이터베이스 사용에 있어 호환성을 깨뜨리는 변경 사항이 포함되어 있습니다. NVD 데이터의 전체 다운로드가 발생합니다. 공유 데이터 디렉터리를 사용하는 경우 h2 데이터베이스 파일은 이전 버전의 dependency-check와 호환되지 않습니다. 문제가 발생하면 purge를 실행해야 할 수 있습니다:

    • gradle: ./gradlew dependencyCheckPurge
    • maven: mvn org.owasp:dependency-check-maven:11.0.0:purge
    • cli: dependency-check.sh --purge

기타 공지

NVD API 키를 적극 권장

dependency-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 키, CI 및 속도 제한

NVD API에는 속도 제한(rate limit)이 적용됩니다. 단일 API 키를 사용하고 여러 빌드가 발생하는 경우 속도 제한에 도달하여 403 오류가 발생할 수 있습니다. CI 환경에서는 캐싱 전략을 사용해야 합니다.

Sonatype OSS Index 필수 인증 및 Sonatype Guide로의 마이그레이션

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로의 마이그레이션에 따른 영향을 고려해야 합니다. 자세한 내용은 분석기 문서를 참조하십시오.

Gradle 빌드 환경

9.0.0+부터 사용자는 의존성 해결로 인해 NoSuchMethodError 예외 문제가 발생할 수 있습니다. 이 문제가 발생하면 dependency-check의 일부 전이 의존성을 특정 버전으로 고정해야 합니다. 예를 들어:

/buildSrc/build.gradle

root@kitploit:~
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 버전: Java 11

인터넷 접속

OWASP dependency-check는 여러 외부 호스팅 리소스에 접근해야 합니다. 자세한 내용은 인터넷 접속 필요를 참조하십시오.

빌드 도구

일부 기술 스택을 분석하려면 dependency-check에 다른 개발 도구가 설치되어 있어야 할 수 있습니다. 아래 나열된 분석 중 일부는 실험적일 수 있으며 실험적 분석기를 활성화해야 할 수 있습니다.

  1. .NET 어셈블리를 분석하려면 dotnet 8 런타임 또는 SDK가 설치되어 있어야 합니다.
    • 다른 런타임을 대상으로 하는 어셈블리도 분석할 수 있지만, 분석을 실행하려면 8이 필요합니다.
  2. GoLang 프로젝트를 분석하는 경우 go가 설치되어 있어야 합니다.
  3. Elixir 프로젝트 분석에는 mix_audit가 필요합니다.
  4. npm, pnpm 및 yarn 프로젝트 분석에는 npm, pnpm 또는 yarn이 설치되어 있어야 합니다.
    • 수행되는 분석은 각각의 해당 audit 기능을 활용합니다.
  5. Ruby 분석은 설치되어 있어야 하는 bundle-audit의 래퍼입니다.

현재 릴리스

Jenkins 플러그인

Jenkins 플러그인 사용에 대한 지침은 OWASP Dependency-Check 플러그인 페이지를 참조하십시오.

명령줄

더 자세한 지침은 dependency-check GitHub 페이지에서 확인할 수 있습니다. 최신 CLI는 GitHub의 릴리스 섹션에서 다운로드할 수 있습니다.

최신 릴리스 다운로드:

root@kitploit:~
$ 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에서

root@kitploit:~
$ ./bin/dependency-check.sh -h
$ ./bin/dependency-check.sh --out . --scan [path to jar files to be scanned]

Windows에서

root@kitploit:~
> .\bin\dependency-check.bat -h
> .\bin\dependency-check.bat --out . --scan [path to jar files to be scanned]

Homebrew를 사용하는 Mac에서 참고 - 5.x에서 6.0.0으로 업그레이드하는 homebrew 사용자는 dependency-check.sh --purge를 실행해야 합니다.

root@kitploit:~
$ brew update && brew install dependency-check
$ dependency-check -h
$ dependency-check --out . --scan [path to jar files to be scanned]

Maven 플러그인

더 자세한 지침은 dependency-check-maven GitHub 페이지에서 확인할 수 있습니다. 기본적으로 플러그인은 verify 단계(즉, mvn verify)에 연결됩니다. 또는 mvn org.owasp:dependency-check-maven:check를 통해 플러그인을 직접 호출할 수 있습니다.

dependency-check 플러그인은 다음과 같이 구성할 수 있습니다:

root@kitploit:~
<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 플러그인

Gradle 플러그인 사용에 대한 지침은 dependency-check-gradle GitHub 페이지를 참조하십시오.

Ant 태스크

Ant 태스크 사용에 대한 지침은 dependency-check-ant GitHub 페이지를 참조하십시오.

개발 사전 요구 사항

설치가 통과하려면 다음 구성 요소가 설치되어 있어야 합니다:

  • Java: java -version 25.0
  • Maven: mvn -version 3.6.3 이상

테스트 케이스에는 다음이 필요합니다:

  • dotnet core 버전 8.0
  • Go: go version 1.12 이상
  • Ruby bundler-audit
  • Yarn
  • pnpm

개발 사용법

다음 지침은 현재 스냅샷을 컴파일하고 사용하는 방법을 설명합니다. 안정적인 스냅샷을 유지하기 위해 모든 노력을 기울이고 있지만, 위에 나열된 릴리스 버전을 사용하는 것이 좋습니다.

저장소에는 테스트 리소스로 인해 일부 대용량 파일이 있습니다. 팀은 가능한 한 히스토리를 정리하려고 노력했습니다. 그러나 시간을 절약하려면 shallow clone을 수행하는 것이 좋습니다:

root@kitploit:~
git clone --depth 1 https://github.com/dependency-check/DependencyCheck.git

*nix에서

root@kitploit:~
$ 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에서

root@kitploit:~
> 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

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) -> Maven
  • 구성에 이름을 지정합니다(예: Run tests)
  • 작업 디렉터리를 선택합니다(예: core)
  • command line에 -DforkCount=0 -f pom.xml -s ../settings.xml test를 입력합니다.
  • OK를 누릅니다.
  • Run -> Debug를 선택한 다음 새로 만든 실행 구성을 선택합니다.

이제 IntelliJ는 디버깅이 활성화된 상태로 core 하위 프로젝트에 대한 테스트 실행을 수행합니다. 코드 어디에나 설정된 중단점이 작동합니다.

하나의 함수 또는 하나의 클래스만 테스트

개발 주기 시간을 단축하려면 하나의 함수 또는 하나의 테스트 클래스만 테스트할 수도 있습니다.
실행 구성에 -Dtest=MyTestClass 또는 -Dtest=MyTestClass#myTestFunction을 추가하면 됩니다. 그러면 실행 구성의 전체 명령줄은 다음과 같습니다:

-Dtest=MyTestClass#myTestFunction -DforkCount=0 -f pom.xml -s ../settings.xml test

Docker

다음 예제에서는 검사할 소스가 현재 작업 디렉터리에 있고 보고서가 $(pwd)/odc-reports에 작성된다고 가정합니다. 영구 데이터 및 캐시 디렉터리가 사용되므로 실행 후 컨테이너를 삭제할 수 있습니다.

Linux의 경우:

root@kitploit:~
#!/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의 경우:

root@kitploit:~
@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 사용)를 빌드하려면 다음 명령을 실행합니다:

root@kitploit:~
mvn -s settings.xml install

dependency-check로 dependency-check 실행

Dependency-check는 테스트 리소스로만 사용되고 실제로는 사용되지 않는 여러 취약한 의존성을 참조합니다. 이러한 선택적 테스트 의존성은 모두 test-dependencies 프로파일에 포함되어 있습니다. dependency-check를 자체적으로 실행하려면 test-dependencies 프로파일을 제외하면 됩니다:

root@kitploit:~
mvn org.owasp:dependency-check-maven:aggregate -P-test-dependencies -DskipProvidedScope=true

문서 빌드

GitHub 페이지의 문서는 이 저장소에서 생성됩니다:

root@kitploit:~
mvn -s settings.xml site site:stage

완료되면 브라우저에서 ./target/staging/index.html을 엽니다.

Docker 이미지 빌드

dependency-check docker 이미지를 빌드하려면 다음 명령을 실행합니다:

root@kitploit:~
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.

도구 다운로드