Dependency-Track – Continuous SBOM Analysis Cheatsheet
Dependency-Track (ein OWASP-Flaggschiff-Projekt) ist eine Plattform für kontinuierliches Risikomanagement der Softwarelieferkette. Seine definierende Idee: statt Ihre Abhängigkeiten einmal zur Build-Zeit zu scannen, laden Sie eine CycloneDX SBOM pro Projekt hoch und die Plattform bewertet diese Komponenten kontinuierlich neu, wenn neue Schwachstellen offengelegt werden. Wenn ein CVE fällt, wissen Sie sofort, welche Ihrer Anwendungen die betroffene Komponente enthalten – ohne irgendetwas neu zu erstellen oder zu scannen.
Bereitstellung
| Methode | Befehl |
|---|
| Docker Compose | curl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d |
| Container (API) | docker run -p 8081:8080 dependencytrack/apiserver |
| Frontend | dependencytrack/frontend Container (Standard UI auf 8080) |
| Kubernetes | Helm-Chart verfügbar |
| Anforderungen | ~4GB+ RAM; PostgreSQL für Production |
Kernkonzepte
| Begriff | Bedeutung |
|---|
| Project | Eine Anwendung/Service, die Sie verfolgen |
| Component | Eine Abhängigkeit innerhalb eines Projekts |
| SBOM | CycloneDX Bill of Materials, die Sie hochladen |
| Vulnerability | Ein CVE/Advisory, das eine Komponente betrifft |
| Policy | Regeln, die Risiko begrenzen (Lizenz, Schweregrad, Alter) |
| Portfolio | Alle Projekte, zusammengefasst |
Hochladen einer SBOM
Generieren Sie mit Syft oder cyclonedx-* Tooling, dann laden Sie über API hoch:
# Erzeugen Sie eine CycloneDX SBOM
syft dir:. -o cyclonedx-json > bom.json
# Upload zu 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"
| Endpunkt | Zweck |
|---|
POST /api/v1/bom | Upload einer SBOM |
GET /api/v1/project | Auflistung von Projekten |
PUT /api/v1/project | Erstellen Sie ein Projekt |
GET /api/v1/vulnerability/project/{uuid} | Schwachstellen für ein Projekt |
GET /api/v1/metrics/project/{uuid}/current | Aktuelle Risiko-Metriken |
Vulnerability Intelligence Quellen
| Quelle | Bietet |
|---|
| NVD | CVE-Daten |
| GitHub Advisories | Ökosystem-spezifische Advisories |
| OSV | Open Source Vulnerabilities Datenbank |
| VulnDB | Kommerziell (optional) |
| Internal | Ihre eigenen Advisories |
Die Plattform spiegelt diese Feeds und re-analysiert jede gespeicherte Komponente gegen sie in einem Zeitplan.
Policy Engine
| Policy-Bedingung | Beispiel |
|---|
| Schweregrad | Fail wenn irgendeine CRITICAL Schwachstelle |
| Lizenz | Blockieren Sie GPL in proprietären Produkten |
| Komponenten-Alter | Flagg Abhängigkeiten N Jahre lang unwartbar |
| Coordinates | Verbieten Sie ein spezifisches Package/Version |
| CWE | Flag spezifische Schwächeklassen |
Policies erzeugen Verletzungen, die neben Schwachstellen erscheinen, so dass Lizenz- und Hygiene-Risiko am gleichen Platz verfolgt werden.
CI/CD-Integration
# In einer Pipeline: build → SBOM generieren → upload → gate
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"
# Pollt für das Analyse-Ergebnis und fail bei Policy-Verletzungen
| Integration | Notiz |
|---|
| Jenkins/GitHub Actions | Offizielle Plugins/Actions verfügbar |
| Webhooks | Benachrichtigte Slack/Teams/Jira bei neuen Erkenntnissen |
| VEX | Zeichnen Sie Ausnutzbarkeits-Entscheidungen auf (nicht betroffen, etc.) |
Triage & VEX
| Aktion | Bedeutung |
|---|
| Not Affected | Der anfällige Code-Pfad ist nicht erreichbar |
| False Positive | Erkennung ist falsch |
| Resolved | Behoben in diesem Projekt |
| Suppressed | Akzeptiertes Risiko mit Begründung |
Das Aufzeichnen dieser als VEX hält das Rauschen unten und dokumentiert Entscheidungen für Auditors.
Dependency-Track vs Point Scanners
| Aspekt | Dependency-Track | Grype/Trivy | Socket |
|---|
| Modell | Continuous SBOM-Plattform | Point-in-Time Scan | Verhaltensbasierte Malware-Erkennung |
| Re-evaluation | Automatisch bei neuen CVEs | Nur wenn Sie neu ausführen | Bei Abhängigkeits-Änderungen |
| Portfolio-Ansicht | Ja (alle Projekte) | Pro-Scan | Pro-PR |
| Am besten für | Org-breites Supply-Chain-Risiko | CI Scanning | Bösartiger Package-Erkennung |
Füttern Sie es SBOMs von Syft; paaren Sie mit Grype für Build-Zeit-Scanning und Socket für bösartige Package-Erkennung.
Ressourcen