This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Dependency-Track

    Dependency-Track is an open source SBOM management and vulnerability analysis platform managed by OWASP. It continuously monitors component-level vulnerabilities based on uploaded SBOMs (CycloneDX, SPDX) and automatically evaluates policy violations.

    Features

    • SBOM-based continuous monitoring: Automatically tracks the latest vulnerabilities per component after uploading SBOMs in SPDX or CycloneDX format
    • Multiple vulnerability data sources: NVD, OSV, GitHub Advisories, VulnDB, and more
    • Policy engine: Define rules for license policies, vulnerability severity thresholds, and component allowlists for automatic evaluation
    • REST API: Integrate with CI/CD pipelines to automatically upload SBOMs and receive feedback at build time
    • Web UI dashboard: View per-project risk scores, vulnerability status, and license distribution at a glance
    • Notifications: Send new vulnerability alerts via Slack, email, Webhook, and other channels

    Installation

    Using Docker Compose is the simplest approach:

    # Download official Docker Compose file
    curl -LO https://dependencytrack.org/docker-compose.yml
    
    # Start services
    docker compose up -d
    

    By default, the API server runs on port 8081 and the frontend on port 8080. Default admin credentials: admin / admin (change immediately after first login)

    Basic Usage

    (1) Create a Project and Upload SBOM via Web UI

    1. Navigate to http://localhost:8080
    2. Click ProjectsCreate Project
    3. Enter project name and version, then save
    4. Open the project → Components tab → Upload BOM
    5. Upload your SBOM file (.cdx.json or .spdx.json)

    After upload, Dependency-Track automatically starts vulnerability analysis.

    (2) Upload SBOM via API (CI/CD Integration)

    # 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 Integration Example

    - 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
    

    Using with cdxgen / Syft

    Dependency-Track is most effective when used with SBOM generation tools like cdxgen and Syft:

    cdxgen or Syft  →  Generate SBOM  →  Upload to Dependency-Track  →  Continuous monitoring
    
    • SBOM generation: Use cdxgen or Syft to generate SBOMs at build time
    • Centralized management: Upload to Dependency-Track to manage vulnerability status across all projects

    References