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.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video