Botnet sfrutta la blockchain nascondendo l'IP del suo server: ecco la nuova frontiera dei cybercriminali

Botnet sfrutta la blockchain nascondendo l'IP del suo server: ecco la nuova frontiera dei cybercriminali

Per occultare l'indirizzo IP di un server command and control di backup gli operatori di una botnet hanno ingegnosamente sfruttato la blockchain di Bitcoin

di pubblicata il , alle 16:41 nel canale Sicurezza
Akamai
 

Akamai ha pubblicato gli esiti di una ricerca che evidenzia come l'uso della tecnologia blockchain (nello specifico, quella di Bitcoin) possa consentire di nascondere gli indirizzi IP dei server command and control di backup di una botnet.

Le botnet, veri e propri "eserciti" di migliaia di sistemi infettati da appositi malware allo scopo di eseguire azioni di massa come attacchi DDos, campagne di infezione e quant'altro, sono coordinate da un server di command and control (o C2). Normalmente le azioni delle forze dell'ordine e dei ricercatori di sicurezza volte a mettere fuori gioco una botnet si concentrano proprio sull'individuazione del server C2 per sequestrarlo e dismetterlo o per sfruttarlo in maniera tale da eradicare il malware sulle macchine infette.

Botnet con server di controllo ridondanti: più difficili da mettere KO

Gli operatori di botnet pongono quindi particolare attenzione ad occultare le azioni del server principale. In una botnet infatti le singole macchine infette comunicano periodicamente con il server C2 per verificare eventuali comandi o aggiornamenti del malware. Di norma le comunicazioni vengono occultate in qualche maniera, così che sia difficoltoso risalire all'IP del server C2. In ogni caso gli attaccanti si avvalgono della possibilità di utilizzare server di backup, in maniera tale che la botnet possa continuare ad operare anche nel caso in cui il server principale risultasse compromesso. In tal caso l'azione di neutralizzazione è più complicata poiché è necessario individuare anche questo secondo server.

Nella specifica campagna di infezione studiata dai ricercatori di Akamai (campagna che, senza dettagliare troppo, ha lo scopo di creare una botnet per il mining distribuito di Monero) gli operatori della botnet hanno ideato un metodo molto particolare per mettere l'indirizzo IP del server di backup al riparo da "occhi indiscreti"

Nascondere l'IP di un server botnet in due transazioni Bitcoin

I ricercatori hanno scoperto ciò quando alla fine di dicembre 2020 hanno individuato la presenza di un indirizzo di un wallet Bitcoin all'interno delle versioni più recenti del malware utilizzato per diffondere l'infezione. Assieme all'indirizzo del wallet i ricercatori hanno trovato anche un URL che punta ad un'API di controllo blockchain. Dopo qualche indagine i ricercatori sono riusciti a capire che questi due elementi erano coinvolti nel calcolo di un indirizzo IP, derivato dalle transazioni del wallet.

Perché sia possibile convertire le transazioni Bitcoin in un indirizzo IP gli operatori di questa botnet hanno ideato uno script che va a verificare le più recenti transazioni del wallet. Ciò è possibile effettuando una richiesta HTTP ad una API di blockchain explorer che restituisca le ultime due transazioni dell'indirizzo del wallet desiderato. Una volta conosciuti i valori delle ultime due transazioni, il meccanismo li converte nell'indirizzo IP del server C2 di backup. Anzitutto, piccola premessa: un indirizzo IPv4 è un numero a 32 bit organizzato in quattro ottetti separati da un punto (XXX.XXX.XXX.XXX).

Lo script prende il valore in Satoshi (la più piccola unità indivisibile di bitcoin) della transazione più recente e lo converte dapprima in esadecimale. La rappresentazione esadecimale viene quindi scissa nei due byte che la compongono e ciascuno di essi viene riconvertito in intero per ottenere gli ultimi due ottetti dell'indirizzo IP desiderato. La stessa operazione viene effettuata con la transazione immediatamente precedente a quella più recente così da recuperare i primi due ottetti. L'indirizzo IP risultante da questo ingegnoso meccanismo funziona da elemento di backup nell'infrastruttura della botnet.

Lo script ideato dagli operatori della botnet viene eseguito ogni 30 minuti sulle macchine infette per testare il collegamento con il server C2 principale. Solamente nel caso in cui il server non risulta raggiungibile ecco che scatta il meccanismo di recupero dell'IP di backup per poter ripristinare il collegamento tra il nuovo server C2 e i sistemi "orfani" del server C2 principale.

Una tecnica con punti deboli, ma pericolosa e preoccupante

E' probabile che gli operatori della botnet, per offuscare le proprie tracce e possibili elementi che riconducano alla loro identità, usino un wallet pubblico (e non direttamente controllato) facente parte di un servizio di coinjoin/tumbling (tecniche per ispessire la barriera di anonimato, usate anche a scopo riciclaggio di denaro) dove convergono numerose altre transazioni. Proprio questa particolarità però può rappresentare il punto debole della tecnica. Dal momento che il meccanismo sfrutta le ultime due transazioni di un portafoglio a cui chiunque può inviare fondi, diventa possibile "disturbare" il recupero dell'indirizzo IP inviando transazioni così da generare indirizzi IP non validi.

Basta inviare un singolo satoshi al wallet perché il sistema generi un indirizzo IP alterato e quindi non valido, il quale verrà riconosciuto come un tentativo di risolvere un nome di dominio a sua volta non valido tagliando così le gambe a ogni tentativo per recuperare i payload dell'infezione. L'azione di disturbo potrebbe essere facilmente neutralizzata dagli operatori con l'invio di due nuove transazioni "corrette", che permettano cioè di generare il corretto indirizzo IP del server C2 di backup, ma in questo caso l'operazione diventa economicamente svantaggiosa per gli operatori. Vediamo perché.

Akamai sottolinea che, trascurando le commissioni, il costo di una transazione "di interruzione" di un satoshi è pari a circa 0,0004 dollari (considerando il valore di BTC nel momento in cui è stata condotta la ricerca). In altri termini, investendo 1 dollaro si possono generare circa 2500 transazioni "di interruzione". L'indirizzo IP attuale che Akamai è riuscita ad identificare e che è stato mostrato nell'immagine sopra, 209.141.45.27, richiede come abbiamo visto due transazioni specifiche da 6957 satoshi e 36305 satoshi, per un controvalore complessivo di circa 16,50 dollari. Ciò significa che per ogni dollaro speso per generare transazioni di interruzione, gli operatori della botnet ne dovrebbero spendere oltre 41 mila (16,50 x 2500) per riuscire a neutralizzare le interruzioni. Si tratta di prezzi che ovviamente variano al variare del valore di bitcoin e sulla base dell'IP da codificare, ma i costi saranno sempre asimmetrici e a favore dell'azione di interruzione e disturbo.

Ma c'è di più: la conoscenza di questa tecnica (a patto che, ovviamente, non venga modificata in qualche modo) può consentire di codifcare, in due transazioni da inviare al wallet, l'indirizzo IP di un nuovo server C2 controllato dai "buoni" a scopo di smantellamento della botnet. In questo modo le macchine infette appartenenti alla botnet risponderebbero al nuovo server tramite il quale diventerebbe possibile eradicare l'infezione.

Nel caso specifico di questa infezione, però, l'azione di neutralizzazione della botnet può essere condotta in maniera più semplice. Il meccanismo di recupero dell'IP di backup che abbiamo visto sopra viene innescato solamente se il server C2 primario non risulta arggiungibile o se restituisce un codice HTTP di stato diverso da 200 o 405. Per evitare l'innesco del sistema di recupero del server C2 di backup è sufficiente che, contemporaneamente alla eventuale azione di messa fuori gioco del server primario, si disponga una risposta di codice HTTP 200 per tutte le richieste di connessione in ingresso. In questo modo si disinnesca il meccanismo di recupero dell'IP di backup.

A prescindere dai punti deboli che i ricercatori Akamai sono riusciti ad individuare in questa specifica campagna, l'aspetto che desta preoccupazione è il fatto che i principi di base della tecnica possono avere implicazioni piuttosto gravi nella lotta alle botnet, rendendo più difficile e complicata la loro neutralizzazione. La peculiarità di questa tecnica è la capacità di recuperare le informazioni e i parametri necessari da un'origine decentralizzata e non censurabile, che sono poi le caratteristiche fondamentali di una blockchain. Partendo da questa base e perfezionandone alcuni aspetti sarebbe possibile mettere in piedi un meccanismo capace di occultare più efficacemente gli indirizzi IP dei server C2, ostacolando in maniera significativa qualsiasi azione di individuazione, sequestro di domini e presa di controllo sei server.

15 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - info
Gringo [ITF]25 Febbraio 2021, 17:26 #1
.....ops...
ma la Blockchain non doveva cambiare il mondo....
........... ma in peggio alla fine fatti 4 conti.

Axios200625 Febbraio 2021, 17:31 #2
Com'era? Cryptovalute e Blockchain sono un progresso? Si. Per hacker, terroristi, ricattatori e evasori fiscali.
biffuz25 Febbraio 2021, 18:10 #3
Ora, se io facessi un virus che usa la stessa tecnica, potrei semplicemente aspettare che qualcuno mi mandi soldi
daitarn_325 Febbraio 2021, 21:30 #4
Il progresso: adesso i ladri devono entrare in casa e scardinare la cassaforte, tra poco forzeranno il tuo wallet bitcoin direttamente da casa loro on line comodamente sul divano.
SpyroTSK26 Febbraio 2021, 09:36 #5
Quanta ignoranza...


prima che vi offendiate:
L'ignoranza è la condizione che qualifica l'ignorante, colui che ha trascurato la conoscenza di determinate cose che si potrebbero o dovrebbero sapere.
https://it.wikipedia.org/wiki/Ignoranza
SpyroTSK26 Febbraio 2021, 09:38 #6
Originariamente inviato da: Axios2006
Com'era? Cryptovalute e Blockchain sono un progresso? Si. Per hacker, terroristi, ricattatori e evasori fiscali.


Tutti quelli che hai elencato usano anche le valute reali, quindi siamo tutti hacker, terroristi, ricattatori ed evasori fiscali?
Sandro kensan26 Febbraio 2021, 13:18 #7
La peculiarità di questa tecnica è la capacità di recuperare le informazioni e i parametri necessari da un'origine decentralizzata e non censurabile, che sono poi le caratteristiche fondamentali di una blockchain. Partendo da questa base e perfezionandone alcuni aspetti sarebbe possibile mettere in piedi un meccanismo capace di occultare più efficacemente gli indirizzi IP dei server C2, ostacolando in maniera significativa qualsiasi azione di individuazione, sequestro di domini e presa di controllo sei server.


Molto interessante come tecnica. Mi pare di averla compresa bene. Suggerirei ai malfattori di aggirare i punti deboli segnalati nell'articolo con una firma elettronica dell'IP inviato nei due wallet. Per esempio si potrebbe inviare nella prima transazione i primi due byte dell'IP, nella seconda i secondi due byte dell'IP e a seguire la firma elettronicatramite la crittografia asimmetrica:

Signatures

The process of signing a message entails that you generate a hash that is based on your private key. As you know, hashing is a one-way process, so there’s no way to derive the private key from this hash. However, it is possible to verify whether this hash is accurate if you have the public key of the signer. A digital signature scheme typically consists of 3 algorithms:

A key generation algorithm that selects a private key uniformly at random from a set of possible private keys. The algorithm outputs the private key and a corresponding public key.
A signing algorithm that, given a message and a private key, produces a signature.
A signature verifying algorithm that, given the message, public key and signature, either accepts or rejects the message’s claim to authenticity.


Il malware ha dentro la chiave pubblica mentre il malfattore si tiene quella privata e firma con questa l'IP:

Hash( IP+Private_key )


EDIT:
Questo hash deve essere piuttosto corto per non incorrere in costi elevati. (ogni satoshi costa in questo momento 0.384 millesimi di euro), il malfattore potrebbe fissare a 38 euro la cifra dell'hash inviato al wallet potendo usare un hash di 100'000 (10'000-99'999). Il prezzo sarebbe di 3.8-38 euro più le commissioni, più gli altri invii dell'IP.

Mi viene in mente che con un hash breve sono possibili collisioni e quindi la Polizia potrebbe cercare delle collisioni con un IP valido e poi usare questo per controllare la botnet. Comunque il malvivente potrebbe mettere in blacklist la collisione trovata costringendo la Polizia a uno sforzo computazionale per trovare sempre nuove collisioni.

Se l'hash è abbastanza lungo le collisioni sono quasi impossibili da trovare, poi devono generare un IP valido e non un numero qualsiasi. Se poi l'algoritmo di hash è computazionalmente oneroso (sta al malvivente sceglierlo), generare collisioni diventa enormemente costoso.

EDIT:
non so bene come si faccia la rottura della firma elettronica, comunque suppongo che l'hash breve sia un punto di failure.

Spero che qualcuno mi paghi per questa mia idea.
kliffoth26 Febbraio 2021, 15:30 #8
Originariamente inviato da: SpyroTSK
Tutti quelli che hai elencato usano anche le valute reali, quindi siamo tutti hacker, terroristi, ricattatori ed evasori fiscali?


Cito e riadatto (cambio della persona dalla seconda plurale alla seconda singolare) da un post di un tizio poco sopra

[INDENT][INDENT][I]Quanta ignoranza...


prima che ti offenda:
L'ignoranza è la condizione che qualifica l'ignorante, colui che ha trascurato la conoscenza di determinate cose che si potrebbero o dovrebbero sapere.
https://it.wikipedia.org/wiki/Ignoranza[/I][/INDENT][/INDENT]


Hai usato male le regole del sillogismo.

Il tuo è un sillogismo paradossale del tipo: tutti gli assassini mangiano, io mangio, io sono un assassino

Controlla le regole del sillogismo
SpyroTSK26 Febbraio 2021, 15:45 #9
Originariamente inviato da: Sandro kensan
Molto interessante come tecnica. Mi pare di averla compresa bene. Suggerirei ai malfattori di aggirare i punti deboli segnalati nell'articolo con una firma elettronica dell'IP inviato nei due wallet. Per esempio si potrebbe inviare nella prima transazione i primi due byte dell'IP, nella seconda i secondi due byte dell'IP e a seguire la firma elettronicatramite la crittografia asimmetrica:



Il malware ha dentro la chiave pubblica mentre il malfattore si tiene quella privata e firma con questa l'IP:

Hash( IP+Private_key )


EDIT:
Questo hash deve essere piuttosto corto per non incorrere in costi elevati. (ogni satoshi costa in questo momento 0.384 millesimi di euro), il malfattore potrebbe fissare a 38 euro la cifra dell'hash inviato al wallet potendo usare un hash di 100'000 (10'000-99'999). Il prezzo sarebbe di 3.8-38 euro più le commissioni, più gli altri invii dell'IP.

Mi viene in mente che con un hash breve sono possibili collisioni e quindi la Polizia potrebbe cercare delle collisioni con un IP valido e poi usare questo per controllare la botnet. Comunque il malvivente potrebbe mettere in blacklist la collisione trovata costringendo la Polizia a uno sforzo computazionale per trovare sempre nuove collisioni.

Se l'hash è abbastanza lungo le collisioni sono quasi impossibili da trovare, poi devono generare un IP valido e non un numero qualsiasi. Se poi l'algoritmo di hash è computazionalmente oneroso (sta al malvivente sceglierlo), generare collisioni diventa enormemente costoso.

EDIT:
non so bene come si faccia la rottura della firma elettronica, comunque suppongo che l'hash breve sia un punto di failure.

Spero che qualcuno mi paghi per questa mia idea.

Pensandoci, pagando le fee (anche basse, tanto c'è tempo!) puoi scriverti un binario in blockchain, è abbastanza semplice:
1) Crei un nuovo wallet e punti al "Seme" in modo da visualizzare TUTTE le transizioni, anche dei wallet derivati.
2) Crei X transizioni da 8 cifre, ad esempio:
0.01000101
0.01111000
0.01100001
0.01101101
0.01110000
0.01101100
0.01100101
3) Poi prendi un software che analizza tutte le transizioni (in uscita o entrata) dei vari wallet e generi il file
SpyroTSK26 Febbraio 2021, 16:15 #10
Originariamente inviato da: kliffoth
Cito e riadatto (cambio della persona dalla seconda plurale alla seconda singolare) da un post di un tizio poco sopra

[INDENT][INDENT][I]Quanta ignoranza...


prima che ti offenda:
L'ignoranza è la condizione che qualifica l'ignorante, colui che ha trascurato la conoscenza di determinate cose che si potrebbero o dovrebbero sapere.
https://it.wikipedia.org/wiki/Ignoranza[/I][/INDENT][/INDENT]

Hai usato male le regole del sillogismo.

Il tuo è un sillogismo paradossale del tipo: tutti gli assassini mangiano, io mangio, io sono un assassino

Controlla le regole del sillogismo

Appunto, è voluto.
Se tu senti parlare male di BTC tutto il tempo, per te è il male assoluto, ma se tu senti parlare male dei soldi dici "E' un'eccezione perché io come altre 7 miliardi di persone li usiamo bene"....ma pensa di essere di un'altro pianeta dove i soldi non esistono, poi ascolta il telegiornale o leggi dei giornali, poi conta quante volte senti parlare bene della moneta reale

Solo perché non conoscete gente che usa BTC [U]LEGALMENTE[/U] e pensate che siano "il male assoluto" solo perché non lo conoscete o non volete usarlo, non è necessariamente vero che TUTTI quelli che usano BTC (me compreso) sono truffatori, evasori o quant'altro.

Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".

La discussione è consultabile anche qui, sul forum.
 
^