Zum Inhalt springen

Dependency-Track – Continuous SBOM Analysis Cheatsheet

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

MethodeBefehl
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
Container (API)docker run -p 8081:8080 dependencytrack/apiserver
Frontenddependencytrack/frontend Container (Standard UI auf 8080)
KubernetesHelm-Chart verfügbar
Anforderungen~4GB+ RAM; PostgreSQL für Production

Kernkonzepte

BegriffBedeutung
ProjectEine Anwendung/Service, die Sie verfolgen
ComponentEine Abhängigkeit innerhalb eines Projekts
SBOMCycloneDX Bill of Materials, die Sie hochladen
VulnerabilityEin CVE/Advisory, das eine Komponente betrifft
PolicyRegeln, die Risiko begrenzen (Lizenz, Schweregrad, Alter)
PortfolioAlle 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"
EndpunktZweck
POST /api/v1/bomUpload einer SBOM
GET /api/v1/projectAuflistung von Projekten
PUT /api/v1/projectErstellen Sie ein Projekt
GET /api/v1/vulnerability/project/{uuid}Schwachstellen für ein Projekt
GET /api/v1/metrics/project/{uuid}/currentAktuelle Risiko-Metriken

Vulnerability Intelligence Quellen

QuelleBietet
NVDCVE-Daten
GitHub AdvisoriesÖkosystem-spezifische Advisories
OSVOpen Source Vulnerabilities Datenbank
VulnDBKommerziell (optional)
InternalIhre eigenen Advisories

Die Plattform spiegelt diese Feeds und re-analysiert jede gespeicherte Komponente gegen sie in einem Zeitplan.

Policy Engine

Policy-BedingungBeispiel
SchweregradFail wenn irgendeine CRITICAL Schwachstelle
LizenzBlockieren Sie GPL in proprietären Produkten
Komponenten-AlterFlagg Abhängigkeiten N Jahre lang unwartbar
CoordinatesVerbieten Sie ein spezifisches Package/Version
CWEFlag 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
IntegrationNotiz
Jenkins/GitHub ActionsOffizielle Plugins/Actions verfügbar
WebhooksBenachrichtigte Slack/Teams/Jira bei neuen Erkenntnissen
VEXZeichnen Sie Ausnutzbarkeits-Entscheidungen auf (nicht betroffen, etc.)

Triage & VEX

AktionBedeutung
Not AffectedDer anfällige Code-Pfad ist nicht erreichbar
False PositiveErkennung ist falsch
ResolvedBehoben in diesem Projekt
SuppressedAkzeptiertes 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

AspektDependency-TrackGrype/TrivySocket
ModellContinuous SBOM-PlattformPoint-in-Time ScanVerhaltensbasierte Malware-Erkennung
Re-evaluationAutomatisch bei neuen CVEsNur wenn Sie neu ausführenBei Abhängigkeits-Änderungen
Portfolio-AnsichtJa (alle Projekte)Pro-ScanPro-PR
Am besten fürOrg-breites Supply-Chain-RisikoCI ScanningBö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