Cos'è l'Attacco Eclipse?

Condividi
Copied to clipboard!
Cos'è l'Attacco Eclipse?

Contenuti


Un attacco eclipse è un attacco relativamente semplice che può essere dispiegato per interferire con i nodi su un network. Come suggerisce il nome, l'attacco mira ad oscurare la visione di un partecipante del network peer-to-peer, per causare disturbi generali o in preparazione ad attacchi più sofisticati.

Gli attacchi eclipse possono sembrare, a prima vista, simili agli attacchi Sybil. Anche se condividono alcune somiglianze – l'hacker inonda il network con peer falsi – il loro obiettivo finale è diverso. Un attacco eclipse prende di mira un singolo nodo (per ragioni che spieghiamo più avanti), mentre un attacco Sybil colpisce l'intero network ed è concepito per aggirare il sistema reputazionale del protocollo.

Il concetto viene discusso in modo approfondito nel documento del 2015 Eclipse Attacks on Bitcoin’s Peer-to-Peer Network, in cui ricercatori dalla Boston University e Hebrew University riportano i risultati degli esperimenti condotti nell'implementazione di attacchi eclipse, oltre alle possibili contromisure per combatterli.


Come funziona un attacco eclipse

I miner di Bitcoin hanno disogno di attrezzature specializzate per poter generare nuovi blocchi, mentre i nodi non-mining (detti anche full node) sono semplici da gestire con una potenza computazionale minima. Questa caratteristica aiuta la decentralizzazione di Bitcoin, dato che chiunque può creare un nodo usando un dispositivo comune. Il software mantiene un database di transazioni che sincronizza con i suoi peer più vicini, allo scopo di rimanere in sintonia con il network.

Un fattore limitante per molti nodi è la larghezza di banda. Nonostante l'enorme numero di dispositivi che eseguono il software, il dispositivo medio non è in grado di connettersi direttamente con molti di questi a causa di limiti stabiliti nel software di Bitcoin (che consente soltanto un massimo di 125 connessioni).

In un attacco eclipse, l'hacker farà in modo che tutte le connessioni del target avvengano con nodi da lui controllati. L'entità inonderà prima il bersaglio con i suoi indirizzi IP, ai quali è probabile che la vittima si connetterà al riavvio del proprio software. Un riavvio può essere o forzato (ad es. con un attacco DDoS ai danni del bersaglio), oppure l'hacker può semplicemente aspettare che questo avvenga senza interferire. 

Quando questo avviene, la vittima ignara è alla mercé dei nodi controllati dall'hacker – non potendo vedere il network generale, l'attaccante può forzare dati non corretti.


Le conseguenze di un attacco eclipse

Se un attaccante sta spendendo risorse per alienare un peer dal network, è probabile che abbia un motivo per farlo. Ci sono alcuni attacchi successivi che possono essere dispiegati più facilmente quando un nodo è stato soffocato.


Doppia spesa a 0 conferme

Se un individuo accetta una transazione senza conferme, si trova a rischio di una doppia spesa. La transazione potrebbe essere stata trasmessa, ma fino a quando non viene inclusa in un blocco (e quindi affidata alla blockchain), il mittente può facilmente creare una nuova transazione che spende gli stessi fondi da qualche altra parte. Se la nuova transazione porta con se una commissione più alta, è probabile che un miner la includa prima dell'originale, invalidando quella precedente. 

Alcune aziende e individui accettano queste transazioni a 0 conferme. Consideriamo un commerciante, Bob, che vende automobili di lusso. Non è a conoscenza del fatto che il nodo di Alice sia stato eclissato, e non sospetta nulla quando lei fa un ordine per una macchina sportiva di lusso. Alice crea una transazione, e Bob la trasmette al network. Convinto che il pagamento sia in arrivo, consegna le chiavi della macchina e Alice parte sgommando.

Ovviamente, la transazione non è stata diffusa nel network – Bob l'ha soltanto trasmessa ai nodi controllati da Alice, che non la comunicheranno a nodi onesti. Mentre questa transazione è sospesa nel limbo, Alice spende gli stessi fondi sul network (reale), o con un altro partecipante o verso un indirizzo che possiede. Anche se la transazione iniziale verso Bob viene eventualmente individuata da altri nodi, verrà respinta in quanto le monete sono già state spese.


Doppia spesa a N conferme

La doppia spesa a N conferme è simile a quella a 0 conferme, ma prevede una maggiore preparazione. Molte aziende preferiscono aspettare un certo numero di conferme prima di considerare valido un pagamento. Per aggirare questa misura di sicurezza, l'attaccante deve eclissare sia i miner che il commerciante. Una volta che l'attaccante ha piazzato l'ordine con il commerciante, trasmette una transazione ai miner (eclissati). La transazione viene confermata e inclusa nella blockchain – ma questa blockchain non è la catena rispettata dalla maggioranza del network, dato che il miner è tagliato fuori.

A questo punto, l'attaccante rimanda questa versione della blockchain al commerciante, il quale rilascia i suoi prodotti convinto che la transazione sia stata confermata. Una volta che i nodi eclissati si riuniscono al network reale, la blockchain che hanno erroneamente considerato valida rimane orfana, e si continua a seguire quella su cui sta lavorando il resto del network (questa tecnica presenta delle similitudini con i 51% attack).


Indebolimento dei miner concorrenti

Un nodo eclissato continuera ad operare, ignaro del fatto che è stato isolato dal network. I miner continueranno a minare blocchi seguendo le regole stabilite dal protocollo, ma i blocchi aggiunti verranno scartati quando vengono sincronizzati con peer onesti. 

In teoria, un attacco eclipse su larga scala ai danni di miner importanti potrebbe essere usato per facilitare un 51% attack. Allo stato attuale, il costo necessario per assumere il controllo della maggioranza di hashing power di Bitcoin è semplicemente troppo elevato anche per gli attaccanti con più risorse a disposizione – a ~80TH/s, l'hacker avrebbe bisogno di oltre 40TH/s per tentare una simile manovra. 

In uno scenario ipotetico in cui questa hashing power è distribuita tra 10 parti (in modo che ciascuna possieda 8TH/s), l'attaccante può ridurre significativamente i requisiti per un 51% attack isolando queste parti dal network. Se cinque di queste vengono eclissate, 40TH/s sono rimosse dalla gara per trovare il blocco successivo, e l'attaccante ora deve solo acquisire poco più di 20TH/s per assumere il controllo.

Un altro sabotaggio che può essere realizzato attraverso attacchi eclipse è la manipolazione dei nodi per il selfish mining, o la progettazione della gara tra miner per trovare il blocco successivo.


Mitigazione

Con abbastanza indirizzi IP, un attaccante può eclissare qualsiasi nodo. Il metodo più semplice per impedire che questo accada è bloccare le connessioni in entrata, e di effettuare connessioni in uscita soltanto verso nodi specifici (come quelli che sono stati inseriti nella whitelist da altri peer). Come indica il documento di ricerca, però, questo approccio non funziona su larga scala – se tutti i partecipanti adottano queste misure, i nuovi nodi non saranno in grado di unirsi al network.

Gli autori propongono delle modifiche al software di Bitcoin, alcune delle quali sono già state integrate dopo la pubblicazione della ricerca. Questi aggiornamenti rendono gli attacchi eclipse più costosi attraverso cambiamenti minimi del codice, come la selezione casuale di nuove connessioni e una maggiore capacità per l'archiviazione di indirizzi.


In chiusura

Gli attacchi eclipse vengono eseguiti al livello peer-to-peer del network. Dispiegati come un attacco indipendente, possono essere una seccatura. La loro reale efficacia sta nel potenziare altri attacchi che hanno un impatto finanziario sui bersagli, oppure forniscono all'attaccante un vantaggio per quanto riguarda il mining.

Fino ad oggi, non sono state registrate serie conseguenze dovute a un attacco eclipse, ma la minaccia rimane nonostante le contromisure integrate nel network. Come per gran parte dei vettori di attacco che esistono per Bitcoin e altre criptovalute, la miglior linea di difesa è l'enorme costo di ogni tentativo d'attacco.

Loading