venerdì 8 marzo 2019

Una volta salutato come inattaccabile, i blockchain ora vengono violati

Sa Defenza 

Sempre più buchi di sicurezza appaiono nelle piattaforme di criptovaluta e smart contract, e alcuni sono fondamentali per il modo in cui sono stati costruiti.






Il 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 hacker aveva in qualche modo ottenuto il controllo di più della metà della potenza di calcolo della rete e lo stava usando per riscrivere la cronologia delle transazioni. Ciò ha permesso di spendere la stessa criptovaluta più di una volta, conosciuta come "doppia spesa". L'aggressore è stato avvistato tirando fuori questa cifra per $ 1,1 milioni . Coinbase afferma che nessuna valuta è stata effettivamente rubata da nessuno dei suoi conti. Ma un secondo scambio popolare, Gate.io, ha ammesso che non è stato così fortunato, perdendo circa $ 200.000 nell'attacco (che, stranamente, ne hanno  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 a blockchain che hanno aumentato la posta in gioco per la nascente industria.

In totale, gli hacker hanno rubato quasi 2 miliardi di dollari di criptovaluta dall'inizio del 2017, principalmente da scambi, ed è proprio quello che è stato rivelato pubblicamente. Non sono solo gli opportunisti solitari. Anche le organizzazioni sofisticate del crimine informatico lo stanno facendo: la società di analisi Chainalysis ha recentemente affermato che solo due gruppi, entrambi apparentemente ancora attivi, potrebbero aver rubato un totale di $ 1 miliardo di scambi.

Non dovremmo essere sorpresi. I blockchain sono particolarmente attraenti per i ladri perché le transazioni fraudolente non possono essere invertite in quanto spesso possono essere nel sistema finanziario tradizionale. Inoltre, sappiamo da tempo che, proprio come le blockchain hanno caratteristiche di sicurezza uniche, hanno vulnerabilità uniche. Slogan e titoli di marketing che definivano la tecnologia "inaccessibile" erano assolutamente sbagliati.

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

Come si hackera una blockchain?

Prima di andare oltre, prendiamo alcuni termini.

Una blockchain è un database crittografico gestito da una rete di computer, ognuno dei quali memorizza una copia della versione più aggiornata. Un protocollo blockchain è un insieme di regole che stabiliscono come i computer nella rete, chiamati nodi , devono 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 ottenere un guadagno personale. Se impostato correttamente, questo sistema può rendere estremamente difficile e costoso aggiungere transazioni false, ma relativamente semplice verificare quelle valide.

Questo è ciò che ha reso la tecnologia così attraente per molti settori, a cominciare dalla finanza. 
I servizi di lancio da parte di grandi istituzioni come Fidelity Investments e Intercontinental Exchange, il proprietario della Borsa di New York, cominceranno a imbrigliare le blockchain nel sistema finanziario esistente. Persino le banche centrali stanno ora cercando di utilizzarle per nuove forme digitali di valuta nazionale.

Ma più è complesso un sistema di blockchain, più modi ci sono per commettere errori durante la sua creazione. All'inizio di questo mese, la società incaricata di Zcash, una criptovaluta che utilizza matematica estremamente complicata per consentire agli utenti di effettuare transazioni in privato, ha rivelato di aver risolto segretamente un " sottile errore crittografico " accidentalmente inserito nel protocollo. Un utente malintenzionato potrebbe averlo sfruttato per fare contraffazione illimitata Zcash. Fortunatamente, nessuno sembra averlo fatto.

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

Tuttavia, la maggior parte delle recenti hackerate che attirano i titoli non sono stati attacchi agli stessi blockchain, ma agli scambi , i siti Web in cui le persone possono acquistare, scambiare e conservare criptovalute. E molti di questi rapinatori potrebbero essere incolpati per la cattiva sicurezza di base. Ciò è cambiato a gennaio con l'attacco al 51% contro Ethereum Classic.

La regola del 51%

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

Per i blockchain popolari, tentare questo tipo di rapina può essere estremamente costoso. Secondo il sito web crypto51.com , il noleggio di una potenza mineraria sufficiente per attaccare Bitcoin costerebbe attualmente oltre $ 260.000 all'ora. Ma diventa molto più economico rapidamente mentre si scende nell'elenco delle oltre 1500 criptovalute là fuori. Il crollo dei prezzi delle monete lo rende ancora meno costoso, poiché spinge i minatori a spegnere le macchine, lasciando alle reti meno protezione.

Verso la metà del 2018, gli aggressori hanno iniziato a lanciare il 51% di attacchi su una serie di monete relativamente piccole e leggermente scambiate, tra cui Verge, Monacoin e Bitcoin Gold, che hanno rubato circa 20 milioni di dollari in totale. In autunno, gli hacker hanno rubato circa $ 100.000 usando una serie di attacchi contro una valuta chiamata Vertcoin. Il colpo contro Ethereum Classic, che ha guadagnato oltre $1 milione, è stata la prima contro una valuta delle top-20.

David Vorick, cofondatore della piattaforma di archiviazione di file basata su blockchain Sia, prevede che gli attacchi del 51% continueranno a crescere in frequenza e gravità e che gli scambi subiranno il peso maggiore del danno causato il doppio dello speso. Una cosa che guida questa tendenza, dice, è stata l'ascesa dei cosiddetti mercati di hashrate, che gli aggressori possono utilizzare per noleggiare la potenza di calcolo per gli attacchi. "Gli scambi dovranno alla fine essere molto più restrittivi quando si selezionano le criptovalute da supportare", ha scritto Vorick dopo l'hacking di Ethereum Classic.

Una nuova lattina di worms bugs

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

Un contratto intelligente è un programma per computer eseguito su una rete blockchain. Può essere utilizzato per automatizzare il movimento di criptovaluta secondo le regole e le condizioni prescritte. Questo ha molti usi potenziali, come la facilitazione di contratti legali reali o complicate transazioni finanziarie. Un altro uso - il caso di interesse qui - è creare un meccanismo di voto mediante il quale tutti gli investitori in un fondo di capital venture possano decidere collettivamente come allocare il denaro.

Solo un fondo di questo tipo, denominato Organizzazione Autonoma Decentralizzata (DAO), è stato istituito nel 2016 utilizzando il sistema blockchain chiamato Ethereum. Poco dopo, un aggressore ha rubato più di $ 60 milioni di criptovaluta sfruttando un difetto imprevisto in un contratto intelligente che ha governato il DAO. In sostanza, il difetto ha permesso all'hacker di continuare a richiedere denaro dagli account senza che il sistema registrasse che il denaro era già stato ritirato.

Come ha mostrato l'hack, un bug in un contratto smart dal vivo può creare un tipo unico di emergenza. 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, l'implementazione di un contratto intelligente è un po come lanciare un razzo, afferma Petar Tsankov, ricercatore presso l'ETH di Zurigo e cofondatore di una startup di sicurezza a contratto intelligente chiamata ChainSecurity . "Il software non può commettere errori".

Ci sono correzioni, di un tipo. Sebbene non possano essere riparati, alcuni contratti possono essere "aggiornati" implementando ulteriori contratti intelligenti 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 i cui soldi sono già stati rubati, sarà troppo tardi.

L'unico modo per recuperare il denaro è, in effetti, riscrivere la cronologia - per tornare al punto sulla blockchain prima che l'attacco si verificasse, creare un fork su una nuova blockchain e chiedere a tutti gli utenti della rete di usare quello. Questo è ciò che gli sviluppatori di Ethereum hanno scelto di fare. La maggior parte, ma non tutti, della comunità passò alla nuova catena, che ora conosciamo come Ethereum. Un gruppo più piccolo di holdouts è rimasto fedele alla catena originale, che è diventata Ethereum Classic.

Il mese scorso, il team di Tsankov a ChainSecurity ha salvato Ethereum da una possibile ripetizione della catastrofe DAO. Appena un giorno prima di un importante aggiornamento del software pianificato, la società ha dichiarato agli sviluppatori di Ethereum che avrebbe avuto la conseguenza non intenzionale di lasciare alcuni contratti sulla blockchain vulnerabili allo stesso tipo di bug che ha portato all'hack DAO. Gli sviluppatori hanno prontamente posticipato l'aggiornamento e ne faranno un altro più tardi questo mese.

Ciononostante, centinaia di preziosi contratti smart di Ethereum erano già vulnerabili a questo cosiddetto bug di rientranza, secondo Victor Fang, cofondatore e amministratore delegato della società di sicurezza blockchain AnChain.ai. Decine di migliaia di contratti potrebbero contenere qualche altro tipo di vulnerabilità , secondo una ricerca condotta lo scorso anno. E la natura stessa dei blockchain pubblici significa che se esiste un bug di smart-contract, gli hacker lo troveranno, poiché il codice sorgente è spesso visibile sulla blockchain. "Questo è molto diverso rispetto alla sicurezza informatica tradizionale", dice Fang, che in precedenza ha lavorato per la società di sicurezza informatica FireEye.

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

Gli hacker possono essere sconfitti?

AnChain.ai è una delle numerose startup recenti create per affrontare la minaccia hacking su blockchain. Utilizza l'intelligenza artificiale per monitorare le transazioni e rilevare attività sospette e può eseguire la scansione del codice del contratto intelligente per vulnerabilità note.

Altre società, tra cui ChainSecurity di Tsankov, stanno sviluppando servizi di auditing basati su una consolidata tecnica informatica chiamata verifica formale. L'obiettivo è dimostrare matematicamente che il codice di un contratto farà effettivamente quello che i suoi creatori intendevano. Questi strumenti di auditing, che hanno iniziato a emergere nell'ultimo anno circa, hanno permesso ai creatori di smart-contract di eliminare molti dei bug che erano "frutti a basso impatto", dice Tsankov. Ma il processo può essere costoso e dispendioso in termini di tempo.

Potrebbe anche essere possibile utilizzare ulteriori contratti intelligenti per creare "bug bounties" basati su blockchain. Questi incoraggerebbero le persone a segnalare difetti in cambio di una ricompensa in criptovaluta, afferma Philip Daian , ricercatore presso l'iniziativa della Cornell University per Cryptocurrencies and Contracts.

Assicurarti che il codice sia pulito così  andrà lontano. Una blockchain, dopo tutto, è un sistema economico complesso che dipende dal comportamento imprevedibile degli esseri umani, e le persone saranno sempre alla ricerca di nuovi modi per giocarlo. Daian e i suoi colleghi hanno dimostrato che gli aggressori hanno già capito, ad esempio,  come trarre profitto dal gioco popolare di smart contracter Ethereum .

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


*****
Grazie al nostro canale Telegram potete rimanere aggiornati sulla pubblicazione di nuovi articoli  ISCRIVITI AL NOSTRO CANALE TELEGRAM
Reazioni:

0 commenti:

Subscribe to RSS Feed Follow me on Twitter!