È possibile creare un virus che spegne Internet?

Quante luci vedi? / How many lights do you see?Risposta breve: teoricamente sì, ma con un sacco di se e di ma.

Max Schuchard e i ricercatori dell’università del Minnesota hanno dimostrato [PDF] che un botnet di circa 250.00 elementi ben programmato potrebbe mettere in crisi le tabelle BGP dei router di confine delle varie sottoreti e bloccare, quindi, il routnig tra gli autonomous system.

Una premessa: per comprendere le implicazioni di quanto scritto in questo articolo è necessaria un minimo di familiarità sui meccanismi che regolano Internet ad un livello che non viene normalmente percepito dagli utenti o dai SysAdmin che operano a livello server. Di seguito cercherò di spiegare a grandi linee questi meccanismi.

Durante il primo boom di Internet (metà anni ’90) questa veniva definita anche la rete delle reti, definizione che ci viene molto utile in questo contesto. A livello macrosocopico Internet è una serie di reti con delle regole specifiche di interconnessione (peering) e instradamento (routing) tra di loro. Le regole di routing interne delle singole reti non sono importanti: come la singola connessione ADSL raggiunga il confine della rete di un provider non interessa le altre reti. Le singole reti sono, ad esempio, quelle dei vari ISP, quelle delle grandi società di hosting/housing, quelle delle multinazionali. Da questo momento in avanti il termine rete è utilizzato con questa accezione, non pensate alla vostra LAN, ma all’insieme degli indirizzi del vostro provider (per esempio). Bisogna pensare in grande quando si parla di BGP e assimilati.

Ciascuna di queste reti utilizza dei gruppi di indirizzi IP ben definiti ed è identificata da un numero di autonomous systems (AS) a cui sono associati i gruppi di IP.

I router di confine di ciascun AS (e solamente loro) hanno configurato il protocollo BGP attraverso cui annunciano (questo è il termine tecnico) agli AS vicini (peer) i gruppi di indirizzi IP che stanno dietro di loro.

In sostanza, all’interno di una rete ci sono delle regole di routing tali per cui se un pacchetto IP non appartiene alla rete stessa viene inviato a uno dei router di confine, il quale confronta l’indirizzo di destinazione del pacchetto con la sua tabella di routing (la tabella BGP) e invia il pacchetto all’AS destinatario secondo le regole attive in quel momento. Quando il pacchetto verrà recapitato all’AS di destinazione sarà il router di confine che lo instraderà verso l’host di destinazione finale all’interno della sua rete.

Un AS può avere più peer con altri AS sia per ottimizzare il traffico sia per ragioni di ridondanza. Se una connessione tra AS cade, le tabelle BGP dei router interessati vengono aggiornate per fare in modo che i pacchetti arrivino comunque a destinazione, anche se devono percorrere strade più tortuose e, quindi, più lente. Tecnicamente, il router di confine dell’AS a cui è caduta una connessione, annuncia sulla connessione superstite anche i gruppi di IP che prima erano annunciati sulla connessione che è caduta e tutti i router di confine aggiornano la loro tabella.

Da questa premessa si può ben capire che un attacco al protocollo BGP dei router di confine potrebbe oscurare le reti dietro i rispettivi router (l’Egitto è stato oscurato il mese scorso proprio spegnendo i router che annunciavano i suoi IP via BGP) e un attacco coordinato a tutti i router di confine potrebbe isolare le varie reti e disabilitare, quindi, Internet.

L’attacco al protocollo BGP non è una novità ed è stato scoperto da Zhang, Mao e Wan [PDF] e si chiama tecnicamente attacco ZMW, dalle iniziali dei tre ricercatori.

Un botnet che volesse tirare giù Internet dovrebbe operare in due fasi.

Nella prima fase ogni bot dovrebbe contattare gli altri per sapere a quale AS appartiene e, quindi, quali sono i router che deve attaccare.

Una volta creata la mappa, cosa non facile per chi non ha esperienza con queste cose, il centro di controllo del botnet dovrebbe ordinare un attacco ZMW contemporaneo a tutti i router con il BGP attivo. L’attacco ZMW consiste nel far credere al router che un link è caduto e forzarlo, quindi, ad annunciare una modifica al routing dell’AS che gestisce.

Se è normale che ogni giorno delle connessioni tra gli AS cadano o vengano ripristinate, con relativi aggiornamenti delle tabelle, non è normale che tutti i router di confine annuncino contemporaneamente delle modifiche. Questa ondata di annunci metterebbe in crisi i vari router di confine che non sarebbero più capaci di aggiornare le tabelle e, quindi, di contattare gli altri AS. Le varie reti sarebbero, quindi, isolate.

Val la pena sottolineare che i malviventi che gestiscono i botnet hanno, per ora, tutto l’interesse a che Internet non cada per poter continuare ad utilizzare i bot per altri scopi illegali.

In conclusione, se è teoricamente possibile mettere in crisi il protocollo BGP, nel caso in cui domani il vostro PC non riesca a raggiungere alcun sito, controllate il cavo della LAN o la connessione del vostro router prima di pensare che qualcuno abbia spento Internet. (via NewScientist)

Autore: Luigi Rosa

Consulente IT, sviluppatore, SysAdmin, cazzaro, e, ovviamente, geek.

4 pensieri riguardo “È possibile creare un virus che spegne Internet?”

Spazio per un commento