Questo articolo è di supporto a questo video su YouTube, dove spiego meglio il tutto, anche con esempi. Vieni a vederlo :)

25 aprile 1997. Un tranquillo venerdì, festivo in alcuni Paesi, nonché uno dei giorni più neri dell’intera storia di Internet.

Fu il giorno in cui Internet si ruppe: migliaia di router crasharono, i pochi che resistettero stoicamente senza cadere non riuscirono in ogni caso a far navigare i propri utenti e tutto ciò durò per ore.

Ma come fu possibile? Prima di tutto ci serve una base su come funziona Internet.

LE RETI INTERCONNESSE

Noi, oggi, siamo abituati a pensare a Internet come un’unica entità ma, in verità, come già dice il nome, Internet è una rete di reti, non di singoli computer. La vostra rete domestica o la vostra postazione universitaria è collegata ad una rete che a sua volta è collegata ad Internet.

Questa rete, che appartiene ad un provider o ad un’istituzione importante come un’università, viene chiamata sistema autonomo.

Un tempo il sistema autonomo era più importante anche lato utente: la gran parte dell’esperienza in rete, come l’invio di e-mail, l’ottenimento di informazioni o l’uso di servizi specifici avveniva all’interno della rete del proprio provider, con occasionali visite al resto della Rete, mentre oggi qualsiasi barriera ideale tra rete del provider e rete esterna è abbattuta e quasi ogni scorribanda sul web richiede di passare per più sistemi autonomi.

E come si collegano queste varie reti sino a formare Internet? Con un protocollo denominato Border Gateway Protocol.

In estrema sintesi, ogni sistema autonomo ha uno o più router che lo collegano con l’esterno: router che hanno impostati - manualmente ! - gli indirizzi di collegamento con altri router vicini e che comunicano quali prefissi, ossia sottoreti, si possono raggiungere tramite questo sistema autonomo, come e con quale specificità.

Tale meccanismo è decentrato e permette di prorogare rapidamente le novità: se anche un sistema autonomo è collegato con un solo altro sistema autonomo in poco tempo tutta Internet saprà come raggiungere i nodi interni a tale sistema autonomo.

Per fare un esempio realistico, il principale provider della Corea del Nord, ossia uno Stato non molto collegato per dirla con un eufemismo, è collegato a due sistemi autonomi: quello di China Unicom e quello di TransTelekom, compagnia di telecomunicazioni russa sussidiaria delle ferrovie.

Quando viene cambiato qualcosa nella rete nordcoreana il router di confine annuncia a China Unicom e TransTelekom il cambiamento. A sua volta, China Unicom avvisa Telia, AT&T e Verizon e TTK avvisa Telecom Italia, Deutsche Telekom e tante altre compagnie in Europa, compagnie che hanno a loro volta un collegamento tra i loro sistemi. In poco tempo anche il sistema autonomo di Hilti, quella dei trapani!, sito dall’altra parte dell’Eurasia, saprà come raggiungere gli indirizzi nordcoreani, dato che è collegata alla Telecom austriaca che, a sua volta, è collegata alla già citata Telia.

Alla fine, dopo qualche tempo, ogni sistema autonomo, anche sperduto, conosce almeno una strada per ogni altro sistema autonomo, tutto ciò perché un sistema a cui è collegato gli ha annunciato di potersi collegare a quel sistema autonomo, che a sua volta può collegarsi ad esso tramite un altro sistema autonomo. Questa conoscenza è raccolta in una tabella di routing, che essenzialmente avrà una costruzione del tipo: posso raggiungere gli IP taldeitali passando per tal dei tali AS.

Se ci sono più strade sarà questo router di confine a valutare quale prendere in base a vari parametri di velocità, costo e specificità. Appunto, il routing.

Se vi piace approfondire potete dare un’occhiata a bgp.he.net: trovate il numero di sistema autonomo del vostro provider, mettetelo nel sito e vi mostrerà a chi è collegato: potreste trovare varie sorprese interessanti…

IL DISASTRO DEL 25 APRILE

Quel giorno il router di confine dell’AS 7007 ebbe un problema e inviò ai propri vicini l’intera tabella di routing, in sostanza dicendo loro che quasi tutta Internet si poteva raggiungere comodamente passando per l’AS 7007. Per di più, a causa di un bug, annunciò i prefissi con una specificità /24 (tra l’altro il minimo normalmente accettato dal protocollo, ma non è una regola), pari a quella di una comune LAN ampia e quindi molto specifica e favorita dal BGP.

Quando gli amministratori si resero conto del pasticcio staccarono fisicamente il router incriminato ma, proprio a causa della struttura di BGP il vicino AS 1790 continuò ad annunciare l’AS 7007 come via per tutta Internet.

Alcuni router, vedendo massivamente cresciuta la propria tabella di routing - dato che tutti i vicini annunciavano improvvisamente decine di migliaia di nuove rotte verso AS 7007 - diedero forfait e crasharono, riavviandosi ricrashando quando ricevettero le medesime tabelle.

Altri furono capaci di reggere, ma credevano ugualmente agli annunci dei vicini e quindi instradarono quasi tutti i pacchetti verso il router dell’AS 7007. Router che, ricordo, era staccato, creando quindi un buco nero di traffico per ore…

TUTTI I PROBLEMI DI BGP

Essenzialmente, la sicurezza di BGP si basa su un sistema d’onore: lo eseguono solo grandi enti che avrebbero molto da perdere a manipolarlo intenzionalmente e gli errori, quando capitano, sono una rarità, quindi l’uso di protocolli più sicuri - che esistono - è un santo per il quale non vale accender la candela.

Si sono visti altri esempi di come BGP sia vulnerabile: ad esempio nel 2008 Pakistan Telecom, obbligata a bloccare YouTube dalle autorità, decise di farlo in modo poco accurato tramite BGP, annunciando gli IP di YouTube in modo più specifico rispetto a YouTube stesso. Peccato che, con questa tattica, il provider hongkongese a cui si appoggiava la Pakistan Telecom si convinse che i server di YouTube fossero a Islamabad e lo annunciò a tutti i vicini, bloccando YouTube in quasi tutto il mondo per ore.

Nel 2013, invece, i ROS dei Carabinieri persero il controllo di un server di comando di un sistema di accesso remoto, prodotto dal famigerato Hacking Team, usato per spiare alcuni sospetti.

Comprensibilmente arrabbiati i militari andarono da Hacking Team chiedendo aiuto per recuperare l’accesso ai sistemi violati e, dopo un tentativo fallito di collaborazione con l’hosting, decisero di chiedere all’AS 31034, alias Aruba, che accettò di annunciare lei il prefisso, così da permettere ai ROS di avere ancora un server capace di garantire il funzionamento del malware e di cambiare l’indirizzo di comando verso una piattaforma più stabile.

Tuttavia non tutti gli altri AS accettarono immediatamente l’annuncio di Aruba, questo perché esistono politiche di sicurezza pensate proprio per evitare questi dirottamenti, che richiedono conferme o impediscono dichiarazioni “sospette”. Tali policy, però, sono facoltative e vanno implementate direttamente dagli amministratori di sistema di ogni ente, non sono integrate nel protocollo.

Questi eventi sono noti come “BGP hijacking”, ossia “dirottamento BGP”. Possono accadere sia volontariamente che involontariamente e mostrano come l’infrastruttura su cui si regge Internet, tutto sommato, non è così tanto sicura…

ZMW: SI POTREBBE FERMARE INTERNET?

Un attacco a BGP permetterebbe effettivamente di bloccare l’infrastruttura che è alla base di Internet. Esistono altri attacchi che renderebbero decisamente noioso l’uso di Internet, come ad esempio un attacco massiccio ai rootserver DNS, quelli che si occupano di tradurre i nomi a dominio in indirizzi IP.

Se fosse impossibile tradurre google.it in 142.250.180.131 sarebbe sicuramente una brutta giornata per molti, ma l’infrastruttura base di Internet non sarebbe effettivamente toccata e sarebbe possibile continuare a navigare, magari con soluzioni temporanee, e le applicazioni con una lunga cache DNS o che usano direttamente gli IP non sarebbero direttamente coinvolte.

Mentre con l’attacco teorizzato nel 2007 da Ying Zhang, Z. Morley Mao, e Jia Wang si potrebbe effettivamente smagliare la rete. Come? Semplicemente attaccando in un modo particolare le connessioni certi router nella cosiddetta default-free zone (in sintesi, quella che autonomamente sa come raggiungere raggiungere tutta Internet, qui c'è una spiegazione semplice) fino a obbligare a un reset della connessione e l’aggiornamento delle tabelle di routing. Se fatto nei punti giusti, coi tempi giusti e nei modi giusti i router saranno semplicemente non in grado di gestire computazionalmente la quantità di nuove informazioni e di cambiamenti da apportare e saranno sopraffatti, come accadde il 25 aprile 1997.

Il paper è molto interessante e ne consiglio la lettura per chi fosse interessato. Ma è ancora più interessante questo paper del 2010 che ipotizza che tale attacco sia fattibile con una piccola botnet di 250’000 host, per quanto in 11 anni le cose siano sicuramente cambiate in termini di connettività tra sistemi autonomi.

Insomma, sembra che Internet non sia così solida come si racconta, cosa particolarmente divertente se si ricorda che per anni si è pensato che fosse pensata per sopravvivere ad un attacco nucleare. Ma è anche vero che nessuno, soprattutto il cibercrimine che ha le risorse per attacchi del genere, ha interesse a bloccare un’importante fonte di reddito…