DNS Amplification Attack

Il DNS (domain name system) ha una struttura ad albero ed è composto da diversi server delegati gerarchicamente a cui vengono assegnate diverse zone. I server possono essere autoritativi per una o più zone (primari e secondari), forwarder e ricorsivi. Questi ultimi sono chiamati così poiché utilizzano la ricorsione, ovvero il processo attraverso il quale un server di questo tipo, al momento della ricezione della richiesta di risoluzione di un nome, ripercorre le catene di deleghe partendo dalla zona radice;da qui, ottenendo il server di primo livello che lo gestisce, lo interroga; ricorsivamente interroga il server nel dominio di secondo livello ottenuto, fino alla risoluzione del nome desiderato. (FIGURA 1) Idealmente un server DNS (name server) ricorsivo dovrebbe accettare richieste (DNS query) solo da client autorizzati o locali, ma ciò nella stragrande maggioranza dei casi non accade, permettendo la loro interrogazione a qualsiasi client. Questi server vengono definiti “Open resolver” e nell’ambito della ShmooCon (2006) conference, Dan Kaminsky e Mike Schiffman ne hanno resi pubblici circa 580.000 dislocati su tutta la rete internet.

Per proseguire nell’esempio è necessario ricordare che:

L'User Datagram Protocol (UDP) è un protocollo di comunicazione utilizzato su internet, basato sull’invio e la ricezione di pacchetti.
Le Request for Comments (RFC), sono una raccolta contenente, standard di protocollo utilizzati su internet, rapporti e proposte.
In primo luogo bisogna definire l’EDNS (Extension Mecchanism for DNS - RFC 2671) come un’estensione del protocollo DNS la cui utilità è quella di permettere di specificare le dimensioni dei pacchetti UDP. In base alla RFC 1035 il limite di dimensione dei pacchetti UDP è 512 byte, ma sorge a volte la necessità di sforare questo limite avendo così la possibilità di trasferire pacchetti più grandi. A tale scopo, è necessario che al server DNS giunga una richiesta(query) al cui interno è contenuto un record OPT, dal quale il server estrapola informazioni sul livello di trasporto UDP, fra cui le dimensioni massime che ogni pacchetto può possedere e, ottimizzando lo spazio, modifica la risposta facendo in modo che essa contenga quanti più record di risorsa possibile. È importante specificare che si definisce un record OPT uno pseudo record poiché non contiene veri e propri dati DNS, bensì informazioni sul livello di comunicazione UDP.

Lo studio di questo attacco ha portato la consapevolezza che per la sua completa riuscita è necessario soddisfare due fondamentali precondizioni:

Un nome di dominio valido con record di risorsa di tipo SOA e TXT che supporti EDNS Una query personalizzata al cui interno sia contenuto l’indirizzo Ip della vittima a cui sarà successivamente destinata la risposta. Questa tecnica prende il nome di IP spoofing. Il primo punto sta alla base del meccanismo di amplificazione, il secondo si riferisce invece alla rifrazione dell’attacco. Il concetto di amplificazione ha base sul fatto che query (richieste) molto piccole possono generare risposte molto più grandi, ad esempio una query UDP di 60 byte può generare una risposta di 512, cioè 8.5 volte più grande della richiesta. Chiameremo l’amplificazione della risposta “fattore di amplificazione”. La rifrazione invece consiste nell’ip-spoofing che è il meccanismo attraverso il quale si dirotta la risposta verso un’altra destinazione prestabilita. Chi sferra quest’attacco solitamente si avvale di una rete di computer dislocati sulla rete internet (ad esempio una Botnet) utilizzata inconsapevolmente allo scopo d’inviare una moltitudine di richieste a diversi server DNS open resolver. Questo primo aspetto dell’amplificazione viene successivamente potenziato per mezzo di diverse query, precostruite manualmente, atte ad interrogare i diversi record di risorsa dei domini sfruttati. Ad esempio, s’ipotizzi di mandare una richiesta con indirizzo di risposta falsificato(spoofed query) ad un server DNS “open resolver” che attraverso lo pseudo-record OPT e sfruttando EDNS, specifichi dimensioni molto più grandi dei pacchetti UDP in risposta, ad esempio 4000 byte. Dal punto di vista dell’amplificazione si nota subito che la stessa query di 60 byte può amplificare la sua risposta fino a 4000 byte con un fattore di amplificazione pari a 66.7. Tale fattore è ulteriormente incrementabile attraverso la combinazione delle diverse risposte ottenute dall’interrogazione di record SOA, di TIPO A e TXT e in caso di frammentazione, cioè se sforando l’MTU(Maximum Transmission Unit= Massima unità trasmettibile) di un qualsiasi router che collega i server DNS “attaccanti” al bersaglio, i pacchetti vengono ridimensionati incrementandone il numero a discapito del bersaglio. Un’ultima precisazione: le operazioni che permettono l’attacco sopracitato si basano su abusi (come l’utilizzo improprio di EDNS) e vulnerabilità (come l’ip spoofing) del servizio DNS i cui server partecipano involontariamente all’attacco.

Categories: , Share

Leave a Reply