Una volta salutati come inattaccabili, i blockchain ora vengono hackerati

Un blocco aperto che rivela monete digitali all

Un blocco aperto che rivela monete digitali all'interno La signora Tech





All'inizio del mese scorso, il team di sicurezza di Coinbase ha notato qualcosa di strano in Ethereum Classic, una delle criptovalute che le persone possono acquistare e vendere utilizzando la popolare piattaforma di scambio di Coinbase. La sua blockchain, la storia di tutte le sue transazioni, era sotto attacco.

Un utente malintenzionato aveva in qualche modo acquisito il controllo di più della metà della potenza di calcolo della rete e la stava utilizzando per riscrivere la cronologia delle transazioni. Ciò ha permesso di spendere la stessa criptovaluta più di una volta, nota come doppia spesa. L'attaccante è stato avvistato mentre lo faceva per un importo di 1,1 milioni di dollari. Coinbase afferma che nessuna valuta è stata effettivamente rubata da nessuno dei suoi account. Ma un secondo scambio popolare, Gate.io, ha ammesso non è stato così fortunato, perdendo circa $ 200.000 contro l'attaccante (che, stranamente, ne ha restituito la metà giorni dopo).

Solo un anno fa, questo scenario da incubo era per lo più teorico. Ma il cosiddetto attacco del 51% contro Ethereum Classic è stato solo l'ultimo di una serie di recenti attacchi alle blockchain che hanno alzato la posta in gioco per il nascente settore.



In totale, gli hacker hanno rubato quasi 2 miliardi di dollari di criptovaluta dall'inizio del 2017, principalmente dagli scambi, e questo è solo ciò che è stato rivelato pubblicamente. Questi non sono nemmeno solo opportunisti attaccanti solitari. Ora lo stanno facendo anche sofisticate organizzazioni di criminalità informatica: la società di analisi Chainalysis ha recentemente affermato che solo due gruppi, entrambi apparentemente ancora attivi, potrebbero aver rubato un totale di $ 1 miliardo dagli scambi.

Non dovremmo essere sorpresi. Le blockchain sono particolarmente attraenti per i ladri perché le transazioni fraudolente non possono essere annullate come spesso accade nel sistema finanziario tradizionale. Oltre a ciò, sappiamo da tempo che, proprio come le blockchain hanno caratteristiche di sicurezza uniche, hanno vulnerabilità uniche. Slogan di marketing e titoli che definivano la tecnologia inattaccabile erano completamente sbagliati.

Questo è stato compreso, almeno in teoria, da quando Bitcoin è emerso un decennio fa. Ma l'anno scorso, nel mezzo di un'esplosione cambriana di nuovi progetti di criptovaluta, abbiamo iniziato a vedere cosa significa in pratica e cosa potrebbero significare queste debolezze intrinseche per il futuro delle blockchain e delle risorse digitali.



Come si hackera una blockchain?

Prima di andare oltre, chiariamo alcuni termini.

A blockchain è un database crittografico gestito da una rete di computer, ognuno dei quali conserva una copia della versione più aggiornata. Una blockchain protocollo è un insieme di regole che determinano come vengono chiamati i computer nella rete nodi , dovrebbe verificare le nuove transazioni e aggiungerle al database. Il protocollo utilizza crittografia, teoria dei giochi ed economia per creare incentivi affinché i nodi lavorino per proteggere la rete invece di attaccarla per guadagno personale. Se impostato correttamente, questo sistema può rendere estremamente difficile e costoso aggiungere transazioni false ma relativamente facile verificarne di valide.



Questo è ciò che ha reso la tecnologia così attraente per molti settori, a cominciare dalla finanza. Presto i servizi di grandi istituzioni come Fidelity Investments e Intercontinental Exchange, il proprietario della Borsa di New York, inizieranno a incastrare blockchain nel sistema finanziario esistente. Anche le banche centrali stanno ora valutando di utilizzarli per nuove forme digitali di valuta nazionale.

Ma più complesso è un sistema blockchain, più modi ci sono per commettere errori durante la configurazione. All'inizio di questo mese, la società responsabile di Zcash, una criptovaluta che utilizza calcoli estremamente complicati per consentire agli utenti di effettuare transazioni in privato, ha rivelato di aver segretamente risolto un problema sottile difetto crittografico accidentalmente inserito nel protocollo. Un attaccante avrebbe potuto sfruttarlo per creare Zcash contraffatti illimitati. Fortunatamente, nessuno sembra averlo effettivamente fatto.

Il protocollo non è l'unica cosa che deve essere sicura. Per fare trading di criptovaluta da solo o eseguire un nodo, devi eseguire un software cliente , che può anche contenere vulnerabilità. A settembre, gli sviluppatori del client principale di Bitcoin, chiamato Bitcoin Core, hanno dovuto affrettarsi per correggere un bug ( anche in segreto ) che avrebbe potuto consentire agli aggressori di coniare più bitcoin di quanto il sistema dovrebbe consentire.



Tuttavia, la maggior parte dei recenti hack che hanno catturato i titoli non erano attacchi alle blockchain stesse, ma su scambi , i siti Web in cui le persone possono acquistare, scambiare e detenere criptovalute. E molte di queste rapine potrebbero essere attribuite a cattive pratiche di sicurezza di base. La situazione è cambiata a gennaio con l'attacco del 51% contro Ethereum Classic.

La regola del 51%.

La suscettibilità agli attacchi del 51% è inerente alla maggior parte delle criptovalute. Questo perché la maggior parte si basa su blockchain che utilizzano prova di lavoro come loro protocollo per la verifica delle transazioni. In questo processo, noto anche come estrazione , i nodi spendono enormi quantità di potenza di calcolo per dimostrarsi sufficientemente affidabili da aggiungere informazioni sulle nuove transazioni al database. Un minatore che in qualche modo ottiene il controllo della maggior parte della potenza di mining della rete può frodare altri utenti inviando loro pagamenti e quindi creando una versione alternativa della blockchain in cui i pagamenti non sono mai avvenuti. Questa nuova versione si chiama a forchetta . L'attaccante, che controlla la maggior parte della potenza mineraria, può fare del fork la versione autorevole della catena e procedere a spendere nuovamente la stessa criptovaluta.

Per le blockchain popolari, è probabile che tentare questo tipo di rapina sia estremamente costoso. Secondo il sito web Cripto51 , affittare abbastanza potenza mineraria per attaccare Bitcoin costerebbe attualmente più di $ 260.000 l'ora. Ma diventa molto più economico rapidamente man mano che scorri l'elenco delle oltre 1.500 criptovalute disponibili. Il crollo dei prezzi delle monete lo rende ancora meno costoso, poiché inducono i minatori a spegnere le loro macchine, lasciando le reti con meno protezione.

Verso la metà del 2018, gli aggressori hanno iniziato a lanciare attacchi del 51% su una serie di monete relativamente piccole e leggermente scambiate tra cui Verge, Monacoin e Bitcoin Gold, rubando un totale stimato di $ 20 milioni. In autunno, gli hacker hanno rubato circa $ 100.000 utilizzando una serie di attacchi su una valuta chiamata Vertcoin. Il colpo contro Ethereum Classic, che ha incassato più di $ 1 milione, è stato il primo contro una delle prime 20 valute.

David Vorick, cofondatore della piattaforma di archiviazione di file basata su blockchain Sia, lo prevede Il 51% degli attacchi continuerà a crescere in frequenza e gravità e gli scambi subiranno il peso maggiore dei danni causati dalle doppie spese. Una cosa che ha guidato questa tendenza, dice, è stata l'ascesa dei cosiddetti mercati di hashrate, che gli aggressori possono utilizzare per affittare potenza di calcolo per gli attacchi. Alla fine, gli scambi dovranno essere molto più restrittivi nella selezione delle criptovalute da supportare, ha scritto Vorick dopo l'hacking di Ethereum Classic.

Una lattina completamente nuova di insetti

A parte il 51% di attacchi, c'è un livello completamente nuovo di debolezze della sicurezza blockchain le cui implicazioni i ricercatori stanno appena iniziando a esplorare: bug degli smart contract. Per coincidenza, Ethereum Classic, in particolare la storia dietro la sua origine, è anche un buon punto di partenza per comprenderli.

A contratto intelligente è un programma per computer che gira su una rete blockchain. Può essere utilizzato per automatizzare il movimento della criptovaluta secondo regole e condizioni prescritte. Questo ha molti potenziali usi, come facilitare contratti legali reali o complicate transazioni finanziarie. Un altro uso, il caso di interesse in questo caso, è creare un meccanismo di voto mediante il quale tutti gli investitori in un fondo di capitale di rischio possono decidere collettivamente come allocare il denaro.

Proprio un tale fondo, chiamato Decentralized Autonomous Organization (DAO), è stato istituito nel 2016 utilizzando il sistema blockchain chiamato Ethereum. Poco dopo, un aggressore ha rubato più di 60 milioni di dollari di criptovaluta sfruttando un difetto imprevisto in uno smart contract che governava il DAO. In sostanza, la falla ha permesso all'hacker di continuare a richiedere denaro dai conti senza che il sistema registrasse che il denaro era già stato prelevato.

Come illustrato dall'hack, un bug in uno smart contract può creare una sorta di emergenza unica. Nel software tradizionale, un bug può essere corretto con una patch. Nel mondo blockchain, non è così semplice. Poiché le transazioni su una blockchain non possono essere annullate, implementare uno smart contract è un po' come lanciare un razzo, afferma Petar Tsankov, ricercatore presso l'ETH di Zurigo e cofondatore di una startup di sicurezza smart contract chiamata Catena di sicurezza . Il software non può commettere errori.

Ci sono soluzioni, di una specie. Sebbene non possano essere riparati, alcuni contratti possono essere aggiornati implementando contratti intelligenti aggiuntivi per interagire con essi. Gli sviluppatori possono anche creare kill switch centralizzati in una rete per interrompere tutte le attività una volta rilevato un hack. Ma per gli utenti il ​​cui denaro è già stato rubato, sarà troppo tardi.

L'unico modo per recuperare il denaro è, in effetti, riscrivere la cronologia: tornare al punto sulla blockchain prima che si verificasse l'attacco, creare un fork per una nuova blockchain e fare in modo che tutti nella rete accettino di utilizzare quella invece. Questo è ciò che gli sviluppatori di Ethereum hanno scelto di fare. La maggior parte, ma non tutta, della community è passata alla nuova catena, che ora conosciamo come Ethereum. Un gruppo più piccolo di resistenze rimase con la catena originale, che divenne Ethereum Classic.

Il mese scorso, il team di Tsankov presso ChainSecurity ha salvato Ethereum da una possibile ripetizione della catastrofe DAO. Solo un giorno prima di un importante aggiornamento software pianificato, la società ha detto agli sviluppatori principali di Ethereum che avrebbe avuto la conseguenza non intenzionale di lasciare alcuni contratti sulla blockchain nuovamente vulnerabili allo stesso tipo di bug che ha portato all'hacking DAO. Gli sviluppatori hanno prontamente posticipato l'aggiornamento e lo daranno un'altra volta alla fine di questo mese.

Tuttavia, secondo Victor Fang, cofondatore e CEO della società di sicurezza blockchain AnChain.ai, centinaia di preziosi smart contract di Ethereum erano già vulnerabili a questo cosiddetto bug di rientro. Decine di migliaia di contratti potrebbero contenere qualche altro tipo di vulnerabilità, secondo una ricerca condotta lo scorso anno. E la natura stessa delle blockchain pubbliche significa che se esiste un bug di smart contract, gli hacker lo troveranno, poiché il codice sorgente è spesso visibile sulla blockchain. Questo è molto diverso dalla sicurezza informatica tradizionale, afferma Fang, che in precedenza ha lavorato per l'azienda di sicurezza informatica FireEye.

I contratti buggy, in particolare quelli che detengono migliaia o milioni di dollari, hanno attratto hacker tanto avanzati quanto quelli che attaccano banche o governi. Ad agosto, AnChain ha identificato cinque indirizzi Ethereum dietro un attacco estremamente sofisticato che ha sfruttato un difetto contrattuale in un popolare gioco d'azzardo per rubare $ 4 milioni.

Gli hacker possono essere sconfitti?

AnChain.ai è una delle numerose startup recenti create per affrontare la minaccia dell'hacking blockchain. Utilizza l'intelligenza artificiale per monitorare le transazioni e rilevare attività sospette e può scansionare il codice di smart-contract per rilevare vulnerabilità note.

Altre società, tra cui ChainSecurity di Tsankov, stanno sviluppando servizi di auditing basati su una tecnica informatica consolidata chiamata verifica formale. L'obiettivo è dimostrare matematicamente che il codice di un contratto farà effettivamente ciò che i suoi creatori intendevano. Questi strumenti di auditing, che hanno iniziato a emergere nell'ultimo anno circa, hanno consentito ai creatori di contratti intelligenti di eliminare molti dei bug che erano stati frutti di bassa qualità, afferma Tsankov. Ma il processo può essere costoso e richiedere molto tempo.

Potrebbe anche essere possibile utilizzare contratti intelligenti aggiuntivi per impostare ricompense di bug basate su blockchain. Questi incoraggerebbero le persone a segnalare i difetti in cambio di una ricompensa in criptovaluta, afferma Filippo Daiano , ricercatore presso l'Iniziativa per le criptovalute e i contratti della Cornell University.

Ma assicurarsi che il codice sia pulito andrà solo così lontano. Una blockchain, dopotutto, è un sistema economico complesso che dipende dal comportamento imprevedibile degli umani e le persone cercheranno sempre nuovi modi per giocarci. Daian e i suoi colleghi hanno mostrato come gli aggressori abbiano già capito come trarre profitto dai popolari smart contract di Ethereum , ad esempio.

In breve, mentre la tecnologia blockchain è stata a lungo propagandata per la sua sicurezza, in determinate condizioni può essere piuttosto vulnerabile. A volte può essere attribuita la colpa a un'esecuzione scadente o a bug software non intenzionali. Altre volte è più un'area grigia, il complicato risultato delle interazioni tra il codice, l'economia della blockchain e l'avidità umana. Questo è noto in teoria sin dall'inizio della tecnologia. Ora che ci sono così tanti blockchain nel mondo, stiamo imparando cosa significa effettivamente, spesso nel modo più difficile.

nascondere