Les chercheurs en cybersécurité de ReversingLabs ont découvert deux lignes de code malveillant intégrées dans une mise à jour d'ETHCode, un outil de développement Ethereum open source utilisé par environ 6 000 développeurs. Le code malveillant a été inséré via une demande pull GitHub qui a réussi à contourner à la fois les examens de sécurité par intelligence artificielle et la surveillance humaine avant d'être distribué aux systèmes des développeurs.
Ce qu'il faut savoir :
- Un hacker sans antécédents GitHub a inséré un logiciel malveillant dans ETHCode via une demande pull de 43 commits contenant 4 000 lignes mises à jour
- Le code malveillant était conçu pour télécharger et exécuter des scripts pouvant potentiellement voler des actifs en crypto-monnaie ou compromettre des contrats intelligents
- Les outils d'examen IA de GitHub et l'équipe de développement n'ont pas détecté l'attaque sophistiquée, soulevant des préoccupations sur les pratiques de sécurité des logiciels open source
Détails de l'attaque révélés par l'enquête
La demande pull malveillante a été soumise le 17 juin par un utilisateur identifié comme Airez299, qui n'avait aucun historique de contribution sur la plateforme. Les chercheurs de ReversingLabs ont découvert que l'attaquant avait réussi à dissimuler le code malveillant en lui donnant un nom similaire aux fichiers existants tout en obscurcissant la structure réelle du code.
La première ligne de code malveillant était conçue pour se fondre harmonieusement avec les fichiers légitimes. La seconde ligne servait de mécanisme d'activation qui créerait en fin de compte une fonction PowerShell conçue pour télécharger et exécuter des scripts batch à partir de services d'hébergement de fichiers publics.
L'outil d'analyse automatique de GitHub et les membres de 7finney, le groupe responsable de l'entretien d'ETHCode, ont analysé la mise à jour massive du code. Seuls des changements mineurs ont été demandés lors du processus de révision, aucun examinateur humain ni système automatisé n'ayant signalé le logiciel malveillant intégré comme suspect.
Impact potentiel sur des milliers de systèmes
ETHCode sert de suite complète d'outils permettant aux développeurs Ethereum de créer et de déployer des contrats intelligents compatibles avec la machine virtuelle Ethereum. La mise à jour compromise aurait été automatiquement distribuée aux systèmes des utilisateurs via des mécanismes de mise à jour standard.
Le chercheur de ReversingLabs, Petar Kirhmajer, a déclaré à Decrypt qu'aucune preuve n'indiquait que le code malveillant avait été effectivement exécuté pour voler des jetons ou des données. Cependant, l'ampleur potentielle de l'attaque reste significative compte tenu de la base d'utilisateurs de l'outil.
"La demande pull pourrait s'être propagée à des milliers de systèmes de développeurs", a noté Kirhmajer dans le blog de recherche. ReversingLabs continue d'enquêter sur la fonctionnalité exacte des scripts téléchargés, partant du principe qu'ils étaient "conçus pour voler des actifs cryptographiques stockés sur la machine de la victime ou, alternativement, compromettre les contrats Ethereum en cours de développement par les utilisateurs de l'extension."
L'attaque représente un compromis sophistiqué de la chaîne d'approvisionnement qui a exploité la confiance inhérente aux processus de développement open source.
Les experts de l'industrie mettent en garde contre la vulnérabilité généralisée
Zak Cole, développeur Ethereum et cofondateur de NUMBER GROUP, a souligné que ce type d'attaque reflète des enjeux de sécurité plus larges auxquels est confronté l'écosystème de développement de cryptomonnaie. De nombreux développeurs installent des paquets open source sans mener d'examens de sécurité approfondis.
"C'est beaucoup trop facile pour quelqu'un d'insérer quelque chose de malveillant", a déclaré Cole à Decrypt. "Cela pourrait être un paquet npm, une extension de navigateur, peu importe."
La forte dépendance de l'industrie de la cryptomonnaie au développement open source crée une surface d'attaque croissante pour les acteurs malveillants. Cole a cité des incidents récents de haut niveau, y compris l'exploit du Ledger Connect Kit de décembre 2023 et le logiciel malveillant découvert dans la bibliothèque web3.js de Solana.
"Il y a trop de code et pas assez d'yeux dessus", a ajouté Cole. "La plupart des gens supposent simplement que c'est sûr parce que c'est populaire ou que ça existe depuis un moment, mais cela ne veut rien dire."
Cole a noté que la surface d'attaque adressable continue de croître à mesure que de plus en plus de développeurs adoptent des outils open source. Il a également souligné l'implication des acteurs financés par l'État dans ces attaques.
"N'oubliez pas également qu'il y a des entrepôts entiers d'opérateurs de la RPDC dont le travail à plein temps est d'exécuter ces exploits", a déclaré Cole.
Recommandations de sécurité pour les développeurs
Malgré la nature sophistiquée de l'attaque, les experts en sécurité estiment que les compromissions réussies restent relativement rares. Kirhmajer a estimé que "les tentatives réussies sont très rares" selon son expérience de recherche.
ReversingLabs recommande que les développeurs vérifient l'identité et l'historique des contributions des auteurs de code avant de télécharger ou de mettre en œuvre des mises à jour. L'entreprise suggère également d'examiner les fichiers package.json et les déclarations de dépendance similaires pour évaluer de nouvelles relations de code.
Cole prône des mesures de sécurité supplémentaires, y compris le verrouillage des dépendances pour éviter l'inclusion automatique de mises à jour de code non testées. Il recommande l'utilisation d'outils de balayage automatisés capables d'identifier les comportements suspects ou les profils de mainteneurs douteux.
Les développeurs devraient également surveiller les paquets qui changent soudainement de propriétaire ou publient des mises à jour inattendues. Cole souligne l'importance de maintenir des environnements séparés pour différentes activités de développement.
"De plus, n'utilisez pas d'outils de signature ou de portefeuilles sur la même machine que vous utilisez pour développer des trucs", a conclu Cole. "Supposez simplement que rien n'est sûr à moins que vous ne l'ayez vérifié ou mis dans un bac à sable."
Réflexions finales
Cet incident met en évidence les défis de sécurité continus auxquels est confronté le développement open source de cryptomonnaie, où des attaquants sophistiqués peuvent exploiter des mécanismes de confiance pour distribuer des logiciels malveillants à des milliers de systèmes de développeurs. Bien qu'aucune preuve ne suggère que le code malveillant ait été exécuté avec succès, l'attaque démontre la nécessité de pratiques de sécurité renforcées et de processus de vérification dans l'écosystème du développement de cryptomonnaie.