Voici la première partie d’une série d’articles dédiés à Dependency Track et à son déploiement en mode GitOps avec ArgoCD ou FluxCD sur un cluster Kubernetes.
Qu’est ce que c’est ?
C’est une plateforme qui permet de suivre les composants logiciels utilisés dans nos applications, d’identifier les vulnérabilités associées et de gérer les risques liés à ces dépendances.
C’est un outil particulièrement utile pour répondre aux exigences de sécurité et de conformité de nos systèmes comme le Cyber Resilience Act (CRA) en Europe ou l’IEC 81001-5-1 pour les dispositifs médicaux.
Comment ça fonctionne ?
flowchart LR
subgraph Sources["Sources SBOM"]
CI[CI/CD Pipeline]
CLI[cdxgen / syft]
end
subgraph DT["Dependency-Track"]
API[API Server]
ANA[Analyzers]
DB[(Base de données\nH2 / PostgreSQL)]
API -->|stocke| DB
API -->|déclenche| ANA
end
subgraph Vuln["Bases de vulnérabilités"]
NVD[NVD]
OSV[OSV]
GHSA[GitHub Advisory]
OSS[OSS Index]
end
subgraph Alerting["Alerting"]
NOTIF[Notifications]
POLICY[Policy Violations]
end
CI -->|POST /api/v1/bom| API
CLI -->|POST /api/v1/bom| API
ANA <-->|sync CVEs| NVD
ANA <-->|sync CVEs| OSV
ANA <-->|sync CVEs| GHSA
ANA <-->|sync CVEs| OSS
ANA -->|vulnérabilités détectées| NOTIF
ANA -->|violation de politique| POLICY
Dependency Track ingère des SBOM et analyse en continu les composants logiciels pour détecter les vulnérabilités connues. Il s’appuie sur des bases de données de vulnérabilités telles que le NVD (National Vulnerability Database) pour fournir des informations à jour sur les risques liés aux composants logiciels.
La SBOM
Une SBOM (Software Bill of Materials) est un fichier qui liste tous les composants logiciels utilisés dans un projet, y compris leurs versions et leurs dépendances. C’est un peu comme une liste d’ingrédients pour une recette de cuisine, mais pour les logiciels.
J’y ai dédié un article complet que vous pouvez consulter ici.
Pourquoi c’est important ?
Dans un monde où les applications sont de plus en plus complexes et dépendent de nombreux composants tiers, il est crucial de pouvoir identifier rapidement les vulnérabilités potentielles pour protéger nos systèmes et nos données. Le contexte géopolitique actuel accentue encore plus l’importance de la sécurité des logiciels, avec des attaques de plus en plus sophistiquées comme plus récemment celles sur la supply chain.
Quelques sources sur le sujet :
- Trivy supply chain attack: https://www.paloaltonetworks.com/blog/cloud-security/trivy-supply-chain-attack/
- Checkmarx security update: https://checkmarx.com/blog/checkmarx-security-update/
- Axios NPM package compromised: https://www.trendmicro.com/fr_fr/research/26/c/axios-npm-package-compromised.html
Conclusion
Maintenant que vous savez ce qu’est une SBOM, Dependency track et l’importance de ce type d’outil nous verrons dans les prochains articles comment déployer Dependency Track en mode GitOps sur Kubernetes avec ArgoCD ou FluxCD, et comment l’intégrer dans une pipeline CI/CD pour automatiser la gestion des vulnérabilités de vos applications.
