L'ultima ricerca di ESET mostra fino a che punto possono spingersi dei criminali per rubare Bitcoin ai clienti di uno specifico servizio di scambio di valuta virtuale.
Il 3 novembre, gli hacker hanno violato con successo
StatCounter, una delle principali piattaforme di analisi Web. Questo servizio è utilizzato da molti webmaster per raccogliere statistiche sui loro visitatori – un servizio molto simile a Google Analytics. Per fare ciò, i webmaster di solito aggiungono un tag JavaScript esterno che incorpora una parte di codice da StatCounter – www.statcounter [.] com / counter / counter.js – in ogni pagina Web. Pertanto, compromettendo la piattaforma StatCounter, i criminali possono inserire il codice JavaScript in tutti i siti Web che utilizzano StatCounter. Secondo i dati della stessa azienda, StatCounter è utilizzato da oltre di 2 milioni di siti e calcola statistiche per oltre 10 miliardi di pagine visitate al mese. Questa informazione è in linea con il punteggio riportato da Alexa che è di poco superiore a 5000. Per fare un confronto, Alexa assegna al sito ufficiale della distribuzione Debian Linux, debian.org, un rank molto simile.
I criminali hanno modificato lo script in www.statcounter [.] com / contatore / counter.js aggiungendo del codice malevolo, identificato come "prettified" proprio nel mezzo dello script. Ciò è inusuale poichè solitamente gli hacker lo aggiungono all'inizio o alla fine di un file legittimo. Il codice iniettato nel mezzo di uno script esistente è in genere più difficile da rilevare.
Lo script è compresso con il packer di Dean Edwards, che è probabilmente il packer JavaScript più popolare. Tuttavia, può essere facilmente decompresso, rendendolo così possibile da eseguire come mostrato di seguito.
Questa porzione di codice verificherà innanzitutto se l'URL contiene myaccount / withdraw / BTC . Quindi, è possibile già supporre che l'obiettivo dei criminali sia quello di raggiungere una piattaforma Bitcoin. Se il controllo passa, lo script continua ad aggiungere un nuovo elemento script alla pagina Web e a incorporare il codice in https: //www.statconuter [.] com / c.php.
Da notare che gli hacker hanno registrato un dominio molto simile a quello legittimo di StatCounter, statcounter [.] com, semplicemente cambiando due lettere, che possono essere difficili da rilevare quando si controllano i registri alla ricerca di attività insolite. È interessante notare che, controllando il DNS passivo del dominio, questo era già stato sospeso nel 2010 per abuso.
Come spiegato sopra, lo script punta a uno specifico indirizzo URL (Uniform Resource Identifier): myaccount / withdraw / BTC. I ricercatori di ESET hanno inoltre scoperto che tra i diversi servizi di scambio in tempo reale di criptovaluta, attualmente solo gate.io ha una pagina valida con questo URL, pertanto questo servizio di scambio sembra essere l'obiettivo principale dell'attacco. Questa piattaforma è piuttosto popolare, considerando che viene classificata da Alexa con un punteggio di 26251.
Inoltre, secondo coinmarketcap.com ogni giorno su questo servizio transitano diversi milioni di dollari e questo lo rende particolarmente appetibile per i criminali che intendono rubare criptovaluta su larga scala.
La pagina Web https: //www.gate [.] Io / myaccount / withdraw / viene utilizzata per trasferire Bitcoin da un account gate.io a un indirizzo Bitcoin esterno.
Non sorprenderà quindi scoprire che la payload della seconda fase, da statconuter [.] com / c.php , è stata progettata per rubare Bitcoin. In quest'ottica ha senso iniettare lo script nella pagina Web gate.io Bitcoin transfer.
Nella vera pagina di gate.io, esiste già una funzione doSubmit , chiamata quando l'utente fa clic sul pulsante di invio, ma qui in questo attacco gli hacker lo hanno appositamente ridefinito.
Lo script sostituisce automaticamente l'indirizzo Bitcoin di destinazione con uno appartenente ai criminali, ad esempio 1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad. Il server malevolo genera un nuovo indirizzo Bitcoin ogni volta che un visitatore carica lo script statconuter [.] com / c.php, ciò rende molto difficile capire quanta valuta sia stata effettivamente trasferita sui conti dei malfattori.
A seconda che la vittima abbia o meno una disponibilità di prelievo superiore ai 10 BTC al giorno, i criminali punteranno a consumarla completamente o raggiungeranno il limite giornaliero. Nell' account di prova utilizzato da ESET, la soglia di prelievo era impostata in maniera predefinita su 100 BTC. Nell'ultima fase dell'attacco, lo script dannoso carica un modulo che esegue il trasferimento dall'account della vittima al portafoglio dei criminali.
Tutto il processo di reindirizzamento risulta molto probabilmente impercettibile per le vittime, poiché la sostituzione viene eseguita dopo aver fatto clic sul pulsante di invio e il trasferimento accadrà molto rapidamente e il processo non verrà nemmeno visualizzato.
La generazione automatica di nuovi indirizzi per il passaggio dei Bitcoin non ha permesso di raccogliere dati sulla quantità di criptovaluta finora raccolta dagli hacker, per esempio controllando l'indirizzo ricevuto sulla macchina di prova utilizzata da ESET, il saldo è di 0 BTC.
Conclusione
Anche se non si conosce l'ammontare dei Bitcoin rubati, questo attacco dimostra quanto impegno i criminali stiano profondendo per colpire gli scambi di criptovaluta. Ad esempio, in questo caso, per raggiungere il loro obiettivo hanno compromesso il sito Web di un servizio di analisi utilizzato da oltre due milioni di altri siti Web, tra cui alcuni legati ad agenzie governative, per rubare Bitcoin dai clienti di un solo sito Web per lo scambio di criptovaluta.
Dimostra inoltre che un sito Web, anche aggiornato e adeguatamente protetto, rimane comunque vulnerabile al link di una risorsa esterna. Questo ricorda come un codice JavaScript esterno sia sotto il controllo di una terza parte e possa essere modificato in qualsiasi momento senza preavviso.
Indirizzi URL pericolosi
- statcounter[.]com/counter/counter.js
- statconuter[.]com/c.php
Per ulteriori informazioni su ESET è possibile visitare il sito www.eset.it