
Un scanner pour lutter contre l’attaque Shai-Hulud
Romain, fidèle lecteur de korben.info a développé un scanner pour détecter l’attaque Shai-Hulud qui a secoué l’écosystème npm dernièrement ! L’occasion parfaite pour moi de vous raconter cette histoire complètement dingue.
Vous vous souvenez de CrowdStrike ? Cette entreprise de cybersécurité qui a provoqué la plus grande panne informatique mondiale en juillet 2024 avec une mise à jour défaillante ? Celle qui a cloué au sol des milliers d’avions et fait planter des millions de PC Windows ? Eh bien figurez-vous qu’en septembre 2025, ils se sont également fait avoir comme des bleus. En effet, leurs propres paquets npm ont été compromis.
C’est ce qu’on appelle une supply chain attack et l’attaque Shai-Hulud (oui, comme le ver des sables dans Dune) n’est pas juste un malware de plus. C’est le premier ver informatique qui s’est propagé de manière autonome dans l’écosystème npm, infectant des centaines de paquets en quelques heures.
Le ver utilise TruffleHog, un outil de sécurité normalement conçu pour DÉTECTER les secrets dans le code, c’est à dire les tokens GitHub, npm, AWS et GCP.
Puis quand il trouve des credentials valides, le ver fait les trois choses suivantes : D’abord, il crée un dépôt GitHub public nommé “Shai-Hulud” où il balance toutes les données volées. Ensuite, il pousse une GitHub Action malicieuse dans tous les repos accessibles pour exfiltrer encore plus de secrets. Et le pompon c’est que parfois, il transforme même les repos privés d’entreprise en repos publics personnels. J’vous laisse imaginer la tête du RSSI qui découvre que tout le code proprio de sa boîte est accessible à tout le monde sur GitHub…
Et quand le ver trouve des tokens npm dans son environnement, il publie automatiquement des versions infectées de tous les paquets auxquels il a accès. C’est d’ailleurs la première fois qu’on voit ce comportement de ver auto-répliquant dans l’écosystème JavaScript. Par exemple, le paquet @ctrl/tinycolor, téléchargé 2 millions de fois par semaine, a été l’un des premiers touchés.
Face à ce bordel monumental, Romain a donc développé
npm-shai-hulud-scanner
, un outil qui détecte non seulement les paquets connus comme compromis, mais aussi les tentatives de typosquatting et les patterns de code malicieux. Il utilise notamment la
distance de Levenshtein
pour identifier les variations suspectes de noms de paquets (du genre lodash vs lodash_ ou react vs raect).
Quand vous le lancez, le scanner de Romain vérifie d’abord si vous avez des paquets de la liste des 500+ compromis. Ensuite il analyse votre code à la recherche de patterns suspects : tentatives d’exfiltration de credentials, exécution de code à distance, obfuscation, communications réseau louches. Il peut même tourner en mode monitoring continu pour surveiller votre CI/CD. Et cerise sur le gâteau, il peut mettre en quarantaine les paquets suspects automatiquement. C’est top non ?
Shai-Hulud est l’un des attaques les plus sévères jamais vue sur la supply chain JavaScript et si même CrowdStrike se fait avoir, je me dit que personne n’est à l’abri. Donc soyez hyper vigilants et utilisez des outils de contrôle comme celui de Romain !
On ne sait jamais !
Leave a Comment