콘텐츠로 이동

Dependency-Track - 지속적 SBOM 분석 치트시트

Dependency-Track - 지속적 SBOM 분석 치트시트

Dependency-Track (OWASP 플래그십 프로젝트)는 지속적 소프트웨어 공급망 위험 관리를 위한 플랫폼입니다. 주요 아이디어는 빌드 시 한 번 종속성을 스캔하는 대신, 프로젝트당 CycloneDX SBOM을 업로드하고 플랫폼이 지속적으로 재평가한다는 것입니다. CVE가 공개되면, 다시 빌드하거나 재스캔할 필요 없이 즉시 영향을 받는 구성요소를 포함하는 애플리케이션을 알 수 있습니다.

배포

방법명령
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
컨테이너 (API)docker run -p 8081:8080 dependencytrack/apiserver
프론트엔드dependencytrack/frontend 컨테이너 (기본 UI는 8080)
KubernetesHelm 차트 사용 가능
요구사항~4GB+ RAM; 프로덕션용 PostgreSQL

핵심 개념

용어의미
프로젝트추적하는 애플리케이션/서비스
구성요소프로젝트 내 종속성
SBOM업로드하는 CycloneDX 부품 목록
취약점구성요소에 영향을 미치는 CVE/공지
정책위험을 게이팅하는 규칙 (라이선스, 심각도, 연령)
포트폴리오모든 프로젝트, 집계됨

SBOM 업로드

Syft 또는 cyclonedx-* 도구로 생성한 후 API를 통해 업로드:

# CycloneDX SBOM 생성
syft dir:. -o cyclonedx-json > bom.json

# Dependency-Track에 업로드
curl -X POST "http://localhost:8081/api/v1/bom" \
  -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" \
  -F "bom=@bom.json"
엔드포인트목적
POST /api/v1/bomSBOM 업로드
GET /api/v1/project프로젝트 나열
PUT /api/v1/project프로젝트 생성
GET /api/v1/vulnerability/project/{uuid}프로젝트의 취약점
GET /api/v1/metrics/project/{uuid}/current현재 위험 메트릭

취약점 인텔리전스 소스

소스제공
NVDCVE 데이터
GitHub 공지생태계 특화 공지
OSVOpen Source Vulnerabilities 데이터베이스
VulnDB상용 (선택사항)
내부자체 공지

플랫폼은 이 피드를 미러링하고 일정에 따라 저장된 모든 구성요소에 대해 재분석합니다.

정책 엔진

정책 조건예시
심각도CRITICAL 취약점이 있으면 실패
라이선스독점 제품에서 GPL 차단
구성요소 연령N년 동안 유지되지 않은 종속성 플래그
좌표특정 패키지/버전 금지
CWE특정 약점 클래스 플래그

정책은 위반을 생성하며, 이는 취약점과 함께 나타나므로 라이선스 및 위생 위험이 같은 장소에서 추적됩니다.

CI/CD 통합

# 파이프라인에서: 빌드 → SBOM 생성 → 업로드 → 게이팅
syft dir:. -o cyclonedx-json > bom.json
curl -X POST "$DT_URL/api/v1/bom" -H "X-Api-Key: $DT_API_KEY" \
  -F "project=$PROJECT_UUID" -F "bom=@bom.json"

# 분석 결과를 폴링하고 정책 위반 시 실패 처리
통합참고
Jenkins/GitHub Actions공식 플러그인/액션 사용 가능
WebhookSlack/Teams/Jira의 새로운 발견 사항 알림
VEX악용 가능성 결정 기록 (영향 받지 않음 등)

분류 및 VEX

작업의미
영향 받지 않음취약한 코드 경로에 도달 불가능
거짓 양성감지가 잘못됨
해결됨이 프로젝트에서 수정됨
억제됨정당성과 함께 수락된 위험

이를 VEX로 기록하면 노이즈를 줄이고 감시자를 위한 결정을 문서화합니다.

Dependency-Track vs 포인트 스캐너

측면Dependency-TrackGrype/TrivySocket
모델지속적 SBOM 플랫폼시점별 스캔행동 악성 감지
재평가CVE 신규 시 자동재실행 시에만종속성 변경 시
포트폴리오 보기예 (모든 프로젝트)스캔당PR당
최적 용도조직 전체 공급망 위험CI 스캐닝악의적 패키지 감지

Syft에서 SBOM을 공급하고; 빌드 시 스캐닝을 위해 Grype와 쌍을 이루고 악의적 패키지 감지를 위해 Socket과 쌍을 이룹니다.

리소스