Un polyfill qui vous veut du mal, ça n’existe pas dans les manuels. Et pourtant, les chercheurs de JFrog viennent d’épingler six paquets npm malveillants qui se font passer pour des dépendances légitimes de Rollup, l’outil de bundling bien connu. Derrière la façade de code utilitaire se cache une chaîne d’attaque taillée pour siphonner les secrets des développeurs et ouvrir un accès distant. La signature, elle, pointe vers un groupe lié à la Corée du Nord.
Points clés
- Six paquets npm malveillants se font passer pour des polyfills de Rollup
- Le code s’exécute dès l’installation et récupère ses ordres via JSONKeeper
- Des vérifications anti-sandbox évitent la détection par les chercheurs
- JFrog attribue la campagne à un groupe lié à la Corée du Nord
Une exécution qui se déclenche pendant l’installation
Le principe est aussi vieux que redoutable. Les paquets embarquent du code qui s’exécute au moment du npm install, avant même que le développeur n’ait écrit la moindre ligne l’utilisant. Pas besoin d’appeler la bibliothèque, il suffit de l’installer pour que la mécanique se mette en route.
Une fois active, la charge malveillante va chercher ses instructions via JSONKeeper, un service de stockage JSON détourné pour héberger discrètement les commandes de l’attaquant. La technique évite les serveurs de commande et contrôle trop voyants et se fond dans du trafic d’apparence anodine.
Des vérifications anti-sandbox pour esquiver l’analyse
Les auteurs ne débarquent pas les mains dans les poches. Le code intègre des contrôles destinés à détecter les environnements d’analyse (les fameuses sandbox des chercheurs en sécurité) et à rester sagement inerte s’il flaire qu’on l’observe. De quoi ne se réveiller que sur une vraie machine de développeur, là où les secrets valent le détour.
Objectif final : dérober les identifiants, jetons et clés qui traînent dans les environnements de développement, puis établir un accès distant. Le classique kit de l’espionnage logiciel, appliqué à la chaîne d’approvisionnement open source.
Le supply chain, terrain de jeu favori
La méthode n’a rien d’inédit mais elle reste diablement efficace. Un développeur pressé qui tape un nom de paquet approchant, une faute de frappe, une confiance mal placée dans un nom qui sonne officiel, et la porte s’ouvre. Les registres publics comme npm restent une cible de choix précisément parce qu’un seul paquet compromis peut se propager dans des milliers de projets en aval.
La parade tient en quelques réflexes de base : vérifier l’auteur et l’historique d’un paquet, se méfier des scripts d’installation, et surveiller ce que ses dépendances vont réellement chercher sur le réseau. Autant dire que la vigilance du développeur reste, pour l’instant, le meilleur antivirus.