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 :

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.