Le tecniche DDoS di amplificazione su TCP non sono più solo speculazioni

0

Abbiamo parlato piuttosto spesso degli attacchi DDoS (Distribuited Denial of Service), ovvero attacchi mirati ad un particolare soggetto con l’intenzione di sovraccaricare di traffico e richieste così tanto da costringerlo a non fornire più alcun servizio (Denial of Service), usando molti server per inviare le richieste maligne (Distribuited).

Una delle tecniche usate è sicuramente quella dell’amplificazione dell’attacco (il cui meccanismo abbiamo descritto più dettagliatamente circa un anno fa): invece di inviare il traffico direttamente all’obbiettivo, lo si invia ad un altro server che genera una risposta molto più grossa. Se si riesce a far passare l’obbiettivo stesso come richiedente, l’attacco avrà un’efficacia superiore, talvolta enormemente superiore. Infatti, vi abbiamo raccontato di come memcached avesse un moltiplicatore di 50.000.

La tecnica di amplificazione può avere successo solo se l’attaccante riesce a farsi passare per la vittima, cosa facile per le comunicazioni in UDP, ma ritenuta (pressoché) impossibile per TCP, perché presente il 3-way handshake: la connessione si definisce stabilita solo dopo una risposta del server ed un’ulteriore conferma del client.

Ad agosto un team di ricercatori ha pubblicato un articolo riguardo la possibilità di amplificazione con TCP, sfruttando delle middlebox: server o applicazioni che sono tra la rete pubblica e l’obbiettivo.
Esempi sono i proxy, i firewall e i WAF, ovvero quanto usato di solito per proteggere le reti, o in generale implementare qualche tipo di filtro. E infatti, la tecnica descritta nell’articolo funziona solo per comunicazioni HTTP, con filtri di tipo proxy.

Cominciamo col dire che il problema nasce da una applicazione volutamente sbagliata del protocollo TCP. Quindi in qualche modo è limitato solo ad una frazione degli apparati esposti su Internet, ma comunque un numero molto rilevante: 100.000 indirizzi sfruttabili, almeno.
Il protocollo TCP non è applicato del tutto perché questi filtri posso avere visibilità solo su una parte della comunicazione – proprio come per UDP. Pertanto, se qualcuno dichiara un indirizzo del mittente falso, gli apparati, non avendo modo di verificare, si fidano.
La mancata applicazione porta ad un altro effetto: se l’attaccante, oltre a usare un indirizzo falso, continua con la comunicazione come se la connessione fosse già stata stabilita (la conferma di cui sopra), per il filtro la connessione è buona – e quindi da controllare.

A questo punto l’attaccante può fare una richiesta che il filtro ha il dovere di intercettare, cosa che fa. Il filtro, a questo punto, risponde, tipicamente con una pagina di errore in cui notifica il suo intervento, che manda al mittente: l’obbiettivo dell’attacco. Ed ecco che con qualche pacchetto TCP l’attaccante ha generato un traffico di molto superiore contro il proprio obbiettivo.

I ricercatori hanno anche stabilito che esistono middlebox configurate così male da permettere attacchi infiniti, identificando in particolare due casi:

  • routing loop, in cui il pacchetto che genera la risposta entra in un circolo tra altri dispositivi (senza decrementare il TTL), facendolo ripassare sempre da quella che produce il traffico;
immagine presa direttamente dall’articolo pubblicato
  • il loop con la vittima, in cui la middlebox produce del traffico ad ogni pacchetto, compreso il reset che dovrebbe chiudere la connessione.
immagine presa direttamente dall’articolo pubblicato

Quanto raccontato finora, però, era rimasto uno studio ipotetico fatto da un team di ricercatori, fino all’annuncio di martedì di Akamai. I dati riportati sull’attacco individuato non sono particolarmente grossi, ma segnano il primo esempio di uso della tecnica descritta.

La situazione è destinata a peggiorare: non solo i server sfruttati sono pochi (la lista dei 100.000 individuati dai ricercatori non è pubblica, appositamente), ma perché le contromisure per difendersi non sono molte: finché esisteranno le middlebox con configurazioni fuori standard, sfruttabili, esisterà la possibilità d’attacco.

Ho coltivato la mia passione per l’informatica fin da bambino, coi primi programmi BASIC. In età adulta mi sono avvicinato a Linux ed alla programmazione C, per poi interessarmi di reti. Infine, il mio hobby è diventato anche il mio lavoro.
Per me il modo migliore di imparare è fare, e per questo devo utilizzare le tecnologie che ritengo interessanti; a questo scopo, il mondo opensource offre gli strumenti perfetti.