Points clés
- Les dépendances logicielles — bibliothèques tierces, composants open source, modules de frameworks — multiplient la surface vulnérable au-delà des logiciels directement acquis.
- Une application peut intégrer des dizaines ou centaines de composants tiers, chacun susceptible d'introduire des CVE indépendants.
- Les Software Bill of Materials (SBOM) permettent de tracer ces dépendances et d'accélérer la réponse aux nouvelles CVE sur des composants utilisés.
- La direction doit exiger que les acquisitions logicielles incluent un SBOM et que les dépendances soient intégrées dans le périmètre du patch management.
La correction des vulnérabilités est conceptuellement simple : identifier les composants affectés, appliquer le correctif, vérifier. En pratique, la complexité des dépendances dans les environnements logiciels modernes transforme cette tâche en défi systémique. Chaque application repose sur une chaîne de dépendances — bibliothèques, frameworks, composants open source — dont chaque maillon peut introduire des vulnérabilités qui ne sont pas directement visibles dans l'application principale.
La chaîne des dépendances : un inventaire invisible
Une application Java typique intègre des dizaines de bibliothèques Maven. Une application Node.js peut dépendre de centaines de packages npm. Une application Python importe des bibliothèques PyPI qui elles-mêmes ont leurs propres dépendances. Cette chaîne peut atteindre plusieurs centaines de composants pour une application de taille modeste, dont une fraction significative présente des CVE connus à un instant donné.
Log4Shell (CVE-2021-44228) a illustré ce problème à grande échelle : une vulnérabilité critique dans la bibliothèque Java Log4j a affecté des milliers d'applications qui l'intégraient souvent indirectement, via d'autres dépendances. De nombreuses organisations ont mis plusieurs semaines à identifier si elles étaient affectées, faute de connaître l'ensemble de leurs dépendances.
Le SBOM : une réponse structurelle
Le Software Bill of Materials (SBOM) est un inventaire machine-lisible des composants d'une application : leurs noms, versions, fournisseurs, et dépendances. Des formats standardisés existent (SPDX, CycloneDX) et leur adoption est encouragée par les régulateurs. Un décret exécutif américain de mai 2021 a rendu les SBOM obligatoires pour les logiciels vendus au gouvernement fédéral. L'Union Européenne envisage des exigences similaires dans le cadre du Cyber Resilience Act.
Un SBOM permet, lors de la publication d'un CVE sur un composant donné, d'identifier en quelques secondes quelles applications de l'organisation intègrent ce composant et dans quelle version — là où une investigation manuelle prendrait des jours.
La gestion des dépendances dans le patch management
Intégrer les dépendances dans le patch management implique plusieurs ajustements organisationnels : les outils de gestion des dépendances (Dependabot, Renovate, OWASP Dependency-Check) doivent être intégrés dans les pipelines CI/CD ; les SBOM des applications acquises doivent être exigés dans les contrats d'acquisition ; et le périmètre du patch management doit explicitement couvrir les composants tiers, pas seulement les logiciels directement acquis.
L'incident SolarWinds, dans lequel une mise à jour compromise de la plateforme Orion a affecté des milliers d'organisations dont des agences gouvernementales américaines, a illustré le risque des dépendances logicielles dans sa dimension supply chain. Des composants malveillants intégrés dans la chaîne de build de SolarWinds ont été distribués à travers les mécanismes de mise à jour normaux. L'incident a conduit à des exigences réglementaires renforcées sur la traçabilité des composants logiciels, dont l'obligation de SBOM pour les fournisseurs du gouvernement fédéral.
Le règlement européen sur la cyberrésilience (CRA), adopté en 2024, impose aux fabricants de produits avec des éléments numériques de documenter les composants logiciels utilisés, notamment via des SBOM. Cette obligation s'applique à une large gamme de produits, des logiciels d'entreprise aux objets connectés. Les organisations qui achètent des logiciels dans l'UE pourront progressivement exiger des SBOM dans leurs contrats d'acquisition, facilitant la gestion des dépendances dans leur programme de patch management.
L'outil d'analyse de couverture de code Codecov a été compromis, permettant à des attaquants d'extraire des tokens d'environnement de CI/CD de milliers d'organisations utilisatrices, dont plusieurs entreprises technologiques majeures opérant en Asie-Pacifique. L'incident a mis en évidence la nécessité de tracer les dépendances dans les outils de build et CI/CD, pas seulement dans les applications de production. Des recommandations ont été émises par plusieurs CERTs de la région pour renforcer la vérification d'intégrité des composants de la chaîne de build.