La guida definitiva per prevenire gli attacchi DDoS basati su DNS

Quando si tratta di DNS, Cricket Liu ha letteralmente scritto il libro. È coautore di tutte e cinque le edizioni del libro "DNS and BIND" di O'Reilly, che è generalmente considerato la guida definitiva su tutte le cose relative al Domain Name System. Cricket è attualmente Chief Infrastructure Officer presso Infoblox.

Il DNS è chiaramente un componente critico della rete di computer, ma a volte questi strumenti possono essere utilizzati per malfunzionamenti. Nel New Tech Forum di questa settimana, Cricket esamina il problema crescente degli attacchi DDoS basati su DNS e come affrontarli. - Paul Venezia

Attacchi DDoS basati su DNS: come funzionano e come fermarli

L'attacco DDoS (Distributed Denial-of-Service) basato su DNS è diventato uno degli attacchi distruttivi più comuni su Internet. Ma come lavorano? E cosa possiamo fare per difenderci da loro?

In questo articolo descriverò in che modo gli attacchi DDoS sfruttano e mirano all'infrastruttura DNS. Ti mostrerò anche cosa puoi fare per proteggere te stesso e gli altri.

La grande parodia

La generazione di un attacco DDoS utilizzando l'infrastruttura DNS è straordinariamente semplice: gli aggressori inviano query ai server dei nomi su Internet e quei server dei nomi restituiscono le risposte. Invece di inviare le query dai propri indirizzi IP, tuttavia, gli aggressori falsificano l'indirizzo del loro obiettivo, che potrebbe essere un server Web, un router, un altro server dei nomi o qualsiasi nodo su Internet.

Lo spoofing delle query DNS è particolarmente facile perché di solito vengono trasferite su UDP (il protocollo User Datagram senza connessione). L'invio di una query DNS da un indirizzo IP arbitrario è semplice e ha all'incirca lo stesso effetto della scrittura dell'indirizzo di ritorno di qualcun altro su una cartolina.

Tuttavia, le query di spoofing non sono sufficienti per inabilitare un obiettivo. Se le risposte a queste query non fossero più grandi delle query stesse, un utente malintenzionato farebbe altrettanto bene a inondare il bersaglio con query contraffatte. No, per massimizzare il danno al bersaglio, ogni query dovrebbe restituire una risposta molto ampia. Si scopre che è molto facile da istigare.

Dall'avvento di EDNS0, una serie di estensioni al DNS introdotte nel 1999, i messaggi DNS basati su UDP sono stati in grado di trasportare molti dati. Una risposta può essere grande quanto 4.096 byte. La maggior parte delle query, d'altra parte, ha una lunghezza inferiore a 100 byte.

Una volta era relativamente difficile trovare una risposta così ampia nello spazio dei nomi di Internet. Ma ora che le organizzazioni hanno iniziato a distribuire DNSSEC, le estensioni di sicurezza DNS, è molto più semplice. DNSSEC archivia le chiavi crittografiche e le firme digitali nei record nello spazio dei nomi. Questi sono positivamente enormi.

Puoi vedere un esempio di una risposta dalla zona isc.org che contiene record DNSSEC sul mio blog. La dimensione della risposta è di 4.077 byte, rispetto a una query di soli 44 byte.

Ora, immagina gli aggressori provenienti da Internet che inviano quella query falsificata dall'indirizzo IP del tuo server Web ai server dei nomi isc.org. Per ogni query di 44 byte, il server Web riceve una risposta di 4.077 byte, per un fattore di amplificazione di quasi 93 volte.

Facciamo un rapido calcolo per capire quanto potrebbe essere grave. Supponiamo che ogni utente malintenzionato disponga di una connessione a Internet a 1 Mbps relativamente modesta. Può inviare circa 2.840 query a 44 byte su quel collegamento al secondo. Questo flusso di query comporterebbe quasi 93 Mbps di risposte che raggiungono il tuo server Web. Ogni 11 aggressori rappresentano 1 Gbps.

Dove gli aggressori antisociali troverebbero 10 amici per aiutarli a compiere un attacco? In realtà, non ne hanno bisogno. Useranno una botnet di migliaia di computer.

L'effetto finale è devastante. Nel rapporto trimestrale globale sugli attacchi DDoS, Prolexic (una società di mitigazione degli attacchi DDoS) ha segnalato un recente attacco basato su DNS contro un cliente che ha superato i 167 Gbps. Prolexic ha inoltre riferito che la larghezza di banda media degli attacchi DDoS è aumentata del 718% a 48 Gbps in un solo trimestre .

Ma aspetta! Non è possibile modificare i server dei nomi di isc.org per riconoscere che vengono interrogati ripetutamente per gli stessi dati, dallo stesso indirizzo IP? Non potrebbero reprimere l'attacco?

Certamente possono. Ma i server dei nomi di isc.org non sono gli unici che un utente malintenzionato può utilizzare per amplificare il proprio traffico. Certo, ci sono altri server dei nomi autorevoli che l'attaccante potrebbe utilizzare, ma ancora peggio sono i server dei nomi ricorsivi aperti.

Un server dei nomi ricorsivo aperto è semplicemente un server dei nomi che elaborerà le query ricorsive da qualsiasi indirizzo IP. Posso inviargli quella query per i dati di isc.org e mi risponderà, e tu puoi fare lo stesso.

Non dovrebbero esserci molti server dei nomi ricorsivi aperti su Internet. La funzione di un server dei nomi ricorsivo è quella di cercare i dati nello spazio dei nomi di Internet per conto dei client DNS, come quelli sul tuo laptop o smartphone. Gli amministratori di rete che configurano server dei nomi ricorsivi (come il reparto IT) di solito li intendono per una particolare comunità (ad esempio, tu e i tuoi colleghi). A meno che non eseguano servizi come OpenDNS o Google Public DNS, non intendono che vengano utilizzati dai cittadini della Moldova. Così gli amministratori di spirito pubblico, attenti alla sicurezza e soprattutto competenti configurano i controlli di accesso sui loro server dei nomi ricorsivi per limitare il loro utilizzo ai sistemi autorizzati.

Detto questo, quanto potrebbe essere grande un problema aprire i server dei nomi ricorsivi? Bello grosso. L'Open Resolver Project ha raccolto un elenco di 33 milioni di server di nomi ricorsivi aperti. Gli hacker possono lanciare query contraffatte a quanti di questi desiderano per sputare i dati di isc.org sul tuo server Web, server dei nomi o router di confine finché non si blocca.

È così che funzionano gli attacchi DDoS basati su DNS. Per fortuna, abbiamo alcuni modi per combatterli.

Come resistere alla tempesta

Il primo ordine del giorno è strumentare la tua infrastruttura DNS, così saprai quando sei sotto attacco. Troppe organizzazioni non hanno idea di quale sia il loro carico di query, quindi non saprebbero mai se sono state attaccate in primo luogo.

Determinare il carico della query può essere semplice come utilizzare il supporto statistico integrato di BIND. Il server dei nomi BIND scaricherà i dati nel suo file delle statistiche quando esegui rndc stats,ad esempio, o in un intervallo di statistiche configurabile. È possibile esaminare le statistiche per la frequenza delle query, gli errori del socket e altre indicazioni di un attacco. Non preoccuparti se non sei ancora sicuro di come sarà un attacco: parte dell'obiettivo del monitoraggio del DNS è stabilire una linea di base, in modo da poter identificare ciò che è anormale.

Successivamente, dai un'occhiata alla tua infrastruttura per Internet. Non limitarti ai tuoi server dei nomi autorevoli esterni; esamina l'infrastruttura di switch e router, i firewall e le connessioni a Internet. Identifica ogni singolo punto di errore. Determina se puoi eliminarli facilmente (ed economicamente).

Se possibile, considera un'ampia distribuzione geografica dei tuoi server dei nomi autorevoli esterni. Questo aiuta a evitare i singoli punti di errore, ovviamente, ma aiuta anche quando non sei sotto attacco. Un name server ricorsivo che risolve un nome di dominio in una delle tue zone proverà a interrogare il name server autorevole più vicino ad esso, quindi la distribuzione geografica tenderà a fornire prestazioni migliori ai tuoi clienti e corrispondenti. Se i tuoi clienti sono raggruppati in determinate aree geografiche, prova a posizionare un server dei nomi autorevole vicino a loro per fornire le risposte più rapide.

Forse il modo più semplice per combattere gli attacchi DoS è l'overprovisioning della tua infrastruttura. La buona notizia è che il provisioning eccessivo dei server dei nomi non è necessariamente costoso; un server dei nomi capace può gestire decine o addirittura centinaia di migliaia di query al secondo. Non sei sicuro della capacità dei tuoi server dei nomi? È possibile utilizzare strumenti di query come dnsperf per testare le prestazioni dei server dei nomi, preferibilmente utilizzando una piattaforma di test simile ai server dei nomi di produzione in un laboratorio piuttosto che i server di produzione stessi.

Decidere quanto eseguire l'overprovisioning dei tuoi server dei nomi è soggettivo: quanto vale la tua presenza online? Ci sono altri componenti della tua infrastruttura con connessione a Internet che non funzioneranno prima dei server dei nomi? Ovviamente, è sconsiderato spendere soldi per costruire un'infrastruttura DNS di prima classe dietro un router di confine o un firewall che fallirà ben prima che i server dei nomi si rompano.

Se il denaro non è un problema, potrebbe essere utile sapere che gli attacchi DDoS all'avanguardia contro l'infrastruttura DNS possono superare i 100 Gbps.

L'uso di Anycast può anche aiutare a resistere a un attacco DDoS. Anycast è una tecnica che consente a più server di condividere un singolo indirizzo IP e funziona particolarmente bene con il DNS. In effetti, i server dei nomi root di Internet hanno utilizzato Anycast per anni per fornire i dati della zona root in tutto il mondo, consentendo comunque all'elenco di root di adattarsi a un singolo messaggio DNS basato su UDP.

Per distribuire Anycast, gli host che supportano i tuoi server dei nomi dovranno eseguire un protocollo di routing dinamico, come OSPF o BGP. Il processo di instradamento annuncia ai router vicini un percorso verso un nuovo indirizzo IP virtuale su cui ascolta il tuo server dei nomi. Il processo di routing deve anche essere abbastanza intelligente da interrompere la pubblicità di tale route se il server dei nomi locale smette di rispondere. Puoi incollare il tuo demone di instradamento allo stato di salute del tuo server dei nomi usando il codice di tua costruzione, oppure puoi acquistare un prodotto che si prende cura di questo per te. NIOS di Infoblox, non a caso, include il supporto Anycast.

In che modo Anycast si difende dagli attacchi DDoS? Supponiamo che tu abbia sei server dei nomi esterni in due gruppi Anycast (ovvero, tre condividono un indirizzo IP Anycast e tre condividono un altro). Ogni gruppo contiene un membro negli Stati Uniti, uno in Europa e uno in Asia. Un host che esegue un attacco DDoS contro di te può inviare traffico a, e quindi attaccare, solo un membro di entrambi i gruppi da qualsiasi punto su Internet alla volta. A meno che gli aggressori non riescano a ottenere traffico sufficiente dal Nord America, dall'Europa e dall'Asia contemporaneamente per sommergere la tua infrastruttura, non avranno successo.

Infine, c'è un modo per sfruttare l'ampia distribuzione geografica e Anycast allo stesso tempo, senza un esborso di capitale significativo: utilizzare un provider DNS basato su cloud. Aziende come Dyn e Neustar gestiscono i propri server dei nomi Anycast nei data center di tutto il mondo. Li paghi per ospitare le tue zone e rispondere alle domande sui tuoi dati. E puoi continuare a mantenere il controllo diretto sui dati della tua zona chiedendo a un provider di configurare i suoi server dei nomi come secondari per le tue zone, caricando i dati da un server dei nomi principale che designi e gestisci internamente. Assicurati solo di eseguire il master nascosto (ovvero, senza alcun record NS che punta ad esso), o corri il rischio che un utente malintenzionato lo prenda di mira come un singolo punto di errore.

Una parola di cautela quando si utilizzano provider DNS basati su cloud: la maggior parte ti addebita almeno in parte in base al numero di query che i loro server dei nomi ricevono per i dati nelle tue zone. In un attacco DDoS, tali query potrebbero aumentare notevolmente (completamente al di fuori del tuo controllo e per niente a tuo vantaggio), quindi assicurati che abbiano una disposizione per affrontare gli attacchi DDoS senza farti carico del costo del traffico.

Come evitare di diventare complice degli attacchi DDoS

Ora sai come configurare la tua infrastruttura DNS per resistere a un attacco DDoS. Tuttavia, è quasi altrettanto importante assicurarsi di non essere complici di un attacco DDoS contro qualcun altro.

Ricordi la descrizione di come i server DNS possono amplificare il traffico? Gli aggressori possono utilizzare sia server dei nomi ricorsivi aperti che server dei nomi autorevoli come amplificatori, inviando query contraffatte che fanno sì che i server dei nomi inviino risposte più di 100 volte più grandi della query a bersagli arbitrari su Internet. Ovviamente non vuoi essere il bersaglio di un simile attacco, ma non vuoi nemmeno essere un complice. L'attacco utilizza le risorse dei server dei nomi e la larghezza di banda. Se l'obiettivo adotta misure per bloccare il traffico dal tuo server dei nomi alla sua rete, al termine dell'attacco, potrebbe non essere in grado di risolvere i nomi di dominio nelle tue zone.

Se esegui un server dei nomi ricorsivo aperto, la soluzione è semplice: non farlo. Ci sono pochissime organizzazioni che hanno una giustificazione per eseguire un server dei nomi aperto a query ricorsive. Google Public DNS e OpenDNS sono due che mi vengono in mente, ma se stai leggendo questo, immagino che probabilmente non lo sei. Il resto di noi dovrebbe applicare i controlli di accesso ai nostri server dei nomi ricorsivi per assicurarsi che solo gli interroganti autorizzati li utilizzino. Ciò probabilmente significa limitare le query DNS agli indirizzi IP sulle nostre reti interne, il che è facile da eseguire su qualsiasi implementazione di server dei nomi degna di questo nome. (Il Microsoft DNS Server non supporta i controlli di accesso basati sull'indirizzo IP sulle query. Leggi quello che vuoi in questo.)

Ma cosa succede se esegui un server dei nomi autorevole? Ovviamente, non puoi limitare gli indirizzi IP da cui accetti le query - o comunque non molto (potresti negare le query da indirizzi IP ovviamente fasulli, come gli indirizzi RFC 1918). Ma puoi limitare le risposte.

Due "cappelli bianchi" Internet di lunga data, Paul Vixie e Vernon Schryver, hanno realizzato attacchi DDoS che utilizzano server dei nomi autorevoli per l'amplificazione che mostrano determinati modelli di query. In particolare, gli aggressori inviano ripetutamente ai server dei nomi la stessa query dallo stesso indirizzo IP contraffatto (o blocco di indirizzi), cercando la massima amplificazione. Nessun server dei nomi ricorsivo ben educato lo farebbe. Avrebbe memorizzato la risposta nella cache e non avrebbe chiesto di nuovo fino a quando non fosse trascorso il tempo di vita dei record nella risposta.