Le criptomonete esistono ormai da più di un decennio. Durante questo periodo, abbiamo osservato più di un centinaio di importanti tentativi di hackeraggi (andati a buon fine) rivolti a exchange di criptomonete e agli altri servizi collegati.
Molto spesso, i dettagli degli hackeraggi rimangono poco chiari. È facile capire chi è stato hackerato, quando è successo e quanto è stato rubato, ma il “come” rimane un’incognita. I giornalisti sono più interessati alle somme in questione e le aziende vittime sono restie a rivelarne i dettagli.
Riempiamo le lacune e parliamo un po’ di come funzionano questi hackeraggi di criptomonete, nella speranza di poter evitare che si ripetano.
Phishing e malware: hackeraggio standard degli exchange di criptomonete
I crypto-exchange immagazzinano le criptomonete e il denaro normale degli utenti in conti bancari convenzionali. Per i cybercriminali, è rischioso avere a che fare con il denaro comune; per farla franca con il bottino rubato, dovrebbero incassarlo rapidamente prima che la banca congeli i conti. Per questo di solito i i cybercriminali optano per le criptomonete.
Visto dall’esterno, i primi e forse unici fattori noti su un tipico hackeraggio di cryptomonete sono: (1) cosa è successo, e (2) che i soldi dei clienti sono spariti. Ma cosa accade veramente? Molto probabilmente, quanto segue: in primo luogo i cybercriminali hanno ottenuto l’elenco dei dipendenti, hanno studiato i loro interessi (anche sui social network) e hanno inviato e-mail di phishing mirate con payload dannosi a quelli ritenuti potenzialmente più ingenui. In questo modo, i cybercriminali sono entrati nella rete dell’exchange in questione.
In seguito, hanno imparato a muoversi all’interno dell’azienda: quante volte il contabile comunicava con il direttore, cosa si spedivano, l’architettura interna della rete, dove erano conservati i wallet di criptomonete e in che modo erano protetti. Questa fase può richiedere molto tempo, ma alla fine porta i cybercriminali alla dispositivo di un dipendente con accesso a sistemi importanti.
Se il sistema automatico dell’exchange è impostato per inviare criptomoneta, avere i permessi di operatore significa che i cybercriminali possono inviare dinero a se stessi. Un recente attacco all’exchange Binance si è svolto proprio in questo modo.
Incidente: Hackeraggio dell’exchange Binance
Data: 7 maggio 2019
Somma rubata: 40.000.000 $ (7.000 BTC)
Attacchi mirati: come proteggersi
Se avete un crypto-exchange, allora il vostro compito è quello di assicurarvi che il costo di un attacco superi il guadagno potenziale moltiplicato per la probabilità di successo. Per fare ciò dovrete mettere in pratica questi consigli per evitare di essere vittime di attacchi di criptomonete:
- Formare il personale su temi di sicurezza informatica (ad esempio, non devono aprire un curriculum in formato DOC);
- Utilizzare una soluzione di sicurezza per proteggersi dagli attacchi mirati, preferibilmente una soluzione che non solo protegga dalle minacce di ogni nodo specifico, ma che cerchi anche le anomalie in tutta l’azienda;
- Richiedete un pentest (durante il quale gli esperti di sicurezza cercano di penetrare e navigare all’interno del vostro sistema, indicandovi poi i punti deboli).
Doppia spesa: rapinare un bancomat di Bitcoin con un telefono
Un’altra maniera di rubare i bitcoin è emersa grazie ai bancomat. Le persone di solito usano i bancomat semplicemente per prelevare (o depositare) denaro dai loro conti bancari esistenti, ma con un bancomat di Bitcoin si può fare di più: comprare e vendere valuta criptata.
Per mettere in atto una truffa di bitcoin attraverso un bancomat, si potrebbe utilizzare i dispositivi per vendere bitcoin, ricevere un pagamento in contanti, e poi annullare le transazioni. Sembra troppo ovvio per funzionare, ma per esempio in pochissimo tempo, da 45 bancomat abilitati alla criptomoneta in Canada i ladri sono riusciti a rubare 200 mila dollari.
Come è potuto accadere? Come sapete, le informazioni nella blockchain sono immagazzinate in blocchi, da qui il nome. Una transazione come “Invio di 1 BTC a John” non viene immediatamente scritta sul blocco, prima viene messa in coda e viene creato un nuovo blocco circa una volta ogni 10 minuti. Qualsiasi transazione non confermata viene rimossa dalla coda dal creatore del blocco. Va notato che non c’è abbastanza spazio nel blocco per tutte le transazioni, per cui viene data priorità a quelle con commissioni più alte (trattuenuta dal creatore del blocco).
È difficile da credere, ma gli sviluppatori dei bancomat non hanno dato istruzioni di aspettare che le transazioni siano scritte nella blockchain prima di erogare contanti. La comodità dell’utente ha avuto la meglio sulla sicurezza.
Un altro piccolo dettaglio: inizialmente, Bitcoin non consentiva l’annullamento delle transazioni in coda, e spesso come conseguenza delle transazioni con piccole commissioni rimanevano nel sistema per diversi giorni prima di essere rimosse. Per risolvere questo problema, Bitcoin ha aggiunto un meccanismo di sostituzione di transazione (replace by fee), che permette di sostituire una transazione in attesa con un’altra, in genere per aumentare la commissione e per l’emissione. Ma questo meccanismo permette anche di cambiare il destinatario, reinviando i bitcoin al mittente.
Parlare di vulnerabilità non sarebbe appropriato. È stata pura incoscienza. Ed ecco a cosa ha portato:
Incidente: Hackeraggio di bancomat di Bitcoin
Datea Settembre 2018
Somma rubata: 200.000 $
Hackeraggio con doppia spesa: come proteggersi
Dopo il furto, l’azienda dei bancomat ha cambiato i suoi dispositivi per integrare un tempo di attesa. Ora, gli utenti devono tornare al bancomat per ricevere i loro contanti dopo aver depositato i loro bitcoin. È molto meno comodo, ma questo è l’unico modo per farlo correttamente considerando la dinamica della blockchain.
Col senno di poi è chiaro che per evitare una tale sciocca perdita di denaro, gli sviluppatori avrebbero dovuto ordinare una revisione della sicurezza delle applicazioni. Ciò comporta che esperti esterni esaminino l’architettura del vostro servizio, visualizzino il codice e vadano alla ricerca delle vulnerabilità.
L’attacco del 51%: dominare la blockchain alla perfezione
Probabilmente avete sentito l’assioma immutabile: “I dati nella blockchain non possono essere alterati”. Ma questa non è tutta la verità in alcuni casi. Per capire più in dettaglio come funzionano la blockchain e il mining, date un’occhiata ai nostri post “Blockchain, in parole semplici” e “In breve: mining di Bitcoin“.
Due principi garantiscono che la blockchain sia la stessa per tutti gli utenti. In primo luogo, tutti i partecipanti devono concordare chi sarà il creatore del prossimo blocco. La probabilità di essere il fortunato dipende dalle risorse investite, più potere di mining in possesso, maggiori sono le possibilità.
La seconda è la “regola della catena più lunga”, ovvero in caso di conflitto la versione valida della blockchain è quella più lunga. Se qualcuno falsifica la propria versione della blockchain e cerca di trasmetterla, tutti gli altri la rifiutano perché sono state spese meno risorse e quindi è più breve.
Ma la situazione cambia se il contraffattore utilizza più del 50% di tutto il potere del mining. Nel tempo necessario a tutti gli altri miner´di criptomonete per creare, ad esempio, nove blocchi, un utente dannoso potrebbe crearne dieci. In questo momento la versione contraffatta della blockchain diventa la più lunga, quindi tutti la accettano, e la storia finanziaria viene effettivamente alterata. Un utente che ha speso i bitcoin nella vecchia versione della blockchain pubblica riavrebbe indietro quei bitcoin sul proprio account nella blockchain falsificata.
Questo è esattamente quello che è successo al cryptoexchange Gate.io all’inizio del 2019. Un cybercriminale ha inviato la propria criptomoneta all’exchange (scrivendono nella blockchain pubblica), e nel frattempo si è messo a creare la propria blockchain. Quando l’exchange ha ricevuto il trasferimento e accreditato l’importo sul saldo del cybercriminale, quest’ultimo ha trasmesso la sua blockchain privata (che non conteneva tale transazione, consentendo il riacquisto della moneta criptata) e ha richiesto il ritiro del suo saldo dall’exchange. Di conseguenza, l’exchange di criptomonete ha perso denaro.
Ora vediamo perché questo non accade tutti i giorni, e quanta abilità informatica ha dovuto investire il cybercriminale.
Useremo i Bitcoin come esempio. I miner di criptomonete creano sei blocchi ogni ora. Per ogni blocco, viene emessa una ricompensa di 12,5 BTC. (Il 6 ottobre 2019, 75 BTC pari a 600.000 dollari.) Questo è all’incirca quanto costa affittare tutta la potenza mining dei Bitcoin per un’ora. Il sito Crypto51 mostra tali calcoli:
L’ultima colonna specifica quanta capacità è disponibile per l’affitto in questo momento. Come potete vedere, prendere possesso della blockchain Ethereum Classic, come ha fatto questo cybercriminale, costerebbe circa 10.000$ all’ora. Hanno avuto bisogno di quattro ore per ottenere 200.000$.
Si noti che questo non si tratta del primo attacco di questo tipo. Anche altre criptomonete hanno subito attacchi del 51%.
Incidente: Attacco ETC del 51% a Gate.io
Data: 7 gennaio 2019
Somma rubata: 200.000 $ (40.000 ETC)
Attacco del 51%: come proteggersi
In generale, la possibilità di riscrivere una blockchain e di incassare su un attacco del 51% è una caratteristica intrinseca di questatecnologia. Per rendere un attacco il più costoso possibile, gli exchange di criptomonete cercano di aspettare il più a lungo possibile prima di aggiornare il saldo dell’utente dopo una transazione. Questo perché più blocchi si creano da quando la transazione è entrata nella blockchain, è meno probabile che la blockchain venga riorganizzata e ripristinata. Ma il ritardo causa il grave inconveniente di trasferimenti che richiedono ore e ore per essere realizzati.
In ogni caso, avremo sicuramente a che fare di nuovo con questo tipo di attacco a exchange di criptomonete.
Furto della chiave segreta: controllo ortografico della passphrase
Per utilizzare la criptomoneta, è necessaria la chiave segreta. La chiave viene salvata nei wallet di criptomonete, il saldo dell’utente viene memorizzato nella blockchain.
Se si cambia wallet di criptomonete, è necessario copiare la chiave dal vecchio wallet a quello nuovo. Per comodità, la chiave consiste in una frase composta da 12 parole semplici, per esempio, witch collapse practice feed shame open despair creek road again ice least (in inglese).
Una volta, gli sviluppatori di un wallet di criptomonete hanno inviato per sbaglio questa frase per un controllo ortografico online, un errore che un inversore di criptomonete ha scoperto dopo aver subito un furto di 70 mila dollari. Dubitiamo che questo sia stato il motivo del furto, ma in ogni caso la storia fa riflettere.
Ciò è successo perché al giorno d’oggi le applicazioni non sono scritte da zero, ma piuttosto assemblate da componenti, compresi componenti di terzi. Così facevano gli sviluppatori di Coinomi. Per visualizzare il modulo di immissione della parola, hanno usato il componente jxBrowser. All’insaputa degli sviluppatori, questo componente controlla di default tutto il testo inserito nel modulo. E per non fare carico su dizionari per tutte le lingue conosciute nel mondo, esegue un controllo basato su cloud usando googleapis.com.
Per i moduli di input ordinari, questo può essere utile, ma per i campi che accettano password e frasi super segrete è terribilmente rischioso.
In loro difesa, gli sviluppatori del wallet di criptomonete hanno dichiarato che la frase veniva trasmessa solo a Google e in maniera cifrata, e Google rispondeva con un errore. Tuttavia, la vittima è sicura che questa vulnerabilità sia stata la causa del furto.
Incidente: Vulnerabilità nell’autenticazione del Wallet di Conomi
Data: 22 febbraio 2019
Somma rubata: 70.000 $
Furto della chiave segreta: come proteggersi
Da un lato, la causa del problema è stata una semplice distrazione. Il correttore ortografico del componente era stata registrate e le istruzioni spiegavano come disattivarlo. Sicuramente una prova convenzionale non avrebbe rilevato il problema, però una revisione di sicurezza del wallet di criptomonete sì.
Dall’altro lato, il problema è più grave. L’uso di librerie di terzi facilita l’insorgenza di problemi, adesso e nel futuro (se i loro aggiornamenti le rendono vulnerabili), oltre al rischio di attacchi alla supply chain. In un attacco alla supply chain, un cybercriminale non ha necessità di hackerare gli strumenti dello sviluppatore, devo solo irrompere in quelli di un contractor, che spesso non sono ben protetti e non sono coscienti dell’importanza dei progetti nei quali si utilizza il loro codice.
A volte si pensa all’incoscienza dei responsabili e altre volte si prova tenerezza per loro, per quanto siano indifesi.