Les packages NPM malveillants utilisent la blockchain Ethereum pour la livraison de logiciels malveillants

Lucas Morel

Les contrats intelligents Ethereum utilisés pour masquer l’URL aux charges utiles de logiciels malveillants secondaires dans une chaîne d’attaque déclenchée par un dépôt github malveillant.

Les attaquants derrière une récente attaque de chaîne d’approvisionnement qui impliquaient des référentiels Rogue Github et des packages NPM ont utilisé des contrats intelligents sur la blockchain Ethereum pour offrir des charges utiles de logiciels malveillants. Les attaques ont probablement ciblé les utilisateurs et les développeurs de l’espace de crypto-monnaie.

«Ces dernières attaques par des acteurs de la menace, y compris la création d’attaques sophistiquées à l’aide de la blockchain et du github, montrent que les attaques contre des référentiels évoluent et que les développeurs et les organisations de développement doivent être sur le point de vue des efforts pour implanter du code malveillant dans des applications légitimes, accéder à des actifs de développement sensibles et à voler des données sensibles et des adaptations.

L’utilisation de contrats intelligents Ethereum pour masquer l’URL pour la charge utile de logiciels malveillants secondaires a probablement été effectué pour échapper aux outils de sécurité qui scannent des packages NPM pour des URL et des commandes suspectes.

NPM comme couche d’obfuscation pour la campagne GitHub

Les chercheurs de réversion deslab colortoolsv2 et mimelib2 Cela a utilisé des contrats intelligents Ethereum pour la livraison de logiciels malveillants en juillet. Mais peu d’efforts ont été consacrés à ce que ces packages soient légitimes et attrayants pour les développeurs à inclure dans leurs projets, ce qui est généralement l’objectif des attaques de chaîne d’approvisionnement avec des forfaits NPM voyous.

Le colortoolsv2 package – et le mimelib2 Celui qui l’a remplacé plus tard – ne contenait que les fichiers nécessaires pour implémenter la fonctionnalité malveillante. Comme les chercheurs l’ont découvert plus tard, cela était dû au fait qu’ils faisaient partie d’une campagne coordonnée plus large, dont l’objectif était de inciter les utilisateurs à exécuter le code à partir de faux référentiels GitHub qui téléchargeraient ensuite les packages NPM automatiquement sous forme de dépendances.

Les référentiels Rogue Github prétendaient être pour des robots automatisés de trading de crypto-monnaie et ont été conçus pour paraître légitimes. Ils semblaient avoir plusieurs contributeurs actifs, des milliers de commits de code et plusieurs étoiles, mais ceux-ci ont tous été truqués avec des comptes sockpuppet créés à peu près au même moment que les packages NPM sont apparus.

« Lorsque nous avons creusé le grand nombre de commits et ce qui a été commis, il est rapidement devenu évident que les contributeurs du code étaient également des faux et que le nombre réel de commits avait été gonflé », ont révélé les chercheurs. « En fait, il y a des milliers de commits et chaque jour, ce nombre augmente de quelques milliers, ce qui indique que l’acteur malveillant a mis en place une infrastructure pour la poussée des engagements automatisés. »

La plupart des engagements impliquaient de supprimer et d’ajouter le fichier de licence du projet. Les quelques engins légitimes ont été des modifications à télécharger et à exécuter les packages NPM Rogue comme dépendances lorsque le code du référentiel a été exécuté.

Les packages NPM contenaient du code qui se connecte à la blockchain Ethereum, qui n’est pas inhabituel pour une bibliothèque de crypto-monnaie supposée. Cependant, le code le fait pour obtenir des URL stockées dans des contrats intelligents Ethereum, qui sont ensuite accessibles pour télécharger des charges utiles de logiciels malveillants. Ethereum Smart Contracts sont essentiellement de petits programmes hébergés sur la blockchain qui s’exécutent automatiquement lorsque certaines conditions sont remplies.

« Comme le montre cette campagne: il est essentiel pour les développeurs d’évaluer chaque bibliothèque qu’ils envisagent de mettre en œuvre avant de décider de l’inclure dans leur cycle de développement », ont déclaré les chercheurs. « Et cela signifie retirer les couvertures des packages open source et de leurs mainteneurs: en regardant au-delà du nombre brut de mainteneurs, de validations et de téléchargements pour évaluer si un package donné – et les développeurs derrière cela – sont ce qu’ils se présentent. »

Même si les packages Rogue NPM et au moins un référentiel GitHub associé à cette campagne – Solana-Trading-Bot-V2 – ont été supprimés, les attaquants sont expérimentés et en installeront probablement de nouveaux.

Les développeurs d’applications liés à la crypto-monnaie sont devenus une cible fréquente pour les attaques de chaîne d’approvisionnement logicielles via des référentiels de packages open source. L’année dernière, REVERSINGLABS a détecté 32 campagnes d’attaque qui impliquaient du code malveillant téléchargé sur des référentiels open source qui ciblent les développeurs et les utilisateurs liés à la crypto.