Aller au contenu

Dependency-Track - Guide d'analyse continue d'SBOM

Dependency-Track - Guide d’analyse continue d’SBOM

Dependency-Track (un projet phare OWASP) est une plateforme pour la gestion continue du risque de chaîne d’approvisionnement logicielle. Son idée définissante : au lieu de scanner vos dépendances une fois au build time, vous uploadez un SBOM CycloneDX par projet et la plateforme réévalue continuellement ces composants au fur et à mesure que de nouvelles vulnérabilités sont divulguées. Quand un CVE sort, vous savez immédiatement quelles applications contiennent le composant affecté — sans reconstruire ou rescanner quoi que ce soit.

Déploiement

MéthodeCommande
Docker Composecurl -LO https://dependencytrack.org/docker-compose.yml && docker compose up -d
Container (API)docker run -p 8081:8080 dependencytrack/apiserver
Frontendconteneur dependencytrack/frontend (UI par défaut sur 8080)
KubernetesHelm chart disponible
Requirements~4GB+ RAM ; PostgreSQL pour la production

Concepts de base

TermeSignification
ProjetUne application/service que vous suivez
ComposantUne dépendance au sein d’un projet
SBOMBill of materials CycloneDX que vous uploadez
VulnérabilitéUn CVE/advisory affectant un composant
PolicyRègles qui gèrent le risque (license, severity, age)
PortefeuilleTous les projets, agrégés

Uploader un SBOM

Générez avec Syft ou des outils cyclonedx-*, puis uploadez via API :

# Générer un SBOM CycloneDX
syft dir:. -o cyclonedx-json > bom.json

# Uploader vers 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"
EndpointObjectif
POST /api/v1/bomUploader un SBOM
GET /api/v1/projectLister les projets
PUT /api/v1/projectCréer un projet
GET /api/v1/vulnerability/project/{uuid}Vulnérabilités pour un projet
GET /api/v1/metrics/project/{uuid}/currentMétriques de risque actuelles

Sources de renseignements sur les vulnérabilités

SourceFournit
NVDDonnées CVE
GitHub AdvisoriesAdvisories spécifiques à l’écosystème
OSVBase de données Open Source Vulnerabilities
VulnDBCommercial (optionnel)
InterneVos propres advisories

La plateforme miroir ces flux et réanalyse chaque composant stocké contre eux selon un calendrier.

Moteur de policy

Condition de policyExemple
SeverityÉchouer si une vulnérabilité CRITICAL existe
LicenseBloquer GPL dans les produits propriétaires
Âge du composantSignaler les dépendances non-maintenées depuis N ans
CoordonnéesInterdire un package/version spécifique
CWESignaler des classes de faiblesse spécifiques

Les policies produisent des violations qui apparaissent à côté des vulnérabilités, donc le risque de license et d’hygiène sont suivis au même endroit.

Intégration CI/CD

# Dans un pipeline : build → générer SBOM → uploader → gater
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"

# Sonder le résultat de l'analyse et échouer sur les violations de policy
IntégrationNote
Jenkins/GitHub ActionsPlugins/actions officiels disponibles
WebhooksNotifier Slack/Teams/Jira sur les nouvelles découvertes
VEXEnregistrer les décisions d’exploitabilité (not affected, etc.)

Triage & VEX

ActionSignification
Not AffectedLe chemin de code vulnérable n’est pas accessible
False PositiveLa détection est incorrecte
ResolvedFixé dans ce projet
SuppressedRisque accepté avec justification

Enregistrer ceux-ci comme VEX réduit le bruit et documente les décisions pour les auditeurs.

Dependency-Track vs Point Scanners

AspectDependency-TrackGrype/TrivySocket
ModèlePlateforme SBOM continueScan point-in-timeDétection de malware comportemental
RéévaluationAutomatique sur nouveaux CVEsUniquement quand vous relancezSur les changements de dépendance
Vue portefeuilleOui (tous les projets)Par scanPar PR
Idéal pourRisque supply chain org-wideScanning CIDétection de package malveillant

Alimentez-le avec les SBOMs de Syft ; associez-le à Grype pour le scanning au build et Socket pour la détection de package malveillant.

Ressources