Le SDK JavaScript lgitime de la blockchain Solana a t temporairement compromis dans le cadre d’une rcente attaque. Il s’agit du paquet npm @solana/web3.js qui figure parmi les 10 000 premiers projets de l’cosystme npm, avec plus de 3 000 projets dpendants gnrant 400 000 tlchargements hebdomadaires et 51 millions de tlchargements enregistrs au total. La bibliothque a t pirate avec un code malveillant pour voler les cls prives des portefeuilles de cryptomonnaies afin de les vider. L’attaquant aurait russi voler 184 000 $, soulignant la vulnrabilit de la chane d’approvisionnement des logiciels.
Solana alerte sur une brche de scurit affectant son SDK @solana/web3.js
Solana est une blockchain publique base sur la preuve d’enjeu (Proof of Stake – PoS) avec des fonctionnalits 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 dcentralises (dApps) pour se connecter et interagir avec la blockchain Solana. Deux versions de cette bibliothque ont t rcemment infectes 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)
if you run a service that can blacklist addresses, do your thing with
— trent.sol (@trentdotsol) December 3, 2024
Un acteur de la menace a dtourn la bibliothque pour diffuser deux versions malveillantes afin de voler des cls prives des portefeuilles et signer les transactions. Une attaque de la chane d’approvisionnement a t dtecte dans les versions 1.95.6 et 1.95.7 de la bibliothque populaire « @solana/web3.js », qui reoit plus de 350 000 tlchargements hebdomadaires sur npm , a indiqu la socit de scurit de la chane d’approvisionnement Socket.
La brche 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 conu pour voler les cls prives de dveloppeurs et d’utilisateurs peu mfiants, permettant potentiellement aux attaquants de drainer les portefeuilles de cryptomonnaies , ont ajout les analystes de Socket. Solana a publi un communiqu confirmant la brche :
Solana avertit les dveloppeurs qui pensent avoir t compromis de passer immdiatement la dernire version v1.95.8 et d’effectuer une rotation de toutes les cls. Selon un avis GitHub, les dveloppeurs qui ont install l’une des versions malveillantes (1.95.6 et 1.95.7) de la bibliothque @solana/web3.js doivent considrer que leur systme est totalement compromis et rinitialiser tous les secrets et toutes les cls, partir d’un autre ordinateur .
Le paquet doit tre supprim, mais comme le contrle total de l’ordinateur peut avoir t donn une entit extrieure, il n’y a aucune garantie que la suppression du paquet liminera tous les logiciels malveillants rsultant de son installation , indique l’avis GitHub. Compte tenu de la nature de la compromission, il est possible que les attaquants maintiennent une prsence sur le systme infect mme aprs la suppression de la bibliothque compromise.
L’analyse diffrentielle du paquet npm de Solana rvle des URL malveillantes
L’analyse des paquets @solana/web3.js concerns par Christophe Tafani-Dereeper, un chercheur travaillant pour la socit Datadog, a identifi un code de porte drobe insr dans la version v1.95.7. Selon Christophe Tafani-Dereeper, l’auteur de la menace a ajout cette version une fonction malveillante appele addToQueue qui vole les cls secrtes et prives et les envoie un serveur de l’attaquant l’aide d’en-ttes Cloudflare d’apparence lgitime.
La porte drobe insre dans la version 1.95.7 ajoute une fonction addToQueue qui exfiltre la cl prive par le biais d’en-ttes CloudFlare apparemment lgitimes. Les appels cette fonction sont ensuite insrs divers endroits qui accdent (lgitimement) la cl prive , explique le chercheur.
Les appels la fonction addToQueue ont t ajouts cinq endroits cls dans le code : les fonctions fromSecretKey(), fromSeed(), createInstructionWithPublicKey() et createInstructionWithPrivateKey(), ainsi que le constructeur du compte. Ces fonctions sont utilises dans l’ensemble de la bibliothque et prsentent les caractristiques suivantes :
- fromSecretKey() : cre une paire de cls partir d’un tableau d’octets de cls secrtes brutes ;
- fromSeed() : gnre une paire de cls partir d’une squence de 32 octets ;
- createInstructionWithPublicKey() : cre une instruction ed25519 avec une cl prive ;
- createInstructionWithPrivateKey() : cre une instruction secp256k1 avec une cl prive.
Le code malveillant volera soit la cl secrte transmise ou gnre (les deux premires fonctions et le constructeur du compte), soit la cl prive transmise (les deux dernires 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 premire fois la fin du mois de novembre 2024 et qu’il tait hberg par Cloudflare.
Une fois que les acteurs de la menace ont accs ces cls, ils peuvent les charger dans leurs propres portefeuilles et drainer distance toutes les cryptomonnaies et tous les NFT stocks. L’outil d’analyse en temps rel pour l’cosystme Solana indique que plusieurs cryptomonnaies ont t voles.
Socket indique que l’attaque a t trace jusqu’ l’adresse Solana FnvLGtucz4E1ppJHRTev6Qv4X7g8Pw6WPStHCcbAKbfx , qui contient actuellement 674,86 Solana et des quantits 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 estime de ce butin est de 184 000 $. Les personnes dont les portefeuilles ont t compromis lors de cette attaque doivent immdiatement transfrer les fonds restants vers un nouveau portefeuille et cesser d’utiliser l’ancien, car les cls prives sont dsormais compromises.
Les cryptomonnaies : une cible frquente de la chane d’approvisionnement
Le code et l’infrastructure lis aux cryptomonnaies, dont la blockchain Solana, sont frquemment la cible de cyberattaques sophistiques. En aot 2024, Sonatype, une socit qui analyse la chane 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 leaking https://t.co/yPGV7m9YnP
— mert | helius.dev (@0xMert_) December 3, 2024
Dans le cadre de cette attaque de la chane d’approvisionnement des logiciels, un acteur de la menace a publi un projet malveillant solana-py sur PyPI, reproduisant le code du paquet lgitime solana , tout en ajoutant des fonctionnalits malveillantes pour voler des secrets.
Une autre campagne de la chane d’approvisionnement axe sur les cryptomonnaies a t signale en mars 2024. Le chercheur RL Karlo Zanki a expos BipClip, une campagne PyPI malveillante ciblant les dveloppeurs travaillant sur des projets lis la gnration et la scurisation de portefeuilles de cryptomonnaies.
Les attaquants cherchaient tromper les dveloppeurs souhaitant mettre en uvre la proposition d’amlioration du Bitcoin 39, ou BIP39, une liste de 2 048 mots faciles mmoriser utiliss pour gnrer une squence binaire qui cre des portefeuilles Bitcoin dterministes (ou HD Wallets ).
Cependant, la compromission de la bibliothque JavaScript lgitime @solana/web3.js est d’un ordre de grandeur suprieur celui des campagnes de typosquattage qui reposent sur l’erreur des dveloppeurs , a dclar 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 chane d’approvisionnement qui ciblent l’cosystme open source s’appuient sur des tactiques d’ingnierie sociale pour russir. Ces attaques ont un rayon d’action minuscule, n’affectant que quelques dveloppeurs avant d’tre dcouvertes et neutralises.
Tomislav Peričin a dclar que la compromission de @solana/web3.js est bien plus qu’un nime paquet malveillant trouv dans npm. La compromission d’une bibliothque de confiance et largement utilise comme @solana/web3.js est beaucoup plus dvastatrice pour la communaut , a-t-il soulign.
Sources : Socket, Solana, la bibliothque @solana/web3.js
Et vous ?
Quel est votre avis sur le sujet ?
Que pensez-vous de cette nouvelle attaque visant la chane d’approvisionnement des logiciels ?
Voir aussi