ㅇ.ㅇ
[보안] OWASP Dependency-Check 사용방법 본문
반응형
Dependency-Check란 무엇일까
Dependency-Check는 프로젝트에서 사용하는 라이브러리나 의존성(dependency) 중 보안 취약점(CVE)이 있는지 확인하는 오픈소스 도구. 어떤 라이브러리에 어떤 취약점이 있는지를 식별할 수 있어서, 배포 전에 해당 라이브러리들을 제거하거나 업데이트 할 수 있다.
동작 방식
1. 프로젝트의 의존성(예: Maven, Gradle, npm 등)을 분석
2. 각 라이브러리의 메타데이터 (이름, 버전, 그룹id)를 수집
3. 식별된 종속성과 NVD 데이터베이스의 CVE 번호를 매핑해서 취약점 조회
4. 각 의존성의 버전 정보를 기반으로 CVE 데이터베이스(NVD, OSS Index 등)에서 취약점을 조회
5. 결과를 HTML, JSON 등으로 리포트 생성
주요 기능
- 취약점 탐지 : 프로젝트의 라이브러리와 연결된 알려진 CVE를 탐지
- 다양한 빌드 도구 지원 : Maven, Gradle, Ant 등 대부분의 빌드 도구에 통합 가능하며 CLI로도 실행 가능
- 다양한 출력 포맷 : 분석 결과를 HTML, JSON, CSV 등 여러 형식으로 출력하여 공유하거나 CI/CD 파이프라인에 통합 가능 (예: Jenkins, GitHub Actions 등)
- 자동화된 보안 검사 : Jenkins, GitHub Actions 같은 CI/CD 도구에 플러그인 형태로 통합하여 자동으로 취약점을 분석
- NVD 외 데이터베이스 연동 : NVD 외에도 Snyk, OSS Index 등 다른 취약점 데이터베이스와도 연동한다
Dependency-Check 사용 방법
1. maven, gradle 프로젝트라면 플러그인 추가하기! (CLI라면 Dependency-Check를 다운로드 후 환경 변수에 추가해야한다)
// maven
<plugin>
<groupId>org.owasp</groupId>
<artifactId>dependency-check-maven</artifactId>
<version>8.4.0</version>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
// gradle
plugins {
id "org.owasp.dependencycheck" version "8.4.0"
}
dependencyCheck {
failBuildOnCVSS = 7.0
}
2. 의존성 스캔을 실행한다
// maven
mvn dependency-check:check
// gradle
./gradlew dependencyCheckAnalyze
3. ./report/dependency-check.html 보고서를 확인한다
저런식으로 사용중인 라이브러리에 대한 메타데이터와 보안취약점, 위험도 등급 등등에 대하여 파악할 수 있다.
반응형
'Today I Learned' 카테고리의 다른 글
[CS] BIOS에 관하여 (0) | 2025.01.03 |
---|---|
[보안] SOP에 관하여 (0) | 2024.12.29 |
[보안] 마스커레이드(Masquerade)에 관하여 (1) | 2024.12.23 |
[Java] java ee에 관하여 (1) | 2024.12.22 |
[Server] 가상화 기술 (0) | 2024.12.08 |