Imaginez un voleur se déguisant en livreur de confiance, entrant sans encombre dans votre maison. C’est exactement la stratégie employée par des cybercriminels qui exploitent des packages npm falsifiés pour infiltrer les environnements de développement Ethereum. Ces attaques visent à voler des données sensibles comme les clés privées, les phrases mnémoniques et les fichiers de configuration.
Hardhat : une cible de choix pour les attaquants
Hardhat, un outil essentiel pour les développeurs Ethereum, est au cœur de ces attaques. Cet environnement, conçu pour créer et déployer des contrats intelligents et des applications décentralisées (dApps), est détourné par des packages malveillants qui imitent ceux de la Nomic Foundation.
Les packages contrefaits, tels que @nomicsfoundation/sdk-test et @nomisfoundation/hardhat-config, se cachent derrière des noms presque identiques à ceux de bibliothèques officielles. Une fois installés, ces packages activent des scripts malveillants pour collecter des données critiques et les transmettre à des serveurs contrôlés par les attaquants.
Une liste de packages infectés qui s’allonge
Les chercheurs ont identifié plusieurs bibliothèques malveillantes, parmi lesquelles :
- nomicsfoundations
- @nomisfoundation/hardhat-configure
- installedpackagepublish
- @nomisfoundation/hardhat-config
- @monicfoundation/hardhat-config
- @nomicsfoundation/sdk-test
- @nomicsfoundation/hardhat-config
- @nomicsfoundation/web3-sdk
- @nomicsfoundation/sdk-test1
- @nomicfoundations/hardhat-config
- crypto-nodes-validator
- solana-validator
- node-validators
- hardhat-deploy-others
- hardhat-gas-optimizer
- solidity-comments-extractors
Par exemple, @nomicsfoundation/sdk-test, publié depuis octobre 2023, a déjà accumulé plus de 1 092 téléchargements. Derrière une apparente innocuité, ces packages exploitent des fonctions comme hreInit() pour collecter des informations sensibles dans l’environnement Hardhat.
Le rôle des extensions malveillantes dans les IDE
Les environnements de développement intégrés (IDE), comme Visual Studio Code, ne sont pas épargnés. Des extensions frauduleuses imitant des outils populaires, tels que Solidity Support ou ZoomWorkspace, introduisent également du code malveillant. Ces extensions agissent comme des chevaux de Troie, téléchargeant des charges utiles en arrière-plan depuis des serveurs distants.
Ces attaques, semblables à des poupées russes, exploitent la complexité des chaînes de dépendances. Une seule bibliothèque compromise peut infecter des centaines de projets, multipliant les points d’entrée pour les cybercriminels.
Ethereum comme outil de contrôle à distance
Plus inquiétant encore, certains acteurs malveillants utilisent les contrats intelligents Ethereum comme canaux de commande et contrôle (C2). Un réseau de botnet, surnommé MisakaNetwork, a été découvert. Ce réseau, alimenté par des machines infectées, repose sur des adresses distribuées via des contrats Ethereum pour orchestrer ses attaques.
L’un des packages à l’origine de cette menace, ethereumvulncontracthandler, prétendait aider à détecter des vulnérabilités dans les contrats intelligents, mais il installait en réalité un malware, le Quasar RAT.
OAST : une méthode détournée pour exfiltrer des données
Les attaquants utilisent également des outils de tests de sécurité d’application hors bande (OAST) pour exfiltrer des informations sensibles. Ces méthodes, initialement conçues pour évaluer les vulnérabilités, sont désormais exploitées à des fins malveillantes.
Par exemple, des bibliothèques comme monoliht sur PyPI et adobe-dcapi-web sur npm collectent des métadonnées système et les transmettent à des serveurs externes via des requêtes DNS.
Une chaîne de dépendances à haut risque
Vous vous demandez peut-être pourquoi ces attaques réussissent si facilement. L’écosystème npm est un véritable labyrinthe, où chaque package dépend de plusieurs autres. Cette structure en cascade, complexe à analyser, est une aubaine pour les attaquants. Un cybercriminel russe, connu sous le pseudonyme _lain, a admis exploiter cette complexité pour introduire du code malveillant dans les projets.
Comment protéger vos projets ?
Pour réduire les risques liés à ces attaques, vous devez adopter une approche proactive :
- Vérifiez l’authenticité des packages : Avant d’installer une bibliothèque, examinez sa source, ses contributeurs et ses mises à jour.
- Inspectez le code source : Prenez le temps d’auditer les packages, surtout ceux qui ne sont pas largement adoptés.
- Surveillez les dépendances : Utilisez des outils comme Socket ou Snyk pour analyser la sécurité de vos chaînes de dépendances.
- Mettez à jour régulièrement : Assurez-vous d’utiliser les versions les plus récentes des outils et bibliothèques.
En adoptant ces bonnes pratiques, vous pouvez non seulement protéger vos projets, mais aussi contribuer à renforcer la sécurité de l’écosystème open-source dans son ensemble.