Supply Chain Attack
generalDéfinition
Attaque ciblant la chaîne d'approvisionnement logicielle pour compromettre des composants tiers (bibliothèques, mises à jour, plugins) utilisés par la cible finale.
Fonctionnement technique
Une attaque supply chain cible la chaîne d'approvisionnement logicielle pour compromettre indirectement les organisations qui dépendent de composants tiers. L'attaquant infiltre un fournisseur de logiciel, un dépôt de packages ou un processus de build pour injecter du code malveillant qui sera ensuite distribué automatiquement aux utilisateurs finaux via les mécanismes de mise à jour légitimes.
Les vecteurs d'attaque sont multiples : compromission du pipeline CI/CD d'un éditeur (SolarWinds/Orion en 2020), injection de packages malveillants dans des registres publics (typosquatting sur npm/PyPI), modification de dépendances open source (event-stream sur npm), ou compromission de certificats de signature de code pour légitimer des binaires malveillants.
La sophistication réside dans l'exploitation de la confiance transitive : les organisations font confiance à leurs fournisseurs, qui font eux-mêmes confiance à leurs propres dépendances. Un maillon faible dans cette chaîne peut compromettre des milliers d'organisations simultanément, comme l'a démontré l'attaque Kaseya/REvil en 2021.
Cas d'usage
L'attaque SolarWinds (2020) est l'exemple le plus emblématique : le groupe APT29 (Cozy Bear) a compromis le build system d'Orion pour distribuer la backdoor SUNBURST à 18 000 organisations, dont des agences gouvernementales américaines. L'attaque est restée indétectée pendant plus de 9 mois.
Plus récemment, la tentative de backdoor dans xz-utils (2024) a montré qu'un contributeur patient pouvait, sur plusieurs années, gagner la confiance d'un mainteneur open source pour injecter une porte dérobée dans une bibliothèque de compression utilisée par SSH sur des millions de serveurs Linux.
Outils et implémentation
La détection et la prévention des attaques supply chain nécessitent plusieurs outils complémentaires. Sigstore (cosign, Rekor, Fulcio) fournit une infrastructure de signature et de transparence pour les artefacts logiciels. SLSA (Supply-chain Levels for Software Artifacts) définit des niveaux de sécurité pour les pipelines de build.
Snyk, Dependabot et Renovate surveillent les vulnérabilités dans les dépendances. Socket.dev détecte les comportements suspects dans les packages npm/PyPI. Syft et Grype (Anchore) génèrent et analysent les SBOM. in-toto vérifie l'intégrité de chaque étape du pipeline de build.
Défense / Bonnes pratiques
Implémentez une stratégie de défense en profondeur pour votre chaîne d'approvisionnement logicielle. Générez et maintenez un SBOM (Software Bill of Materials) pour chaque application, permettant d'identifier rapidement l'impact d'une vulnérabilité dans un composant tiers. Utilisez des registres de packages privés (Artifactory, Nexus) comme proxy pour contrôler et scanner les dépendances.
Vérifiez systématiquement les signatures des artefacts logiciels et verrouillez les versions des dépendances (lock files). Implémentez le principe du moindre privilège dans vos pipelines CI/CD : les tokens d'accès doivent avoir une portée minimale et une durée de vie courte.
Évaluez régulièrement la posture de sécurité de vos fournisseurs critiques via des questionnaires de sécurité, des certifications (SOC 2, ISO 27001) et la surveillance de leur surface d'attaque. Préparez un plan de réponse spécifique pour les incidents supply chain.
Articles associés
Voir nos articles détaillés sur ce sujet.
Articles liés
Besoin d'un expert sur ce sujet ?
Audit, pentest, conformité ISO 27001, développement IA sécurisé — demandez un devis gratuit.
Demander un devis