Une opération sournoise, mais redoutablement efficace : des acteurs liés à la Corée du Nord ont injecté pas moins de 67 packages malveillants dans la registry npm, plateforme utilisée quotidiennement par des millions de développeurs JavaScript à travers le monde. Le but ? Disséminer un malware inédit baptisé XORIndex.
Une attaque digne dâun scĂ©nario de film dâespionnage, Ă ceci prĂšs quâelle est bien rĂ©elle â et quâelle cible les fondations mĂȘme de la chaĂźne de dĂ©veloppement logicielle.
đ”ïžââïž Qui est derriĂšre ? Et pourquoi ?
DâaprĂšs les analyses de plusieurs chercheurs en cybersĂ©curitĂ©, cette campagne est attribuĂ©e au groupe Lazarus (ou une entitĂ© affiliĂ©e), bien connu pour ses attaques sophistiquĂ©es visant Ă la fois des objectifs financiers et stratĂ©giques (vol de crypto, espionnage industriel, sabotage Ă©tatique).
Lâapproche ici est subtile : au lieu dâattaquer les infrastructures directement, on sâinfiltre dans les outils des dĂ©veloppeurs. Une fois quâun dĂ©veloppeur installe un package npm corrompu, XORIndex se charge silencieusement de collecter des donnĂ©es, voler des tokens ou ouvrir la voie Ă dâautres charges utiles.
đ Comment fonctionne XORIndex ?
Le malware agit comme un loader, câest-Ă -dire un cheval de Troie minimal dont la tĂąche est dâinstaller dâautres malwares, souvent plus destructeurs ou spĂ©cialisĂ©s (exfiltration, ransomware, accĂšs distant…).
đ CaractĂ©ristiques principales :
- Obfuscation XOR : comme son nom lâindique, le binaire utilise un chiffrement XOR pour dissimuler son code, une mĂ©thode simple mais efficace pour tromper les antivirus.
- Injection directe dans Node.js : les packages malveillants sont des dépendances classiques, parfois trÚs bien notées, rendant la détection difficile.
- Activation conditionnelle : certaines variantes du malware attendent des environnements spĂ©cifiques (Linux, variables dâAPI, tokens GitHub) avant de se dĂ©clencher.
đŠ Les paquets npm compromis
Parmi les 67 packages repérés, on retrouve des noms comme stream-core, node-util-lib, http-stringify, etc. Leur point commun ?
Des noms anodins, parfois trĂšs proches de packages lĂ©gitimes â la technique du typosquatting classique.
Lâobjectif : piĂ©ger les dĂ©veloppeurs Ă©tourdis ou pressĂ©s.
Une fois installés :
- Les paquets dĂ©clenchent lâexĂ©cution dâun script post-install.
- Ce script télécharge XORIndex depuis un serveur distant.
- Et le loader établit ensuite une communication discrÚte avec un serveur de commande & contrÎle (C2).
đŻ Pourquoi câest grave (spoiler : câest trĂšs grave)
Cette attaque illustre la fragilitĂ© actuelle de notre chaĂźne dâapprovisionnement logicielle. npm, tout comme PyPI ou RubyGems, est un Ă©cosystĂšme ouvert, mais sans validation humaine systĂ©matique.
Un package malveillant, surtout sâil est intĂ©grĂ© Ă un projet open source populaire, peut infecter des dizaines de milliers de projets en cascade.
Câest lâĂ©quivalent moderne dâempoisonner un rĂ©servoir dâeau publique.
đĄïž Que faire concrĂštement ?
Pour les développeurs :
- â
 Audit de vos dĂ©pendances avecÂ
npm audit ouÂSnyk. - â  VĂ©rification manuelle des packages ajoutĂ©s (auteurs, historique, GitHub associĂ©).
- đ«Â Ăviter les packages inconnus ou peu tĂ©lĂ©chargĂ©s, surtout sâils imitent dâautres noms.
- đ”ïžââïž Utilisez des outils commeÂ
Socket.dev,Ânpm-guard, ouÂnpm-lockdown.
Pour les RSSI & DSI :
- đŠÂ Verrouiller les versions et sources de dĂ©pendances (fichiersÂ
package-lock.json, audits de CI/CD). - đ Mettre en place une analyse comportementale sur les environnements de build (VM de compilation surveillĂ©es).
- đ§° Former les Ă©quipes dev aux menaces de supply chain : ce nâest plus de la parano, câest la norme.
đ En conclusion
Avec cette campagne, la CorĂ©e du Nord ne cherche pas juste Ă voler des donnĂ©es : elle explore, teste, infiltre. Et surtout, elle sâinsinue lĂ oĂč personne ne regarde : dans le npm install banal dâun projet du vendredi soir.
La leçon ?
Votre projet open source prĂ©fĂ©rĂ© peut ĂȘtre un cheval de Troie dormant.
La vigilance ne se limite plus au code mĂ©tier. Elle doit sâappliquer Ă chaque dĂ©pendance.
đ§ TL;DR
- 67 packages npm infectés pour diffuser un malware nord-coréen nommé XORIndex.
- Le malware agit comme un loader, déguisé dans des dépendances ordinaires.
- Cible : dĂ©veloppeurs & environnements de build â ouverture Ă lâespionnage ou sabotage.
- Réaction urgente recommandée : audit de vos dépendances et verrouillage de la chaßne CI/CD.
đŹ Vous utilisez npm au quotidien ? Vous avez trouvĂ© un package suspect ?
Partagez vos expériences en commentaire!
