Une nouvelle campagne de vol de cryptomonnaies cible les développeurs les plus susceptibles d’avoir des clés de wallet, des identifiants cloud et un accès à la production sur leurs machines.
Des chercheurs de la société de sécurité Socket ont déclaré plus tôt cette semaine avoir identifié une attaque de chaîne d'approvisionnement appelée TrapDoor répandue sur trois grands registres de programmation open source, avec plus de 34 packages malveillants et des centaines de versions et artefacts associés.
Un point clé est que les attaquants deviennent de plus en plus ciblés. En plus de l'ingénierie sociale, qui vise les individus détenant des informations clés, les attaques de chaîne d'approvisionnement sont conçues pour cibler les développeurs, et non des utilisateurs au détail aléatoires. Ce sont précisément ces personnes qui peuvent avoir des fichiers wallet, des clés SSH, des jetons GitHub, des identifiants cloud et un accès en production sur la même machine qu'elles utilisent pour développer des outils crypto et IA.
Socket n'a pas identifié les victimes ni les fonds volés, mais a indiqué que les paquets étaient actifs sur npm, PyPI et Crates.io et contenaient des charges utiles pouvant voler des données de wallet, exfiltrer des identifiants, tester des jetons AWS et GitHub, et laisser des fichiers pour maintenir l'accès actif.
Les paquets programmés en JavaScript, Python et Rust étaient déguisés en outils d'aide aux développeurs, scanners de sécurité, outils de wallet, utilitaires Solidity, paquets de prompts AI et aides à la compilation pour Sui ou Move.
Les noms étaient volontairement ennuyeux. Les packages étaient nommés « wallet-security-checker », « defi-risk-scanner », « solidity-build-guard », « move-compiler-tools » et « llm-context-compressor », ressemblant à ce type de petites utilitaires qu’un développeur en crypto ou en IA pourrait installer sans réfléchir.
Une fois installé, les charges utiles ont tenté de récupérer bien plus que des données de package.
Dans les paquets npm, le malware a recherché sur la machine du développeur des clés privées, des mots de passe, des jetons GitHub et des identifiants de cloud. Il a également testé certaines identifiants volés, tenté de se propager vers d'autres systèmes via des clés SSH et laissé des fichiers pouvant maintenir l'infection active.
Les clés SSH sont des fichiers d'authentification utilisés par les développeurs pour accéder aux serveurs, aux dépôts de code et à d'autres machines. Si elles sont volées, elles permettent à un attaquant de passer d'un ordinateur portable compromis à l'infrastructure plus vaste d'une entreprise.
L'attaque utilise également des fichiers tels que .cursorrules et claude.md, qui permettent aux développeurs de fournir des instructions spécifiques au projet aux outils de codage par IA. Socket a indiqué que la campagne a intégré des instructions cachées à l'aide de caractères Unicode à largeur nulle, visiblement dans le but de faire exécuter lors de futures sessions d'assistant IA de fausses « analyses de sécurité » collectant et exfiltrant des secrets.
Cela a transformé l'attaque d'un simple voleur de paquets en un malware ciblant l'environnement de développement. L'installation du paquet n'est que la première étape, le véritable objectif étant la station de travail, telle que les wallets, les dépôts, les données du navigateur, les clés cloud, l'accès SSH et tous les outils de codage par IA qui seront lus ensuite.
Les paquets Rust utilisaient des scripts build.rs malveillants pour s'exécuter pendant la compilation, ciblant les développeurs de Sui et Move. Les paquets PyPI exécutaient du JavaScript distant à l'importation. Les paquets npm utilisaient des hooks postinstall.
Socket a déclaré avoir signalé les paquets aux registres concernés et avoir classé les paquets de la campagne comme malveillants. L'entreprise a également averti que l'attaquant a ouvert des pull requests sur des projets d'IA et de développement, en essayant d'ajouter des fichiers .cursorrules et CLAUDE.md via des voies normales de contribution open source.





