
l'attaque expose plus de 3 000 projets connexes
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.
anyone using @solana/web3.js, versions 1.95.6 and 1.95.7 are compromised with a secret stealer leaking private keys. if you or your product are using these versions, upgrade to 1.95.8 (1.95.5 is unaffected)
— trent.sol (@trentdotsol) December 3, 2024
if you run a service that can blacklist addresses, do your thing with…
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 :

« 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 »).
important to note for all news outlets that will misrepresent this:
- this is a javascript client library, meaning it has nothing to do with the security of the blockchain itself
- if you're a journalist, read the above again
(similar to the Slope hack where they were...La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.