Tag Archives: botnet

Riflessioni su DDOS e reti complesse

Del 2008 Worldwide Infrastructure Security report se ne è parlato brevemente su Repubblica (in questo articolo), ma è stato abbastanza ignorato. Il report è interessante, oltre che molto scorrevole da leggere. Si puo’ scaricare gratuitamente qui (serve registrarsi, ma se mi scrivete una mail ve ne mando una copia).

La notizia più eclatante è sicuramente che l’attacco di tipo Distributed-Denial-of-Service (DDOS) più grande osservato nel 2007 ha consumato 40GB di banda.

Non tutti i service provider sono in grado di reggere un attacco del genere, ma quello che preoccupa è che la rete internet (backbone) è per la maggior parta formata da collegamenti di 10GB. Questo vuol dire che un attacco ben congegnato potrebbe mettere in ginocchio la rete.

Internet è un scale-free network. A fronte di migliaia di nodi (service provider) e link fra di essi (backbone e collegamenti dedicati di vario genere), esiste un numero relativamente basso di nodi, detti hub, che sono fondamentali per garantire la connettività della rete. È un po’ come un social network: la teoria dei “6 gradi di separazione” regge finché quelle persone che “conoscono tutti” rimangono nella rete. Se li togliamo, il social network si trasforma in un “social ocean”, formato da tanti isolotti non comunicanti.

Ecco, per Internet vale lo stesso discorso: un attacco informatico portato a (relativamente) pochi hub puo’ rendere inutilizzabile Internet a un numero molto elevato di ISP (e un numero ancor più elevato di utenti). Alcuni fanno notare come il blackout in Nord America dell’Agosto 2003 sia legato al fallimento di una grossa centrale che agiva da hub per una serie di altre centrali più piccole (appena trovo il riferimento lo aggiungo).

Per rimanere in Italia, date un’occhiata alla rete del GARR che assicura la connettività internet a tutta la penisola: i quattro hub (Milano, Bologna, Roma e Napoli) sono chiaramente visibili ed è altrettanto chiaro come il loro fallimento contemporaneo sarebbe in grado di “spegnere” tutto il paese.

Advertisements

Il segreto di Pulcinella

Come previsto, il segreto (che segreto non era da un pezzo) ora e’ totalmente di pubblico dominio.

Una breve ricerca con Google individua gia’ decine di siti (Slashdot compreso) che parlano del non-segreto. Ad esempio, qui.

In pratica, Halvar Flake ha formulato un ipotesi e un ricercatore di Matasano Security ha gentilmente confermato. Tranquilli, ora chiede scusa. In pratica, il super-segreto che era mezzo segreto perche’ molti lo conoscevano, anzi un quarto perche’ chi non lo conosceva dice che uno bravo lo avrebbe capito, anzi un ottavo perche’ quello bravo dice che era troppo facile per lui, non e’ piu’ segreto.

Qui la descrizione dettagliata, di seguito una spiegazione “fatta in casa” per cercare di dare forma ai tecnicismi.

***
Supponiamo che io sono un cattivo e voglio far si’ che tutti gli utenti di un ISP (esempio, Telecom Italia) che visitano il sito di Repubblica.it vengano indirizzati al mio sito (fasullo) di Repubblica. Quello che devo fare e’ incredibilmente semplice:

  1. Interrogo il nameserver di Telecom Italia con “AAAAAA.REPUBBLICA.IT” (suponiamo si chiami NS-TI)
  2. Il sito non e’ nella cache di NS-TI e questo gira la richiesta al nameserver di Repubblica.it (es, VENERE.INET.IT)
  3. VENERE.INET.IT dovrebbe rispondere qualcosa del tipo “sito inesistente” e la risposta sarebbe memorizzata da NS-TI
  4. Fra domanda e risposta c’e’ un breve intervallo di tempo in cui io, cattivo, posso creare una risposta fasulla da spedire a NS-TI
  5. Non c’e’ modo, per NS-TI, di sapere chi ha generato una data risposta, o meglio, un modo c’e’: ogni query contiene un ID generato casualmente che deve essere riprodotto nella risposta
  6. Io, cattivo, non conosco questo ID e posso solo indovinarlo. Le probabilita’ sono molto basse, ma se lo indovino ho convinto NS-TI che la mia risposta fasulla e’ invece quella vera. Quante probabilita’ ho di indovinare? 1/65536 (circa), se gli ID vengono generati casualmente. Molto bassa, ma posso ripetere lo stesso giochino con AAAAAB.REPUBBLICA.IT e cosi’ via finche’ non “c’azzecco”

Supponiamo che, ad un certo punto, riesca a convincere NS-TI che FFFFFF.REPUBBLICA.IT sia io. A che mi serve? Nessuno digitera’ un indirizzo cosi’ stupido. Vero, ma si da il caso che ci sia una piccola regolina nel funzionamento del DNS che mi dice che, insieme alla risposta di FFFFFF.REPUBBLICA.IT, io possa mandare un update per VENERE.INET.IT.

Cosa vuol dire? Che da questo momento in poi, qualunque utente del service provider Telecom Italia che digiti WWW.REPUBBLICA.IT sul suo browser verra’ rediretto al mio sito. Ora immaginate che questo giochino venga fatto con il sito di una banca online.

***

SOLUZIONE
Senza entrare nei dettagli, Dan Kaminski propone di applicare un “source port randomisation”, che vuol dire che io, cattivo, non solo devo indovinare l’ID contenuto nel messaggio ma anche la porta UDP dal quale il messaggio e’ partito.

La comunita’ internet e’ d’accordo che questa e’ una mezza soluzione, perche’ se diminuisce le probabilita’ dell’attacco non lo elimina del tutto:

  • Ho letto da qualche parte che alcuni cache resolver non usano tutte le porte possibili (65535) ma solo un sotto-insieme, rendendo la soluzione meno efficace
  • In altri casi, le porte cambiano in maniera sequenziale (cioe’, se prima ho usato 1025, ora uso 1026 e cosi’ via)

Ma il vero problema e’ che se prima un hacker ci impiegava 10 secondi adesso ci impiega, nel peggiore dei casi, 10*65535 secondi, circa 8 giorni. Cio’ che fa la differenza e’ la mole di traffico che l’attacco genererebbe, che difficilmente non verrebbe notato dai firewall degli ISP.

Se l’attacco, pero’, venisse distribuito in maniera intelligente fra vari ISP e diluito in un periodo di tempo piu’ lungo (ad esempio, qualche mese) potrebbe non essere facilmente rilevabile. Se i tempi vi sembrano lunghi, pensate che, con un simile attacco, avreste la certezza che da qui alla fine dell’anno il sito della vostra banca preferita sara’ hackerato. Speriamo solo “non con il mio ISP.

L’unica soluzione, come ho parlato da qualche parte, e’ DNSSEC, ma ha ancora troppe resistenze di tipo politico.

PS: in ogni caso, ho la vaga sensazione che manchi ancora un tassello… forse, pero’, questa volta mi sbaglio.

Qual e’ il reddito…

…di tutta Italia?!?

Sono stato abbastanza assente di recente (sara’ stato il risultato delle elezioni che mi ha fiaccato?) e non so da dove cominciare.

Allora mi limito ad aggiungere alcune precisazioni a un mio commento sul problema dei redditi online che ho postato qualche minuto fa sul blog di Stefano Quintarelli.
***
Quello che mi ha lasciato piu’ perplesso di tutta l’operazione e’ stata la pubblicazione di interi elenchi di nominativi in formato testuale: mi chiedo come la prenderebbo i vari Page, Young, etc se qualcuno a Google o Yahoo decidesse di rendere pubblico il database aziendale. Io credo che andrebbe diritto in tribunale.

Mi chiedo anche perchemolti registry europei siano sempre piu’ preoccupati di proteggere il DNS dalle botnet… non da attacchi di Denial-of-Service, ma da tentativi di crawling (enumerazione, in termini tecnici) del DNS stesso. E i dati nel DNS sono pubblici per definizione!

Internet e’ a rischio?

Ieri mi sono imbattuto nelle 10 minacce alla rete, tradotto in Italiano da Web *.0? (qui la cronistoria, dal post originale in poi). Come primo impulso, mi sono chiesto perche’ mai dovremmo essere a rischio di censura o di eccessiva regolamentazione da parte dei governi? Il problema piu’ grande della rete, al momento, sono botnet e frodi informatiche, che ne minano alla base la reputazione.

Poche ore dopo mi sono trovato a parlare di phishing con un collega, come capire se un sito web nasconde una frode per raggirare gli utenti ignari. E chi, fra coloro che operano su Internet, dovrebbe combattere la diffusione di queste pratiche criminali.

Le conclusioni a cui siamo giunti sono un po’ prevedibili e un po’ sconfortanti (e diverse da quelle da cui sono partito). Ne elenco alcune in ordine sparso:

  • Tecnicamente sarebbe possibile, se non bloccare completamente, almeno arginare il fenomeno del phishing. Si potrebbe analizzare il contenuto della pagina incriminata e confrontarlo con quello del sito autentico. Si potrebbe cercare il sito nell blacklist di siti come spamhous o analizzare il traffico DNS per capire se tale sito fa parte di una qualche botnet.
  • La risposta potrebbe essere l’interdizione/chiusura temporanea del sito fino a che i proprietari non hanno abbiano fornito spiegazioni sulla sua attivita’.
  • Quello di cui stiamo parlando e’, a tutti gli effetti, un filtro.
  • Difficilmente gli ISP implementerebbero una soluzione di questo genere.
  • Se venisse fatto a livello di DNS, data la natura centralizzata e storicamente legata alle istituzioni di questo servizio, si parlerebbe di alto rischio di censura: :chi lo sa che tipo di traffico viene veramente bloccato?:

In pratica, il dubbio che una soluzione di questo tipo non possa essere implementata senza un cambiamento nella regolamentazione vigente e’ forte; e il rischio che possa essere interpretata come invasione della privacy degli utenti o, peggio ancora, come forma di censura, impedendo l’accesso a siti presunti malevoli, lo e’ ancora di piu’.

***
Alla fine (per tornare alla domanda del titolo), io non credo che Internet sia a rischio; penso, tuttavia, che mai come in questo momento sia necessaria un’estrema cautela da parte di quegli organi che ne determinano l’evoluzione e lo sviluppo, perche’ l’equilibrio fra sicurezza, liberta’ d’espressione e privacy degli utenti e’, per ora tutt’altro, che scontato.

Botnet in affitto

Una sintesi impeccabile a cura di Alberto Berretti sul proliferare delle botnet in Internet.

Le ragioni economiche e politiche che si nascondono dietro al fenomeno delle botnet e’ spiegato egregiamente nel post di Berretti. Qui voglio aggiungere solo una piccola considerazione su un fenomeno sorprendente, o forse inevitabile, osservato di recente: e cioe’, che esistono botnet in grado di attivare misure di autodifesa contro chi cerca di studiarne i meccanismi.

Se un ricercatore si collega a uno o piu’ bot per studiarne il comportamento si puo’ ritrovare a subire un Distributed Denial-of-Service, con decine di migliaia di messaggi provenienti dalla botnet che bloccano il suo computer e i server del suo service provider. In alcuni casi si parla anche di botnet in grado di rilevare altri tipi di “controlli esterni”: un tempo di risposta troppo lungo, ad esempio, puo’ indicare la presenza di una rete di controllo che filtra e analizza ogni comunicazione in entrata e uscita da un particolare pc. Il bot che lo controlla puo’, a questo punto, scatenare l’attacco e disattivarsi per evitare ogni futuro controllo (quest’ultima forma di auto-difesa, a dire il vero, mi e’ stata “raccontata” ma non sono riuscito a trovare nessun riferimento in Internet).