Dependency-Track

Dependency-Track은 OWASP가 관리하는 오픈소스 SBOM 관리 및 취약점 분석 플랫폼입니다. 업로드된 SBOM(CycloneDX, SPDX)을 기반으로 컴포넌트별 취약점을 지속적으로 모니터링하고, 정책 위반 여부를 자동으로 평가합니다.

주요 특징

  • SBOM 기반 지속 모니터링: SPDX 및 CycloneDX 형식의 SBOM을 업로드하면 컴포넌트별 최신 취약점을 자동으로 추적
  • 다양한 취약점 데이터소스 연동: NVD, OSV, GitHub Advisories, VulnDB 등
  • 정책 엔진: 라이선스 정책, 취약점 심각도 기준, 컴포넌트 사용 가능 여부를 규칙으로 정의하여 자동 평가
  • REST API: CI/CD 파이프라인과 통합하여 빌드 시 SBOM을 자동 업로드하고 결과를 피드백
  • 웹 UI 대시보드: 프로젝트별 위험 점수, 취약점 현황, 라이선스 분포를 한눈에 파악
  • 알림: Slack, 이메일, Webhook 등 다양한 채널로 신규 취약점 알림 발송

설치 방법

Docker Compose를 사용하는 방법이 가장 간편합니다.

# 공식 Docker Compose 파일 다운로드
curl -LO https://dependencytrack.org/docker-compose.yml

# 실행
docker compose up -d

기본적으로 API 서버는 포트 8081, 프론트엔드는 포트 8080에서 실행됩니다. 초기 관리자 계정: admin / admin (최초 로그인 후 즉시 변경 필요)

기본 사용법

(1) 웹 UI에서 프로젝트 생성 및 SBOM 업로드

  1. http://localhost:8080 접속
  2. ProjectsCreate Project 클릭
  3. 프로젝트 이름·버전 입력 후 저장
  4. 해당 프로젝트 → Components 탭 → Upload BOM 클릭
  5. SBOM 파일(.cdx.json 또는 .spdx.json) 업로드

업로드 후 Dependency-Track이 자동으로 취약점 분석을 시작합니다.

(2) API를 통한 SBOM 업로드 (CI/CD 연동)

# API Key는 Administration > Access Management > Teams에서 발급
API_KEY="your-api-key"
PROJECT_UUID="your-project-uuid"

curl -X PUT \
  "http://localhost:8081/api/v1/bom" \
  -H "X-Api-Key: ${API_KEY}" \
  -H "Content-Type: multipart/form-data" \
  -F "project=${PROJECT_UUID}" \
  -F "bom=@sbom.cdx.json"

(3) GitHub Actions 연동 예시

- name: Upload SBOM to Dependency-Track
  uses: DependencyTrack/gh-upload-sbom@v3
  with:
    serverhostname: dependency-track.example.com
    apikey: ${{ secrets.DT_API_KEY }}
    project: ${{ secrets.DT_PROJECT_UUID }}
    bomfilename: sbom.cdx.json

cdxgen / Syft와 함께 사용하기

Dependency-Track은 SBOM 생성 도구(cdxgen, Syft)와 함께 사용할 때 가장 효과적입니다.

cdxgen 또는 Syft  →  SBOM 생성  →  Dependency-Track 업로드  →  지속 모니터링
  • SBOM 생성: cdxgen 또는 Syft로 빌드 시 SBOM 생성
  • 중앙 관리: Dependency-Track에 업로드하여 전사 프로젝트 취약점 현황 통합 관리

참고 자료