Attacchi Eclipse spiegati
Fondamenti
Nel mondo della sicurezza di rete, un attacco chiamato "eclipse" può interrompere i nodi di una rete. L'obiettivo dell'attaccante è offuscare la vista di un nodo sulla rete peer-to-peer, il che può preparare attacchi più sofisticati o causare disservizi generalizzati. Sebbene simili agli attacchi Sybil, dove peer falsi inondano la rete, gli attacchi eclipse si concentrano su un singolo nodo. Al contrario, gli attacchi Sybil mirano a manipolare il sistema reputazionale del protocollo sull'intera rete.
In un articolo del 2015 intitolato "Eclipse Attacks on Bitcoin's Peer-to-Peer Network," i ricercatori della Boston University e della Hebrew University discutono i risultati dei loro esperimenti nel mettere in pratica attacchi eclipse. Forniscono inoltre suggerimenti su possibili contromisure per contrastare questi attacchi.
Come funziona?
Il mining di Bitcoin richiede attrezzature specializzate, ma dispositivi a bassa potenza possono eseguire nodi full che non minano e contribuiscono alla decentralizzazione di Bitcoin. Questi nodi sincronizzano un database di transazioni con i loro peer per restare allineati alla rete. La larghezza di banda è spesso un fattore limitante per molti nodi, dato che il software Bitcoin permette al massimo 125 connessioni.
Attori malintenzionati sfruttano gli attacchi eclipse per interferire con i nodi bersaglio collegando tutte le loro connessioni a nodi controllati dall'attaccante. L'attacco inizia con l'entità maligna che inonda il bersaglio con i propri indirizzi IP, ai quali la vittima si connetterà probabilmente al riavvio del software. Questo può essere ottenuto forzando un riavvio tramite un attacco DDoS o aspettando che avvenga un riavvio. Il nodo bersaglio diventa così vulnerabile ai nodi dell'attaccante e può ricevere dati errati senza visuale della rete più ampia. I ricercatori della Boston University e della Hebrew University suggerirono contromisure nel loro articolo del 2015, "Eclipse Attacks on Bitcoin's Peer-to-Peer Network."
Esempi di azioni successive dell'attaccante
Quando un attore malintenzionato isola un peer dalla rete, di solito ha uno scopo preciso. Un nodo isolato è più suscettibile ad attacchi successivi che possono essere lanciati con maggiore facilità.
Doppie spese a 0 conferme
Accettare transazioni senza conferme comporta il rischio di doppia spesa. Finché una transazione non è stata aggiunta a un blocco sulla blockchain, il mittente può creare una nuova transazione che spende gli stessi fondi altrove. Se la nuova transazione offre una commissione più alta, è probabile che un miner la includa prima dell'originale, rendendo invalida la prima.
Alcune attività e individui accettano transazioni a 0 conferme, lasciandosi così esposti a doppie spese. Per esempio, un venditore chiamato Charlie, che vende veicoli di lusso, potrebbe accettare inconsapevolmente una transazione che è stata eclipsata da un attore malintenzionato, Eve. In questo scenario, Charlie trasmette la transazione alla rete credendola genuina. Tuttavia, la transazione viene inoltrata ai nodi malevoli di Eve, che non la rilanciano ai nodi onesti. Così la transazione rimane in sospeso, permettendo a Eve di spendere gli stessi fondi sulla rete reale. Quando la transazione iniziale per Charlie viene infine vista, sarà respinta perché le monete saranno già state spese.
Doppie spese a N conferme
L'attacco di doppia spesa a 0 conferme può essere evitato aspettando un certo numero di conferme. Ma per aggirare questo controllo, gli attaccanti possono eseguire un attacco di doppia spesa a N conferme, che richiede di eclipsare sia i miner sia il commerciante. Una volta che l'attaccante ha effettuato un ordine con il commerciante, trasmette una transazione ai miner eclipsati, che viene confermata e inclusa nella blockchain osservata da quei miner.
Questa blockchain però non è vista dalla maggior parte della rete, perché il miner è isolato. L'attaccante quindi ritrasmette questa versione della blockchain al commerciante, che rilascia la merce convinto che la transazione sia stata confermata. Quando i nodi eclipsati si riconnettono alla rete reale, la blockchain che ritenevano valida viene orfanizzata da quella su cui il resto della rete ha lavorato. Questo tipo di attacco è simile a un attacco del 51%.
Indebolire i miner concorrenti
Quando un nodo viene eclipsato, continua a funzionare normalmente, ignaro della sua segregazione dalla rete. Sebbene i miner continuino a produrre blocchi, questi vengono respinti quando si risincronizzano con peer onesti. Anche se attualmente sarebbe troppo costoso per qualsiasi attaccante acquistare il 51% della potenza di hashing di Bitcoin, esiste uno scenario ipotetico in cui un attaccante potrebbe acquisire tale potenza isolando una parte significativa della capacità di hashing distribuita. Se un attaccante eclipsasse cinque delle dieci parti con 8TH/s ciascuna, gli basterebbero poco più di 20TH/s per prendere il controllo. Il sabotaggio potrebbe anche coinvolgere manipolazioni di mining selfish o tecniche di race tra miner.
Come mitigare gli effetti di un attacco eclipse?
Un attaccante può eclipsare qualsiasi nodo disponendo di abbastanza indirizzi IP, ma bloccare le connessioni in ingresso e effettuare solo connessioni in uscita verso nodi specifici può prevenire questo. Tuttavia, questo approccio non è scalabile perché i nuovi nodi non potrebbero unirsi facilmente alla rete. Gli autori dell'articolo di ricerca propongono modifiche al software Bitcoin, alcune delle quali sono state integrate dopo la pubblicazione. Queste modifiche rendono gli attacchi eclipse più costosi, ad esempio con la selezione casuale di nuove connessioni e una maggiore capacità di memorizzazione degli indirizzi.
Conclusione
Gli attacchi eclipse avvengono a livello della rete peer-to-peer. Pur essendo spesso un fastidio minore di per sé, il pericolo reale risiede nella loro capacità di abilitare altri attacchi con danni finanziari. Finora non si sono registrate conseguenze di vasta portata dovute a questi attacchi, ma la minaccia persiste nonostante le difese intrinseche della rete. La migliore difesa, come per molti vettori di attacco nelle criptovalute, è rendere economicamente non sostenibile l'esecuzione dell'attacco.