veilletech.fr
22 août Feed du jour
#01 SÉCURITÉ Faille

14 paquets npm lancent un implant sans hook

Le paquet marche, c'est justement ce qui le rend indétectable à la lecture.

Quatorze paquets npm se faisant passer pour des utilitaires de dates embarquent RedShell, la balise Linux du framework RedC2 4.0. Aucun script d'installation n'est utilisé : le simple import du module, même transitif, suffit à lancer le binaire en processus détaché. Les paquets rendent réellement le service promis, ce qui rend la détection par relecture illusoire.

3 min de lecturevidéo 1:22
Partager
Sommaire5 sections
  1. Ce qui se passe
  2. Le détail qui change tout
  3. Ce que fait la charge
  4. Ce qu'il faut faire
  5. À retenir

Ce qui se passe

Les chercheurs de TrendAI, la branche entreprise de Trend Micro, ont identifié quatorze paquets npm publiés sous des noms d'utilitaires de calendrier et de séries : streak-metrics-math, kit-map-vim, streak-map-cache, streak-calc-metrics et une dizaine d'autres variations sur les mêmes mots.

Chacun embarque un binaire présenté comme un accélérateur mathématique natifmath-core.bin, calc-cache.bin, calc-mapping.bin selon les paquets — déposé dans dist/ ou dist/internal/. Le contenu, lui, est identique partout : RedShell, la balise Linux du framework de commande et contrôle RedC2 4.0.

Le détail qui change tout

La plupart des paquets npm malveillants s'exécutent depuis un script d'installation. C'est le vecteur que couvre npm install --ignore-scripts, et c'est aussi celui que surveillent la plupart des outils d'audit.

Ici, il n'y en a pas. Le déclencheur est le fichier d'entrée du paquet, dist/index.mjs, qui joue le rôle de chargeur : il ré-exporte proprement les fonctions de dates promises, puis localise le binaire, le marque exécutable et le lance en processus d'arrière-plan détaché.

« Aucun appel de fonction d'install hook n'est nécessaire ; un simple import n'importe où dans le graphe de dépendances, même transitif, suffit à exécuter la charge. » — Aliakbar Zahravi, TrendAI

Autrement dit : le paquet n'a même pas besoin d'être appelé. Il suffit qu'un import le charge quelque part dans l'arbre, y compris une dépendance de dépendance dont vous ignorez l'existence.

Ce que fait la charge

RedShell ouvre un shell interactif via /bin/sh et expose un jeu de commandes spécifiques à Linux : reconnaissance système, opérations sur fichiers, collecte de clés SSH et d'identifiants de navigateur, persistance, exécution d'ELF en mémoire, proxy SOCKS5 et pivot réseau.

Le beacon s'enregistre auprès d'un serveur distant avec un message de check-in, puis entre dans une boucle de traitement de commandes.

RedC2 est vendu 99,99 $ sur des forums, annoncé par un acteur se faisant appeler « MarlboroMan » début juin 2026. Le framework est en développement actif depuis au moins un an : version 2.0 en août 2025, 3.0 en janvier, 4.0 en juin, qui introduit précisément le beacon Linux. Il embarque aussi un composant piloté par modèle de langage, « Red Agent », qui permet d'orchestrer reconnaissance réseau et vol d'identifiants en langage naturel.

Ce qu'il faut faire

Le point le plus inconfortable de cette campagne est que les paquets fonctionnent. Ils rendent le service annoncé, avec des noms plausibles et une API cohérente. Une relecture rapide du code d'entrée ne révèle rien d'anormal : le chargeur ressemble à un ré-export.

Trois réflexes concrets :