Passa ai contenuti principali

Il grande attacco di questi giorni (e inginf non accessibile)

Qualche giorno fa uno studente mi ha inviato un mail chiedendomi chiarimenti su una notizia comparsa su Wired.it: L'attacco a Spamhaus che sta rallentando Internet Un'offensiva senza precedenti che potrebbe mettere in ginocchio tutta la rete.

Nei giorni successivi tutti i siti della zona inginf.units.it sono diventati irraggiungibili (problema risolto pochi minuti fa).

Il secondo fenomeno è stato una conseguenza del primo. Cerco di spiegare brevemente la faccenda in questo post. Se qualcuno avesse dubbi o curiosità mi chieda a lezione.

Premessa: l'articolo su Wired.it secondo me è incomprensibile dal punto di vista tecnico. Non si capisce minimamente cosa sia successo.

Per capire cosa sia successo, consiglio questo articolo:
Massive DDoS attack against anti-spam provider impacts millions of internet users

In brevissimo:
Una organizzazione A ha deciso di lanciare un attacco "Distributed Denial of Service" nei confronti di una organizzazione B. Denial of Service significa che A ha iniziato ad inondare B di un flusso di dati enorme, talmente grande da saturare le risorse di calcolo e/o di comunicazione di B. In pratica, B non fa altro che ricevere e scartare messaggi generati (indirettamente) da A. Distributed significa che l'attacco è stato generato da un insieme di calcolatori sparsi in giro per il mondo (e probabilmente partecipanti all'attacco all'insaputa dei rispettivi proprietari).

L'attacco si basa, in estrema sintesi, su due tecniche:

  1. Si invia una query DNS su UDP falsificando l'indirizzo mittente; l'indirizzo mittente (falso) è quello di uno dei nodi che si vogliono colpire (falsificare l'indirizzo mittente in UDP è banale; farlo in TCP, come abbiamo detto a lezione, è molto più difficile). L'attaccante cioè invia la query ed il nodo che si vuole colpire riceve la response, ad una query che non ha mai fatto. La dimensione di una DNS response è più grande della dimensione di una DNS query, diciamo di un fattore a (con a circa 10). In questo modo, un attaccante in grado di generare un flusso di K bit/sec ha un meccanismo di amplificazione automatico per generare a * K bit/sec.
  2. L'attaccante deve avere a disposizione una botnet, cioè migliaia o decine di migliaia di computer in grado di eseguire comandi scelti da lui. Normalmente all'insaputa del proprietario del computer. In pratica, ogni computer infettato da un "malware" rimane in attesa di comandi inviati dal creatore, o dal proprietario, del malware ed esegue quei comandi. Ad esempio, l'invio di query DNS come quelle indicate al punto precedente.
In altre parole, con il punto 2 si ottiene K molto grande. Con il punto 1 si moltiplica K per un fattore a. Se il prodotto a * K è sufficientemente grande allora il gioco è fatto.

Ovviamente le query DNS non possono essere inviate tutte allo stesso name server, altrimenti sarebbe saturato quel name server invece del bersaglio dell'attacco. Per questo motivo è necessario distribuire le query su un insieme di server DNS. A tale scopo è sufficiente identificare dei server DNS che accettano di effettuare risoluzione ricorsiva per qualsiasi client---i cosiddetti open resolvers.

Osservazione sul punto 1 e sugli open resolver: la faccenda è spiegata molto bene e molto brevemente in questo documento dello US-CERT:  DNS Amplification Attacks. Il documento spiega anche come configurare un name server affinché non funzioni da open resolver.

Osservazione sul punto 2. Le botnet si possono comprare, ad un prezzo dell'ordine dei pochi centesimi di euro per nodo.  Con poche decine di euro si acquistano cioè centinaia di calcolatori sui quali è stato installato un software a scelta, tipicamente controllabile da remoto e tipicamente all'insaputa del proprietario. Ovviamente in un mercato che non è legale.Informalmente si dice che un nodo "ha un virus". In realtà il nodo ha un malware (cioè sul nodo è installato un programma maligno); molti malware sono programmati per tentare di diffondersi il più possibile; il termine virus si riferisce a questa funzionalità dei malware. Quello delle botnet è un tema molto affascinante e molto complicato...ogni botnet ha il proprio protocollo C&C (command and control) che permette all'attaccante di inviare i comandi alle botnet senza essere localizzato; comandi autenticati, in modo che ogni bot esegua solo i comandi inviati dal proprio proprietario; comandi che non possono essere falsificati neanche quando i "buoni" entrano in possesso di un nodo della bot e possono analizzare sia il suo funzionamento sia il traffico con il rispettivo proprietario...

Anche se l'attacco di questi giorni era da una organizzazione A verso una organizzazione B, l'impatto è stato molto diffuso in quanto la dimensione dell'attacco è stata talmente elevata da causare sovraccarichi su molti "canali di comunicazione comuni", anche ad organizzazioni che non hanno nulla a che fare con A o con B.

Venerdi scorso molti enti di ricerca, tra i quali il nostro ateneo, hanno ricevuto una direttiva da parte del GARR (l'organizzazione che coordina gli accessi Internet degli enti di ricerca italiani) in cui imponevano di eliminare l'utilizzo degli open resolver, per contribuire a disinnescare l'attacco (da notare che si stima ci siano venti milioni di open resolver in giro per il mondo...). Il nostro ateneo ha quindi bloccato tutto il traffico in ingresso sulla porta 53 (e spero sia chiaro il motivo) a meno del traffico diretto verso le zone "sotto" units.it gestite da name server interni alla rete di ateneo.

Per un errore organizzativo, si erano dimenticati di permettere il traffico in ingresso verso la porta 53 del name server della nostra zona inginf.units.it, server che non è un open resolver....

Commenti

Popular Posts

"Ingegneria deve essere difficile"

Il ritaglio di giornale qui sotto ricorda uno degli eventi più non-trovo-un-aggettivo-appropriato del mio periodo di studente di Ingegneria a Pisa. Ricordo che una mattina iniziò a spargersi la voce "hanno murato la porta del dipartimento!".  Andammo subito a vedere ed arrivammo un pò prima dei giornalisti che scattarono questa foto. La porta era murata, intonacata, pitturata di bianco e sovrastata da una scritta "INGEGNERIA DEVE ESSERE DIFFICILE". Le "E" di "INGEGNERIA" erano scritte al contrario perché era una sorta di "marchio di fabbrica" della facoltà di Ingegneria di Pisa. L'aula più grande, quella in cui pressoché tutti gli studenti seguivano i corsi dei primi anni, aveva infatti alcuni bellissimi "affreschi scherzosi" che furono fatti nel corso delle proteste studentesche di qualche anno prima ed in cui la parola "Ingegneria" era appuntoi scritta in quel modo. Si era anche già sparsa la voce di cosa era ...

La PhD school più importante della mia vita

Mi è tornata in mente proprio in questi giorni che ho iniziato il corso di Cybersecurity , nel quale parlo più volte dei design principles proposti da Saltzer e Schroeder nel loro capolavoro del 1974 . Se potessi incontrare Mike Schroeder oggi gli esprimerei con grande entusiasmo la mia ammirazione per quel suo capolavoro, nonostante la mia veneranda età e nonostante non abbia più la passione per la tecnologia e la ricerca che avevo da giovane. La cosa curiosa è che Mike Schroeder l'ho incontrato proprio quando ero giovane ed entusiasta: era un docente di quella PhD school...solo che non sapevo nulla di cybersecurity e quindi non ero a conoscenza di quel suo capolavoro, nonostante lo avesse scritto quasi venti anni prima! Mea culpa, mea grandissima culpa. Lisboa 92 - An advanced course on distributed systems Sono stato studente di solo due PhD schools...il titolo di questo blog post è quindi un pò clickbait . Comunque, Lisboa 92 è stata davvero molto importante per me. Non tanto ...

Perché studiare Analisi Matematica???

Un mio caro amico mi ha scritto: ...sono con mia figlia che studia Analisi 1...A cosa serve, al giorno d'oggi, studiare Analisi (a parte sfoltire i ranghi degli aspiranti ingegneri)? Riporto la mia risposta di seguito, forse può "motivare" qualche altro studente. ... Per un ingegnere la matematica è fondamentale perché è un linguaggio ; ed è il linguaggio essenziale per trattare gli argomenti che dovrà affrontare come ingegnere; non sono importanti i contenuti specifici; è importante, anzi fondamentale, che riesca a capirli, ricostruirli etc. ad esempio, chi deve usare l'inglese, lo usa perché in un modo o nell'altro lo conosce; nessuno di noi ha usato esattamente le frasi o i dialoghi o le regole che ha incontrato negli esercizi di inglese o di tedesco; nella matematica è lo stesso; non sono importanti i limiti, le serie, i teoremi di cauchy o che so io; ma se uno non è in grado di capire quel linguaggio allora non sarà in grado di capire davvero quas...

Valutazioni della didattica

Da alcune settimane sono disponibili le valutazioni della didattica per lo scorso anno accademico, 2019-20. Il sito web è stato rinnovato radicalmente rispetto alla versione precedente. Secondo me, la società che lo gestisce è riuscita nell'impresa quasi impossibile di peggiorare il sito precedente. Chi ci capisce qualcosa nel nuovo sito è davvero bravo. Le valutazioni dei miei corsi sono sintetizzate nel mio sito personale . Qui ci sono i commenti degli studenti (per la prima volta ho deciso di non rendere pubblico un commento su Reti di Calcolatori che ritengo possa essere frainteso; ho comunque esposto e discusso questo commento con gli studenti di quest'anno). La "classifica" non è facile da comprendere perché le differenze di valutazione tra gli insegnamenti spesso sono minime ed il numero degli studenti varia molto tra insegnamenti diversi (io ne ho molti). Dedico molto tempo e molti sforzi alla didattica. Mi fa veramente piacere che i miei sforzi siano general...

Come si formula una domanda

Molto spesso gli studenti che devono fare una domanda generano una quantità elevatissima di parole che cercano di trasportare 4 concetti molto diversi tra loro: Domanda mirata a chiarire il dubbio Motivo per il quale è sorto il dubbio (ad esempio, slide ambigua o esperienza personale) Descrizione di uno scenario di esempio per chiarire la domanda Informazioni sullo scenario di esempio che sono del tutto inutili per la domanda L'effetto più frequente è che chi riceve la domanda non capisce o deve fare un grande sforzo per capire. Un effetto accessorio molto frequente è che chi formula la domanda non genera una "grande impressione" in chi la riceve. E' molto, molto, molto importante acquisire la capacità di distinguere questi concetti e di rifletterne la separazione in ciò che si dice o si scrive. Non è importante solo per il corso di reti, è importante sempre. In qualsiasi attività professionale. E' parte essenziale della capacità di esprimersi in modo c...