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:
— mert | helius.dev (@0xMert_) December 3, 2024
- 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 leaking… https://t.co/yPGV7m9YnP
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.
Earlier today, a publish-access account was compromised for @solana/web3.js, a JavaScript library that is commonly used by Solana dapps. This allowed an attacker to publish unauthorized and malicious packages that were modified, allowing them to steal private key material and…
— Anza (@anza_xyz) December 3, 2024
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