IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Un pirate compromet une bibliothèque JavaScript de la blockchain Solana et exploite une porte dérobée pour dérober 184 000 $ à des portefeuilles numériques,
L'attaque expose plus de 3 000 projets connexes

Le , par Mathis Lucas

10PARTAGES

4  0 
Le SDK JavaScript légitime de la blockchain Solana a été temporairement compromis dans le cadre d'une récente attaque. Il s'agit du paquet npm « @solana/web3.js » qui figure parmi les 10 000 premiers projets de l'écosystème npm, avec plus de 3 000 projets dépendants générant 400 000 téléchargements hebdomadaires et 51 millions de téléchargements enregistrés au total. La bibliothèque a été piratée avec un code malveillant pour voler les clés privées des portefeuilles de cryptomonnaies afin de les vider. L'attaquant aurait réussi à voler 184 000 $, soulignant la vulnérabilité de la chaîne d'approvisionnement des logiciels.

Solana alerte sur une brèche de sécurité affectant son SDK @solana/web3.js

Solana est une blockchain publique basée sur la preuve d'enjeu (Proof of Stake - PoS) avec des fonctionnalités de contrats intelligents. Il s'agit de l'une des principales plateformes concurrentes de la blockchain Ethereum. Solana propose un SDK appelé « @solana/web3.js » utilisé par les applications décentralisées (dApps) pour se connecter et interagir avec la blockchain Solana. Deux versions de cette bibliothèque ont été récemment infectées par code malveillant.


Un acteur de la menace a détourné la bibliothèque pour diffuser deux versions malveillantes afin de voler des clés privées des portefeuilles et signer les transactions. « Une attaque de la chaîne d'approvisionnement a été détectée dans les versions 1.95.6 et 1.95.7 de la bibliothèque populaire "@solana/web3.js", qui reçoit plus de 350 000 téléchargements hebdomadaires sur npm », a indiqué la société de sécurité de la chaîne d'approvisionnement Socket.

La brèche expose un nombre important de plateformes de cryptomonnaies et de portefeuilles individuels à un risque de vol. « Ces versions compromises contiennent un code malveillant injecté qui est conçu pour voler les clés privées de développeurs et d'utilisateurs peu méfiants, permettant potentiellement aux attaquants de drainer les portefeuilles de cryptomonnaies », ont ajouté les analystes de Socket. Solana a publié un communiqué confirmant la brèche :

Citation Envoyé par Solana

Plus tôt dans la journée, un compte d'accès à la publication a été compromis pour @solana/web3.js, une bibliothèque JavaScript couramment utilisée par les dapps de Solana. Cela a permis à un attaquant de publier des paquets non autorisés et malveillants qui ont été modifiés, leur permettant de voler des clés privées et de drainer des fonds des dapps, comme les bots, qui gèrent directement les clés privées.

Ce problème ne devrait pas affecter les portefeuilles non conservateurs, car ils n'exposent généralement pas les clés privées lors des transactions.

Il ne s'agit pas d'un problème lié au protocole Solana lui-même, mais à une bibliothèque client JavaScript spécifique, et il ne semble affecter que les projets qui gèrent directement des clés privées et qui ont été mis à jour entre 15 h 20 UTC et 20 h 25 UTC le lundi 2 décembre 2024.

Ces deux versions non autorisées (1.95.6 et 1.95.7) ont été repérées en quelques heures et ont depuis été supprimées du dépôt.
Solana avertit les développeurs qui pensent avoir été compromis de passer immédiatement à la dernière version v1.95.8 et d'effectuer une rotation de toutes les clés. Selon un avis GitHub, « les développeurs qui ont installé l'une des versions malveillantes (1.95.6 et 1.95.7) de la bibliothèque @solana/web3.js doivent considérer que leur système est totalement compromis et réinitialiser tous les secrets et toutes les clés, à partir d'un autre ordinateur ».


« Le paquet doit être supprimé, mais comme le contrôle total de l'ordinateur peut avoir été donné à une entité extérieure, il n'y a aucune garantie que la suppression du paquet éliminera tous les logiciels malveillants résultant de son installation », indique l'avis GitHub. Compte tenu de la nature de la compromission, il est possible que les attaquants maintiennent une présence sur le système infecté même après la suppression de la bibliothèque compromise.

L'analyse différentielle du paquet npm de Solana révèle des URL malveillantes

L'analyse des paquets @solana/web3.js concernés par Christophe Tafani-Dereeper, un chercheur travaillant pour la société Datadog, a identifié un code de porte dérobée inséré dans la version v1.95.7. Selon Christophe Tafani-Dereeper, l'auteur de la menace a ajouté à cette version une fonction malveillante appelée « addToQueue » qui vole les clés secrètes et privées et les envoie à un serveur de l'attaquant à l'aide d'en-têtes Cloudflare d'apparence légitime.

« La porte dérobée insérée dans la version 1.95.7 ajoute une fonction addToQueue qui exfiltre la clé privée par le biais d'en-têtes CloudFlare apparemment légitimes. Les appels à cette fonction sont ensuite insérés à divers endroits qui accèdent (légitimement) à la clé privée », explique le chercheur.


Les appels à la fonction addToQueue ont été ajoutés à cinq endroits clés dans le code : les fonctions fromSecretKey(), fromSeed(), createInstructionWithPublicKey() et createInstructionWithPrivateKey(), ainsi que le constructeur du compte. Ces fonctions sont utilisées dans l'ensemble de la bibliothèque et présentent les caractéristiques suivantes :

  • fromSecretKey() : crée une paire de clés à partir d'un tableau d'octets de clés secrètes brutes ;
  • fromSeed() : génère une paire de clés à partir d'une séquence de 32 octets ;
  • createInstructionWithPublicKey() : crée une instruction ed25519 avec une clé privée ;
  • createInstructionWithPrivateKey() : crée une instruction secp256k1 avec une clé privée.


Le code malveillant volera soit la clé secrète transmise ou générée (les deux premières fonctions et le constructeur du compte), soit la clé privée transmise (les deux dernières fonctions) et l'enverra aux points de terminaison de l'attaquant à "https://sol-rpc[/url][.]xyz/api/rpc/queue". Le chercheur Christophe Tafani-Dereeper a rapporté que ce domaine a été enregistré pour la première fois à la fin du mois de novembre 2024 et qu'il était hébergé par Cloudflare.

Une fois que les acteurs de la menace ont accès à ces clés, ils peuvent les charger dans leurs propres portefeuilles et drainer à distance toutes les cryptomonnaies et tous les NFT stockés. L'outil d'analyse en temps réel pour l'écosystème Solana indique que plusieurs cryptomonnaies ont été volées.

Socket indique que l'attaque a été tracée jusqu'à l'adresse Solana « FnvLGtucz4E1ppJHRTev6Qv4X7g8Pw6WPStHCcbAKbfx », qui contient actuellement 674,86 Solana et des quantités variables de jetons Irish Pepe, Star Atlas, Jupiter, USD Coin, Santa Hat, Pepe on Fire, Bonk, catwifhat, et Genopets Ki.

Solscan indique que la valeur estimée de ce butin est de 184 000 $. Les personnes dont les portefeuilles ont été compromis lors de cette attaque doivent immédiatement transférer les fonds restants vers un nouveau portefeuille et cesser d'utiliser l'ancien, car les clés privées sont désormais compromises.

Les cryptomonnaies : une cible fréquente de la chaîne d'approvisionnement

Le code et l'infrastructure liés aux cryptomonnaies, dont la blockchain Solana, sont fréquemment la cible de cyberattaques sophistiquées. En août 2024, Sonatype, une société qui analyse la chaîne d'approvisionnement, a signalé une attaque de typosquattage visant la blockchain Solana. La campagne de typosquattage jouait sur une divergence entre les noms des paquets du projet Solana Python API sur GitHub (« solana-py ») et PyPI (simplement « solana »).


Dans le cadre de cette attaque de la chaîne d'approvisionnement des logiciels, un acteur de la menace a publié un projet malveillant « solana-py » sur PyPI, reproduisant le code du paquet légitime « solana », tout en ajoutant des fonctionnalités malveillantes pour voler des secrets.

Une autre campagne de la chaîne d'approvisionnement axée sur les cryptomonnaies a été signalée en mars 2024. Le chercheur RL Karlo Zanki a exposé BipClip, une campagne PyPI malveillante ciblant les développeurs travaillant sur des projets liés à la génération et à la sécurisation de portefeuilles de cryptomonnaies.

Les attaquants cherchaient à tromper les développeurs souhaitant mettre en œuvre la proposition d'amélioration du Bitcoin 39, ou BIP39, une liste de 2 048 mots faciles à mémoriser utilisés pour générer une séquence binaire qui crée des portefeuilles Bitcoin déterministes (ou « HD Wallets »).

« Cependant, la compromission de la bibliothèque JavaScript légitime @solana/web3.js est d'un ordre de grandeur supérieur à celui des campagnes de typosquattage qui reposent sur l'erreur des développeurs », a déclaré Tomislav Peričin, cofondateur et architecte logiciel en chef de ReversingLabs.


Selon lui, la majorité des attaques de la chaîne d'approvisionnement qui ciblent l'écosystème open source s'appuient sur des tactiques d'ingénierie sociale pour réussir. Ces attaques ont un rayon d'action minuscule, n'affectant que quelques développeurs avant d'être découvertes et neutralisées.

Tomislav Peričin a déclaré que la compromission de @solana/web3.js est bien plus qu'un énième paquet malveillant trouvé dans npm. « La compromission d'une bibliothèque de confiance et largement utilisée comme @solana/web3.js est beaucoup plus dévastatrice pour la communauté », a-t-il souligné.

Sources : Socket, Solana, la bibliothèque @solana/web3.js

Et vous ?

Quel est votre avis sur le sujet ?
Que pensez-vous de cette nouvelle attaque visant la chaîne d'approvisionnement des logiciels ?

Voir aussi

Invasion silencieuse : des centaines de bibliothèques malveillantes publiées sur NPM tentent d'installer des malwares sur les machines des développeurs pour infiltrer les entreprises

L'écosystème Solana victime d'un piratage qui siphonne 8000 portefeuilles dynamiques des millions en cryptomonnaies, l'attaque affecte les portefeuilles connectés à Internet sur iOS et Android

Les vols liés au piratage des cryptomonnaies doublent pour atteindre 1,4 milliard de dollars au cours du premier semestre 2024
Selon un rapport des chercheurs de TRM Labs

Une erreur dans cette actualité ? Signalez-nous-la !