Vous faites tout bien : vous installez les mises à jour, vous utilisez des bibliothèques open source populaires, vous téléchargez les logiciels sur le site officiel. Et c’est précisément ce que les attaquants exploitent. En compromettant un éditeur, un mainteneur de paquet ou un pipeline de publication, ils diffusent leur code malveillant par le canal le plus fiable qui soit : la mise à jour légitime. Anatomie des attaques de la chaîne d’approvisionnement logicielle, et défenses concrètes pour les équipes techniques.
L’essentiel en 30 secondes
- L’attaquant ne vise pas sa victime directement, mais un maillon amont : bibliothèque, outil de build, éditeur, compte de publication.
- En mai 2026, le ver Mini Shai-Hulud a compromis plus de 170 paquets npm et PyPI, avec des attestations de provenance d’apparence valide.
- Les jetons de publication et les pipelines CI/CD sont devenus la cible principale.
- Défenses clés : versions verrouillées, délai avant adoption des nouvelles versions, scripts d’installation désactivés, secrets à courte durée de vie, inventaire des composants.
Trois cas qui ont fait école
SolarWinds et 3CX : l’éditeur compromis
En 2020, une porte dérobée a été insérée dans le processus de compilation du logiciel de supervision SolarWinds Orion, puis distribuée à des milliers de clients via une mise à jour signée. En 2023, l’éditeur de téléphonie 3CX a diffusé une application piégée, parce qu’un de ses développeurs avait lui-même installé un logiciel compromis : une attaque en cascade.
XZ Utils : le mainteneur infiltré
En mars 2024, un développeur a découvert par hasard une porte dérobée dans XZ Utils, une bibliothèque de compression présente sur la plupart des distributions Linux. Un contributeur avait patiemment gagné la confiance du projet pendant deux ans avant d’insérer le code malveillant. La faille (CVE-2024-3094) a été détectée juste avant d’atteindre les versions stables.
Shai-Hulud : le ver qui se propage tout seul
En septembre 2025, un premier ver baptisé Shai-Hulud a infecté des centaines de paquets npm en volant les jetons de leurs mainteneurs pour publier de nouvelles versions piégées. Sa variante de mai 2026, Mini Shai-Hulud, est allée plus loin : selon Expel, elle a touché plus de 170 paquets npm et PyPI, dont des projets liés à TanStack, Mistral AI et OpenSearch. Elle détournait des workflows GitHub Actions pour obtenir des jetons de publication valides, si bien que les versions malveillantes portaient des attestations de provenance SLSA de niveau 3. Sa charge utile volait clés cloud, jetons GitHub, secrets Vault et Kubernetes, et s’installait dans la configuration des éditeurs de code pour se relancer à chaque démarrage.
Les points d’entrée de l’attaquant
| Maillon | Technique | Exemple de défense |
|---|---|---|
| Compte du mainteneur | Phishing, jeton volé | MFA résistante au phishing, publication de confiance (OIDC) sans jeton permanent |
| Pipeline CI/CD | Workflow vulnérable, secret exposé | Permissions minimales, pas de pull_request_target sur du code non fiable |
| Registre de paquets | Typosquatting, confusion de dépendances | Registre interne, espaces de noms réservés |
| Poste du développeur | Extension d’IDE, paquet piégé | Extensions approuvées, scripts d’installation désactivés |
| Éditeur de logiciel | Compromission du build | Exigences contractuelles, signature et vérification des artefacts |
Les défenses pour les équipes de développement
- Verrouiller les versions : fichiers de verrouillage (
package-lock.json,poetry.lock) versionnés, installation stricte (npm ci), empreintes vérifiées. - Attendre avant d’adopter : les gestionnaires récents permettent d’ignorer les versions publiées depuis moins de quelques jours (par exemple
minimumReleaseAgedans pnpm). La plupart des paquets piégés sont détectés et retirés en quelques heures. - Désactiver les scripts d’installation par défaut (
npm install --ignore-scripts) et les autoriser au cas par cas. - Sécuriser les pipelines : jetons à courte durée de vie, permissions minimales, actions tierces épinglées par empreinte. Voir notre guide GitHub Actions et GitLab CI/CD.
- Inventorier les composants avec un SBOM et surveiller les dépendances vulnérables.
- Signer et vérifier les artefacts avec Sigstore et Cosign, tout en gardant à l’esprit qu’une signature prouve l’origine, pas l’innocuité.
- Limiter les sorties réseau des environnements de build : un pipeline n’a pas besoin d’accéder à tout Internet.
Et pour une entreprise utilisatrice ?
Une PME qui ne développe pas reste exposée via ses éditeurs. Quelques réflexes :
- Déployer par vagues : un petit groupe de postes pilotes reçoit les mises à jour avant les autres.
- Surveiller les comportements plutôt que les seules signatures : un EDR détecte un logiciel légitime qui se met à agir de façon anormale. Voir EDR, XDR ou antivirus.
- Interroger les éditeurs sur leurs pratiques : signature, SBOM, politique de divulgation. Le Cyber Resilience Act va rendre ces exigences obligatoires.
- Disposer de sauvegardes indépendantes de l’éditeur et du prestataire.
Questions fréquentes
Une attestation de provenance garantit-elle qu’un paquet est sain ?
Non. Elle garantit qu’il a été construit par un pipeline donné. Si ce pipeline est compromis, comme avec Mini Shai-Hulud, l’attestation est authentique mais le contenu malveillant.
Faut-il arrêter de mettre à jour ses dépendances ?
Non : les dépendances obsolètes contiennent des failles connues. Il faut mettre à jour de façon contrôlée : versions verrouillées, délai d’adoption de quelques jours, revue des changements importants.
Comment savoir si mon projet a installé un paquet compromis ?
Comparez votre fichier de verrouillage aux listes de versions compromises publiées par les chercheurs, et recherchez les indicateurs fournis (fichiers, domaines). En cas de doute, renouvelez tous les secrets accessibles depuis les postes et pipelines concernés.
Les extensions de VS Code sont-elles concernées ?
Oui. Les extensions d’éditeur et les assistants de code ont accès aux fichiers et aux secrets du développeur. Limitez-les à une liste approuvée.
Sources
- Expel, « Mini Shai-Hulud: cross-ecosystem supply chain worm targeting npm and PyPI » (mai 2026).
- NVD, CVE-2024-3094 (porte dérobée XZ Utils).
- SLSA, Supply-chain Levels for Software Artifacts.
- ANSSI, Panorama de la cybermenace 2025.
Besoin d’un accompagnement ?
MPCÂBLE Solutions Informatiques (MPCSI) accompagne particuliers, entreprises, associations et collectivités depuis Gaudiès, en Ariège : sur site en Occitanie, principalement dans un rayon de 40 km (Pamiers, Foix, Mirepoix, Saverdun, Castelnaudary), et à distance partout en France. Nous auditons aussi les projets web et leurs dépendances. Demandez un devis gratuit ou appelez le 05 32 42 99 98.
