Un paquet npm malveillant cible les développeurs en se faisant passer pour un outil en ligne de commande légitime, tout en déployant secrètement un infostealer et un cheval de Troie d’accès à distance (RAT).
Le paquet, @openclaw-ai/openclawai, se fait passer pour un utilitaire d’installation d’OpenClaw, mais lance en réalité une opération malveillante en plusieurs étapes.
Une fois exécuté, il tente de dérober des identifiants, des portefeuilles de cryptomonnaies, des clés SSH, des données de navigateur et des jetons de développeur.
« Cette attaque se distingue par l’ampleur de la collecte de données, le recours à l’ingénierie sociale pour récupérer le mot de passe système de la victime, ainsi que par la sophistication de sa persistance et de son infrastructure de C2 », a déclaré les chercheurs de JFrog.
Décryptage de la chaîne d’attaque de GhostClaw
Le paquet malveillant a été soigneusement conçu pour ressembler à un utilitaire de développement légitime.
Sa configuration package.json semble normale, et le code source exposé contient des fonctions inoffensives destinées à rassurer toute personne examinant le paquet de manière superficielle.
Du code malveillant est intégré aux scripts d’installation qui s’exécutent automatiquement lors de la configuration, permettant aux attaquants d’établir un point d’ancrage sans éveiller immédiatement les soupçons.
Lors de l’installation, un script postinstall réinstalle silencieusement le paquet à l’échelle globale sur le système de la victime, garantissant que le binaire malveillant est ajouté au PATH du système.
Faux programme d’installation et étape d’hameçonnage des identifiants
Lorsque l’utilisateur exécute ensuite la commande openclaw, le système lance un script de configuration obfusqué qui constitue la première étape du malware.
Le script affiche une interface factice convaincante d’installation en ligne de commande, avec des barres de progression animées, des indicateurs de chargement et des messages de journal système destinés à imiter la sortie d’une installation logicielle légitime.
Une fois que la fausse installation semble terminée, le programme affiche une invite frauduleuse d’autorisation du trousseau demandant le mot de passe système de l’utilisateur, en affirmant que des privilèges d’administrateur sont nécessaires pour initialiser l’outil de manière sécurisée.
Contrairement aux invites d’hameçonnage classiques, le malware valide les tentatives de saisie du mot de passe à l’aide des véritables mécanismes d’authentification du système d’exploitation.
L’invite peut ainsi se comporter comme une véritable demande du système, ce qui rend la tromperie plus convaincante.
Pendant que la victime tente de s’authentifier, le script récupère simultanément une charge utile chiffrée de deuxième étape depuis une infrastructure contrôlée par les attaquants.
La charge utile est transmise via une requête chiffrée, puis déchiffrée localement à l’aide d’AES-256-GCM.
Une fois déchiffré, le code est écrit dans un fichier temporaire et exécuté comme processus en arrière-plan, ce qui permet au malware de fonctionner pendant que l’installation semble se terminer normalement.
GhostLoader assure la persistance
La deuxième étape de l’attaque — désignée en interne sous le nom de GhostLoader — est un vaste bundle JavaScript qui fonctionne à la fois comme un voleur d’informations et comme un RAT persistant.
Après son exécution, le malware s’installe dans un répertoire caché conçu pour ressembler à un service de télémétrie npm, ce qui l’aide à se fondre dans l’activité normale du système du développeur.
Pour maintenir sa persistance, le malware modifie les fichiers de configuration du shell, tels que .zshrc, .bashrc et les profils associés.
Ces modifications garantissent que le malware se lance automatiquement à chaque ouverture d’une nouvelle session de terminal. Sur les systèmes Linux, le malware peut également créer des tâches cron afin de garantir sa relance après chaque redémarrage du système.
Le malware dérobe les identifiants des développeurs et les données sensibles
Lors de sa première exécution, le malware collecte un large éventail d’informations sensibles couramment stockées sur les systèmes des développeurs.
Cela comprend les trousseaux macOS Keychain et iCloud, les identifiants de navigateur et les données de paiement enregistrées, les portefeuilles de cryptomonnaies et les phrases de récupération, les clés privées SSH, les identifiants des fournisseurs cloud pour AWS, Azure et GCP, ainsi que des jetons de développeur tels que les identifiants de GitHub CLI et les fichiers de configuration npm.
Si l’utilisateur accorde l’accès complet au disque sous macOS, le malware étend encore davantage ses capacités de collecte. Dans ce cas, il peut récupérer les notes Apple, l’historique des conversations iMessage, les données de navigation de Safari et les informations de configuration des comptes Apple Mail.
Une fois collectées, les données dérobées sont compressées dans une archive et exfiltrées vers l’infrastructure des attaquants par plusieurs canaux.
Il s’agit notamment d’envois directs vers des serveurs C2, ainsi que de canaux secondaires tels que les bots Telegram et les plateformes de partage de fichiers cloud, afin d’assurer une redondance si l’un des chemins d’exfiltration échoue.
Accès persistant et détournement des sessions de navigateur
Après avoir terminé la phase initiale de vol de données, le malware passe en mode de surveillance persistante.
Le système infecté communique périodiquement avec le serveur C2 de l’attaquant afin de recevoir des instructions et de maintenir un accès continu.
À partir de là, les attaquants peuvent envoyer des commandes pour exécuter des commandes shell arbitraires, récupérer des fichiers du système, déployer des charges utiles malveillantes mises à jour ou activer un proxy SOCKS5 permettant d’utiliser la machine compromise comme relais pour d’autres activités réseau.
Le clonage des sessions de navigateur constitue une fonctionnalité notable.
Le malware copie le profil de navigateur de la victime et lance un navigateur headless connecté à l’attaquant via le protocole Chrome DevTools, donnant à ce dernier une session authentifiée qui lui permet d’accéder aux sites web et aux services comme s’il était la victime.
Comme les sessions réutilisent les jetons d’authentification et les cookies existants, les attaquants peuvent souvent accéder aux comptes sans avoir besoin des mots de passe ni contourner l’authentification multifacteur (MFA).
Comment réduire les risques liés aux dépendances malveillantes
Les mesures suivantes peuvent aider les organisations à réduire le risque que des dépendances malveillantes compromettent les systèmes de développement et exposent des identifiants sensibles.
- Vérifiez l’authenticité des paquets avant d’installer de nouvelles dépendances, en particulier celles dont les noms ressemblent à ceux de projets légitimes, et installez les paquets provenant d’éditeurs vérifiés ou de registres internes de confiance.
- Utilisez des outils DevSecOps, notamment l’analyse des dépendances et la SCA, afin de détecter les paquets malveillants, les comportements d’installation suspects et les dépendances vulnérables avant leur intégration dans les pipelines de développement.
- Limitez ou désactivez les scripts postinstall de npm et les installations globales de paquets lorsque cela est possible, afin d’empêcher les paquets d’exécuter une logique d’installation cachée ou de placer des binaires malveillants dans le PATH du système.
- Surveillez les endpoints des développeurs à la recherche d’activités suspectes telles que des processus Node.js inattendus, des processus enfants détachés, des connexions réseau inhabituelles ou des modifications non autorisées des fichiers de configuration du shell.
- Imposez une authentification forte et des pratiques de stockage sécurisées, et renouvelez immédiatement les mots de passe système, les clés SSH, les jetons API et les identifiants cloud en cas de suspicion d’exposition.
- Mettez en œuvre une surveillance du réseau et des contrôles de sortie afin de détecter ou de bloquer les connexions sortantes inhabituelles, les tentatives d’exfiltration de grandes quantités de données ou les communications avec des infrastructures suspectes telles que les API Telegram ou des domaines inconnus.
- Testez régulièrement les plans de réponse aux incidents au moyen d’exercices sur table consacrés à des scénarios de compromission de la chaîne d’approvisionnement logicielle.
Collectivement, ces mesures aident les organisations à renforcer leur résilience face aux menaces visant la chaîne d’approvisionnement, tout en limitant l’ampleur potentielle des dégâts si une dépendance malveillante est introduite dans les environnements de développement.
Le risque croissant lié aux dépendances open source
La campagne GhostClaw met en évidence une tendance croissante : les attaquants ciblent les écosystèmes de développeurs et les registres de paquets open source comme points d’entrée dans les environnements d’entreprise.
En déguisant les malwares en outils de développement légitimes, ces menaces peuvent contourner les contrôles de sécurité traditionnels et accéder à des identifiants sensibles, à des ressources cloud et à des systèmes internes.
Cette tendance souligne l’importance plus générale de la sécurité de la chaîne d’approvisionnement logicielle, alors que les organisations s’efforcent de protéger leurs pipelines de développement et leurs dépendances contre le code malveillant.

