Des fautes de frappe aux rachats : au cœur de l’industrialisation des attaques de chaîne d’approvisionnement NPM

Lucas Morel

Une augmentation spectaculaire des intrusions axées sur le NPM montre comment les attaquants sont passés du typosquatting opportuniste à des compromissions systématiques de la chaîne d’approvisionnement basées sur les informations d’identification, en exploitant les systèmes CI, les responsables et les profondes faiblesses des pipelines DevOps modernes.

Une augmentation massive des attaques contre l’écosystème NPM au cours de l’année écoulée révèle un changement radical dans le paysage des menaces liées à la chaîne d’approvisionnement logicielle.

Ce qui équivalait autrefois à des tentatives bâclées de typosquatting a évolué vers des intrusions coordonnées et basées sur des informations d’identification ciblant les responsables, les pipelines CI et l’automatisation fiable qui sous-tend le développement moderne.

Pour les responsables de la sécurité, il ne s’agit plus d’incidents de développement de niche : il s’agit d’une voie directe vers les systèmes de production, l’infrastructure cloud et des millions d’applications en aval.

Le but n’est plus de tromper un développeur individuel, mais d’hériter tranquillement de son autorité. Et avec cela, leur portée de distribution.

« NPM est une cible intéressante car il s’agit du plus grand référentiel de packages JavaScript au monde et d’un point de contrôle clé pour la distribution de logiciels », a déclaré Melinda Marks, directrice des pratiques de cybersécurité chez Enterprise Security Group. « Les équipes de sécurité doivent comprendre les dépendances et les moyens d’auditer et d’atténuer régulièrement les risques. »

Faiblesses structurelles de l’infrastructure NPM

Presque toutes les entreprises s’appuient sur NPM, que ce soit directement ou indirectement. Selon IDC, 93 % des organisations utilisent des logiciels open source et npm reste le plus grand registre de packages de l’écosystème JavaScript. « La compromission d’un seul package populaire peut immédiatement atteindre des millions d’utilisateurs et d’applications en aval », a déclaré Katie Norton, responsable de la recherche (DevSecOps) d’IDC, transformant un identifiant volé en ce qu’elle a décrit comme une « clé principale » pour la distribution.

Cette ampleur ne représente toutefois qu’une partie du risque.

L’exposition est amplifiée par les faiblesses structurelles dans la manière dont les pipelines de développement modernes sont sécurisés, a fait remarquer Norton. « Les responsables individuels du logiciel open source ne disposent souvent pas des ressources de sécurité sur lesquelles s’appuient les équipes de l’entreprise, ce qui les rend vulnérables à l’ingénierie sociale », a-t-elle déclaré. « Les exécuteurs CI/CD et les machines de développement traitent régulièrement les secrets de longue durée qui sont stockés dans des variables d’environnement ou des fichiers de configuration et sont facilement exploités par des logiciels malveillants. »

« Les systèmes de construction ont également tendance à donner la priorité à la vitesse et à la fiabilité plutôt qu’à la visibilité sur la sécurité, ce qui entraîne une surveillance limitée et de longs temps d’arrêt pour les attaquants qui obtiennent un accès initial », a ajouté Norton.

Même si les responsables de la sécurité ne peuvent pas s’en sortir, ils peuvent réduire l’exposition. Les experts soulignent systématiquement les mêmes priorités : traiter les exécuteurs CI comme des actifs de production, faire tourner et définir la portée des jetons de publication de manière agressive, désactiver les scripts de cycle de vie sauf si nécessaire et épingler les dépendances sur des versions immuables.

« Ces attaques NPM ciblent la phase de pré-installation des dépendances logicielles, de sorte que les méthodes typiques de sécurité de la chaîne d’approvisionnement logicielle en matière d’analyse de code ne peuvent pas répondre à ces types d’attaques », a déclaré Marks. La détection nécessite une analyse d’exécution et une détection des anomalies plutôt que des outils basés sur les signatures.

Le résultat a été un changement discret mais puissant : les attaquants n’ont plus besoin de créer des contrefaçons convaincantes. Ils pourraient diffuser des logiciels malveillants via des canaux fiables, signés et versionnés comme n’importe quelle mise à jour de routine.

Environnements de développement sur ordinateurs portables de développeur

Les attaques npm modernes s’activent de plus en plus dans les environnements CI/CD plutôt que sur les ordinateurs portables des développeurs. Les scripts de post-installation, longtemps traités comme des aides à la configuration inoffensives, sont devenus un vecteur d’exécution capable de s’exécuter automatiquement dans GitHub Actions ou GitLab CI. Une fois à l’intérieur d’un exécuteur, les packages malveillants pourraient lire des variables d’environnement, voler des jetons de publication, falsifier des artefacts de construction ou même diffuser des versions malveillantes supplémentaires sous l’identité de la victime.

« Les environnements de développement et les exécuteurs CI valent désormais plus que les machines des utilisateurs finaux », a noté Pandya. « Ils disposent généralement d’autorisations plus larges, d’un accès aux secrets et de la possibilité de mettre du code en production. »

Plusieurs campagnes observées à la mi-2025 étaient explicitement compatibles CI, se déclenchant uniquement lorsqu’elles détectaient des environnements de construction automatisés. Certaines incluaient une exécution retardée ou des charges utiles à expiration automatique, minimisant la visibilité médico-légale tout en maximisant le vol d’informations d’identification.

Pour les entreprises, cela représente un changement de risque fondamental. Les systèmes CI fonctionnent souvent avec des privilèges plus élevés que n’importe quel utilisateur individuel, mais sont surveillés de manière beaucoup moins rigoureuse. « Ils sont souvent sécurisés avec des valeurs par défaut plus faibles : jetons de publication de longue durée, secrets CI trop permissifs, confiance implicite dans les scripts de cycle de vie et les métadonnées des packages, et peu d’isolation entre les builds », a noté Pandya.

Selon IDC Research, les organisations allouent seulement environ 14 % de leurs budgets AppSec à la sécurité de la chaîne d’approvisionnement, et seulement 12 % d’entre elles identifient la sécurité des pipelines CI/CD comme un risque majeur.

« Les packages modernes cachent une logique malveillante derrière des couches d’encodage, d’exécution retardée et d’empreintes digitales de l’environnement. » Norton a fait écho à cette préoccupation, soulignant que ces attaques opèrent à un niveau comportemental où l’analyse statique est insuffisante. « Les techniques d’obscurcissement rendent difficile la distinction entre la logique malveillante et la complexité légitime dans les grands projets JavaScript », a-t-elle déclaré. « Les charges utiles compatibles CI et les scripts de post-installation introduisent un comportement qui ne se manifeste que dans des conditions environnementales spécifiques. »

Outils de développementDéveloppement de logicielsVulnérabilitésSécurité