Salta ai contenuti

Dependency-Track - Foglio di aiuto per analisi SBOM continua

Dependency-Track - Foglio di aiuto per analisi SBOM continua

Dependency-Track (un progetto di punta OWASP) è una piattaforma per la gestione continua dei rischi della catena di approvvigionamento software. L’idea distintiva: invece di scansionare le tue dipendenze una volta al momento della compilazione, carichi un SBOM CycloneDX per progetto e la piattaforma rivaluta continuamente quei componenti mentre vengono divulgati nuove vulnerabilità. Quando esce una CVE, sai immediatamente quali delle tue applicazioni contengono il componente interessato — senza ricompilare o riscansionare nulla.

Distribuzione

MetodoComando
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
Container (API)docker run -p 8081:8080 dependencytrack/apiserver
FrontendContainer dependencytrack/frontend (UI predefinita su 8080)
KubernetesHelm chart disponibile
Requisiti~4GB+ RAM; PostgreSQL per la produzione

Concetti principali

TermineSignificato
ProjectUn’applicazione/servizio che tracci
ComponentUna dipendenza all’interno di un progetto
SBOMDistinta di materiali CycloneDX che carichi
VulnerabilityUna CVE/avviso che interessa un componente
PolicyRegole che portano il rischio (licenza, severità, età)
PortfolioTutti i progetti, aggregati

Caricamento di un SBOM

Genera con Syft o strumenti cyclonedx-*, poi carica tramite API:

# Genera un SBOM CycloneDX
syft dir:. -o cyclonedx-json > bom.json

# Carica su 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"
EndpointScopo
POST /api/v1/bomCarica un SBOM
GET /api/v1/projectElenca i progetti
PUT /api/v1/projectCrea un progetto
GET /api/v1/vulnerability/project/{uuid}Vulnerabilità per un progetto
GET /api/v1/metrics/project/{uuid}/currentMetriche di rischio attuali

Fonti di intelligence sulle vulnerabilità

FonteFornisce
NVDDati CVE
GitHub AdvisoriesAvvisi specifici dell’ecosistema
OSVDatabase delle vulnerabilità open-source
VulnDBCommerciale (opzionale)
InternalI tuoi avvisi

La piattaforma rispecchia questi feed e riesamina ogni componente memorizzato su un programma.

Motore dei criteri

Condizione della policyEsempio
SeveritàFallire se una vulnerabilità CRITICAL
LicenzaBlocca GPL nei prodotti proprietari
Età del componenteSegnala dipendenze non mantenute per N anni
CoordinateVieta un pacchetto/versione specifico
CWESegnala classi di debolezza specifiche

Le policy producono violazioni che compaiono insieme alle vulnerabilità, quindi il rischio di licenza e igiene sono tracciati nello stesso luogo.

Integrazione CI/CD

# In una pipeline: build → genera SBOM → carica → porta
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"

# Esegui il polling del risultato dell'analisi e fallisci su violazioni della policy
IntegrazioneNota
Jenkins/GitHub ActionsPlugin/azioni ufficiali disponibili
WebhooksNotifica Slack/Teams/Jira su nuovi risultati
VEXRegistra le decisioni di sfruttabilità (non interessato, ecc.)

Triage e VEX

AzioneSignificato
Not AffectedIl percorso del codice vulnerabile non è raggiungibile
False PositiveIl rilevamento è sbagliato
ResolvedCorretto in questo progetto
SuppressedRischio accettato con giustificazione

La registrazione di questi come VEX mantiene basso il rumore e documenta le decisioni per i revisori.

Dependency-Track vs Scanner point-in-time

AspettoDependency-TrackGrype/TrivySocket
ModelloPiattaforma SBOM continuaScansione point-in-timeRilevamento di malware comportamentale
RivalutazioneAutomatico su nuove CVESolo quando rieseguiSu modifiche della dipendenza
Vista del portfolioSì (tutti i progetti)Per scansionePer PR
Migliore perRischio della catena di approvvigionamento a livello aziendaleScansione CIRilevamento di pacchetti dannosi

Alimentalo con SBOM da Syft; abbinalo a Grype per la scansione al momento della compilazione e Socket per il rilevamento di pacchetti dannosi.

Risorse