Des millions de développeurs JS piratés... (axios compromis)

BBetter Stack
Computing/SoftwareBusiness NewsInternet Technology

Transcript

00:00:00Il s'agit peut-être de l'une des plus grandes failles de la chaîne d'approvisionnement NPM
00:00:03que nous ayons jamais vues, et non, ce n'est pas un poisson d'avril, c'est juste un mauvais timing.
00:00:07Cela s'est produit dans le package Axios ; ce client HTTP a été installé 101 millions de fois cette semaine
00:00:13et compte plus de 174 000 dépendances. Il a donc déjà impacté des packages comme Datadog,
00:00:18OpenClaw et WordPress, et il a également été lié à des hackers nord-coréens.
00:00:22Alors, plongeons dedans et voyons ce qui s'est passé.
00:00:29Voici l'histoire : le 31 mars 2026, un attaquant a compromis le compte NPM
00:00:34du mainteneur principal d'Axios et a publié deux versions vérolées, la version 1.14.1 qui
00:00:39était marquée comme la dernière version, ainsi que la version 0.30.4 marquée comme héritée.
00:00:44Dans ces packages, ils ont introduit une dépendance fantôme appelée « plaincryptojs »
00:00:48qui n'était en fait que le package crypto.js normal mais avec une petite modification :
00:00:52il contenait un script post-installation nommé setup.js. Cela signifie que chaque utilisateur et chaque CI
00:00:58installant ces packages compromis exécutait également ce script. Le script lui-même contenait
00:01:02du code obfusqué qui vérifiait votre système d'exploitation, puis se connectait à un serveur
00:01:07pour télécharger une seconde charge utile correspondant à votre OS. Personne
00:01:12n'était donc à l'abri de cette attaque, et ils sont même allés jusqu'à s'assurer que la charge macOS
00:01:16fonctionnait sur les Mac Intel et Apple Silicon. Et c'est cette deuxième charge qui est vraiment redoutable :
00:01:20il s'agit d'un RAT, ou cheval de Troie d'accès à distance, qui fonctionne de la même manière sur tous les OS.
00:01:25D'abord, il analysait vos fichiers en parcourant vos documents, votre bureau
00:01:29et vos dossiers de configuration. La version Windows scannait même OneDrive, AppData et chaque
00:01:33lecteur présent sur votre système, avant d'envoyer cette liste de fichiers au serveur,
00:01:38probablement pour vérifier s'il y avait quelque chose à voler. Ensuite, il commençait
00:01:42à émettre des balises : toutes les 60 secondes, il communiquait votre nom d'hôte, nom d'utilisateur, OS,
00:01:47fuseau horaire, modèle matériel et la liste complète des processus en cours pour que l'attaquant voie
00:01:52quels logiciels vous utilisez et si vous êtes actif. Et si tout cela ne semble pas assez grave,
00:01:56le pire est à venir : à tout moment, l'attaquant pouvait envoyer à distance quatre commandes
00:02:00lui permettant de parcourir n'importe quel répertoire, d'exécuter des commandes shell ou des scripts,
00:02:05d'installer d'autres malwares ou même de tuer tout le processus pour effacer ses traces. En fait,
00:02:10ils ont même fait en sorte que le script d'installation original s'autodétruise, puis supprime le package.json
00:02:15contenant le post-install pour le remplacer par une version propre afin d'être le plus indétectable possible.
00:02:19Comme vous le voyez, ce hack était très sophistiqué et conçu pour
00:02:23cibler les postes de travail des développeurs et les exécuteurs CI/CD à la recherche de secrets comme les fichiers .env,
00:02:28les jetons NPM, les clés SSH et bien d'autres choses. Tout système ayant exécuté ces charges utiles
00:02:34doit être considéré comme victime d'un vol complet d'identifiants. En plus de tout cela,
00:02:38le mystère demeure sur la façon dont le compte NPM a été compromis. Le mainteneur a précisé que l'A2F est activée
00:02:43et que ses pipelines GitHub Actions sont également authentifiés. Il semble donc que
00:02:47les packages aient été publiés via l'interface CLI de NPM en utilisant un jeton d'accès NPM à longue durée de vie.
00:02:53La question suivante est de savoir comment ils ont obtenu ce jeton. Le mainteneur pense même
00:02:56que quelqu'un a pu récupérer ses codes de secours, mais la manière reste un mystère total. Si vous voulez
00:03:01savoir si vous êtes affecté, assurez-vous de rechercher dans vos fichiers lock les versions d'Axios
00:03:04impactées ainsi que le package plaincryptojs, et vérifiez également vos dossiers node_modules.
00:03:09Si vous en trouvez un, c'est malheureusement une mauvaise nouvelle. Vous pouvez aussi vérifier
00:03:14votre système pour des traces du RAT ; je laisserai des rapports complets en lien ci-dessous
00:03:18pour que vous puissiez suivre les étapes et savoir quoi faire en cas de compromission. Pour l'avenir,
00:03:22quelques mesures peuvent aider à prévenir ces attaques. D'abord, committez toujours vos fichiers lock
00:03:26et utilisez la commande « npm ci » au lieu de « npm install » dans vos pipelines.
00:03:31Il est aussi conseillé de définir un âge minimum pour les packages dans votre gestionnaire,
00:03:35en s'assurant qu'ils ont au moins 48 heures avant d'être installés, dans l'espoir que les malveillants
00:03:39soient détectés à temps. Cette faille Axios a été découverte et supprimée trois heures plus tard.
00:03:44Enfin, si possible, utilisez le flag --ignore-scripts lors du npm install, ou utilisez un outil
00:03:48comme Bun qui bloque par défaut tous les scripts post-install et ne les exécute
00:03:53que pour les dépendances explicitement approuvées. J'espère que c'est la plus grosse attaque
00:03:57que nous verrons cette année, mais elles sont de plus en plus fréquentes, alors restez vigilants
00:04:01et dites-moi ce que vous en pensez dans les commentaires ci-dessous.
00:04:04N'oubliez pas de vous abonner, et comme toujours, on se voit dans la prochaine vidéo.

Key Takeaway

La compromission du package Axios par un cheval de Troie d'accès à distance (RAT) sophistiqué impose une vérification immédiate des fichiers lock et l'adoption de commandes d'installation sécurisées comme npm ci ou --ignore-scripts.

Highlights

L'attaque cible le package Axios, installé 101 millions de fois par semaine et utilisé par 174 000 dépendances dont WordPress et Datadog.

Les versions compromises 1.14.1 et 0.30.4 contiennent une dépendance fantôme nommée plaincryptojs exécutant un script malveillant lors de l'installation.

Le malware est un cheval de Troie d'accès à distance (RAT) capable de scanner OneDrive, les dossiers AppData et les disques système sur Windows.

Toutes les 60 secondes, le script transmet le nom d'hôte, le fuseau horaire et la liste complète des processus actifs à un serveur distant.

L'attaquant dispose de commandes distantes pour exécuter des scripts shell, installer d'autres malwares ou supprimer le fichier package.json pour effacer les traces.

Le compte du mainteneur possédait l'authentification à deux facteurs (A2F), suggérant un vol de jeton d'accès NPM à longue durée de vie ou des codes de secours.

L'utilisation de la commande npm ci et du flag --ignore-scripts neutralise l'exécution automatique des scripts post-installation malveillants.

Timeline

Anatomie de la compromission du package Axios

  • Le 31 mars 2026, un attaquant prend le contrôle du compte NPM du mainteneur principal d'Axios.
  • Deux versions spécifiques, la 1.14.1 (dernière) et la 0.30.4 (héritée), intègrent le package malveillant plaincryptojs.
  • Le script setup.js s'exécute automatiquement sur chaque machine utilisateur ou serveur CI lors de l'installation.

L'ampleur de la faille s'explique par la popularité massive d'Axios, touchant des infrastructures comme WordPress et Datadog. Le code obfusqué détecte le système d'exploitation de la victime pour télécharger une seconde charge utile adaptée. Cette méthode garantit une compatibilité totale, incluant les processeurs Intel et Apple Silicon sur macOS.

Capacités d'espionnage et contrôle à distance du RAT

  • La charge utile finale est un cheval de Troie d'accès à distance (RAT) qui indexe les documents, le bureau et les fichiers de configuration.
  • Le système envoie des balises d'état toutes les 60 secondes pour confirmer l'activité de l'utilisateur et l'environnement matériel.
  • Le malware possède une fonction d'autodestruction pour remplacer les fichiers compromis par des versions propres après l'infection.

L'attaquant cible spécifiquement les secrets de développement tels que les fichiers .env, les jetons NPM et les clés SSH. Sur Windows, le scan s'étend à OneDrive et à l'intégralité des disques montés. Quatre commandes distantes permettent à l'attaquant de naviguer dans les répertoires ou de tuer des processus pour masquer sa présence.

Origine de la faille et protocoles de protection

  • La publication frauduleuse provient probablement de l'interface CLI de NPM via un jeton d'accès persistant malgré l'activation de l'A2F.
  • La recherche des termes Axios impactés et de plaincryptojs dans les fichiers lock identifie l'infection.
  • Le blocage des scripts post-installation via Bun ou le flag --ignore-scripts empêche l'activation du malware.

Toute machine ayant exécuté les versions vérolées doit être considérée comme totalement compromise avec un vol potentiel d'identifiants. Pour limiter les risques futurs, l'application d'un délai d'attente de 48 heures avant l'adoption de nouveaux packages permet aux analystes de détecter les anomalies. L'utilisation de npm ci garantit également une installation basée strictement sur le fichier lock commité.

Community Posts

No posts yet. Be the first to write about this video!

Write about this video