Quando si tratta di DNS, Cricket Liu ha letteralmente scritto il libro. È stato co-autore di tutte e cinque le edizioni del libro “DNS and BIND” di O’Reilly, che è generalmente considerato come la guida definitiva su tutto ciò che riguarda il Domain Name System. Cricket è attualmente chief infrastructure officer di Infoblox.
DNS è chiaramente una componente critica del networking dei computer, ma ci sono momenti in cui questi strumenti possono essere utilizzati per azioni illecite. Nel New Tech Forum di questa settimana, Cricket dà uno sguardo al crescente problema degli attacchi DDoS basati su DNS e come affrontarli. — Paul Venezia
Attacchi DDoS basati su DNS: Come funzionano e come fermarli
Il DNS-based DDoS (distributed denial-of-service attack) è diventato uno degli attacchi distruttivi più comuni su Internet. Ma come funzionano? E cosa possiamo fare per difenderci da loro?
In questo articolo, descriverò come gli attacchi DDoS sfruttano e prendono di mira l’infrastruttura DNS. Ti mostrerò anche cosa puoi fare per proteggere te stesso e gli altri.
Il grande spoof
Generare un attacco DDoS usando l’infrastruttura DNS è notevolmente semplice: Gli aggressori inviano query ai server di nomi su Internet, e questi server di nomi restituiscono le risposte. Invece di inviare le query dai propri indirizzi IP, però, gli aggressori falsificano l’indirizzo del loro obiettivo – che potrebbe essere un server web, un router, un altro server di nomi, o praticamente qualsiasi nodo su Internet.
Spostare le query DNS è particolarmente facile perché di solito sono trasportate su UDP (il protocollo User Datagram senza connessione). Inviare una query DNS da un indirizzo IP arbitrario è semplice e ha più o meno lo stesso effetto di scrivere l’indirizzo di ritorno di qualcun altro su una cartolina.
Truffare le query non è sufficiente per inabilitare un obiettivo, però. Se le risposte a quelle query non fossero più grandi delle query stesse, un attaccante farebbe altrettanto bene a inondare il bersaglio di query spoofate. No, per massimizzare il danno al bersaglio, ogni query dovrebbe restituire una risposta molto grande. Si scopre che è molto facile da istigare.
Dall’avvento di EDNS0, un insieme di estensioni al DNS introdotto nel 1999, i messaggi DNS basati su UDP sono stati in grado di trasportare molti dati. Una risposta può essere grande come 4.096 byte. La maggior parte delle query, d’altra parte, sono meno di 100 byte di lunghezza.
Una volta, era relativamente difficile trovare una risposta così grande nello spazio dei nomi di Internet. Ma ora che le organizzazioni hanno iniziato a distribuire il DNSSEC, le estensioni di sicurezza DNS, è molto più facile. Il DNSSEC memorizza le chiavi crittografiche e le firme digitali nei record nello spazio dei nomi. Questi sono decisamente enormi.
Sul mio blog potete vedere un esempio di una risposta dalla zona isc.org che contiene record DNSSEC. La dimensione della risposta è di 4.077 byte, rispetto a una query di soli 44 byte.
Ora, immaginatevi gli attaccanti di tutta Internet che inviano quella query spoofed dall’indirizzo IP del vostro server web ai server dei nomi isc.org. Per ogni query di 44 byte, il vostro 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 male potrebbe andare. Diciamo che ogni attaccante ha una connessione a Internet relativamente modesta di 1Mbps. Può inviare circa 2.840 query da 44 byte attraverso quel collegamento al secondo. Questo flusso di query risulterebbe in quasi 93Mbps di risposte che raggiungono il tuo server web. Ogni 11 attaccanti rappresentano 1Gbps.
Dove troverebbero gli attaccanti antisociali 10 amici per aiutarli a portare avanti un attacco? In realtà, non ne hanno bisogno. Useranno una botnet di migliaia di computer.
L’effetto finale è devastante. Nel loro rapporto trimestrale sugli attacchi DDoS globali, Prolexic (una società di mitigazione DDoS) ha riportato un recente attacco basato sul 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 per cento a 48Gbps in un solo trimestre.
Ma aspetta! I server dei nomi isc.org non potrebbero essere modificati per riconoscere che sono stati interrogati più e più volte per gli stessi dati, dallo stesso indirizzo IP? Non potrebbero soffocare l’attacco?
Certo che possono. Ma i server di nomi isc.org non sono gli unici che un attaccante può usare per amplificare il suo traffico. Certo, ci sono altri server di nomi autorevoli che l’attaccante potrebbe usare, ma ancora peggio sono i server di nomi ricorsivi aperti.
Un server di nomi ricorsivo aperto è semplicemente un server di nomi che elaborerà 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 name server ricorsivi aperti su Internet. La funzione di un server di nomi ricorsivo è quella di cercare i dati nello spazio dei nomi di Internet per conto dei client DNS, come quelli sul tuo portatile o smartphone. Gli amministratori di rete che impostano i server di nomi ricorsivi (come il tuo dipartimento IT) di solito li intendono per l’uso di una particolare comunità (per esempio, tu e i tuoi colleghi). A meno che non stiano eseguendo servizi come OpenDNS o Google Public DNS, non intendono farli usare ai cittadini della Moldavia. Così gli amministratori di spirito pubblico, attenti alla sicurezza e soprattutto competenti configurano controlli di accesso sui loro server di nomi ricorsivi per limitarne l’uso ai sistemi autorizzati.
In considerazione di ciò, quanto può essere grande il problema dei server di nomi ricorsivi aperti? Abbastanza grande. L’Open Resolver Project ha raccolto una lista di 33 milioni di server di nomi ricorsivi aperti. Gli hacker possono sparare query spoofed a quanti di questi vogliono per sputare dati isc.org al vostro server web, server di nomi o router di confine fino a quando non si blocca.
E’ così che funzionano gli attacchi DDoS basati sul DNS. Fortunatamente, abbiamo alcuni modi per combatterli.
Come resistere alla tempesta
Il primo ordine del giorno è strumentare la vostra infrastruttura DNS, in modo da sapere quando siete sotto attacco. Troppe organizzazioni non hanno idea di quale sia il loro carico di query, quindi non saprebbero mai se sono stati attaccati in primo luogo.
Determinare il vostro carico di query può essere semplice come usare il supporto integrato di statistiche di BIND. Il name server BIND farà il dump dei dati nel suo file di statistiche quando si esegue rndc stats, per esempio, o ad un intervallo di statistiche configurabile. Potete esaminare le statistiche per il tasso di query, errori di socket e altre indicazioni di un attacco. Non preoccupatevi se non siete ancora sicuri dell’aspetto di un attacco — parte dell’obiettivo del monitoraggio del DNS è quello di stabilire una linea di base, in modo da poter identificare ciò che è anormale.
Poi, date un’occhiata alla vostra infrastruttura rivolta a Internet. Non limitarti ai tuoi server di nomi autoritativi esterni; esamina la tua infrastruttura di switch e router, i tuoi firewall e le tue connessioni a Internet. Identificate ogni singolo punto di errore. Determinate se è possibile eliminarli facilmente (ed economicamente).
Se possibile, considerate un’ampia distribuzione geografica dei vostri server di nomi autoritativi esterni. Questo aiuta ad evitare singoli punti di fallimento, naturalmente, ma aiuta anche quando non siete sotto attacco. Un server di nomi ricorsivo che risolve un nome di dominio in una delle vostre zone cercherà di interrogare il server di nomi autoritativi più vicino ad esso, quindi la distribuzione geografica tenderà a fornire migliori prestazioni ai vostri clienti e corrispondenti. Se i vostri clienti sono raggruppati in determinate aree geografiche, cercate di posizionare un server di nomi autoritativi vicino a loro per fornire le risposte più rapide.
Forse il modo più semplice per combattere gli attacchi DoS è quello di sovraprovisionare la vostra infrastruttura. La buona notizia è che l’overprovisioning dei vostri name server non è necessariamente costoso; un name server capace può gestire decine o anche centinaia di migliaia di query al secondo. Non siete sicuri della capacità dei vostri name server? Potreste usare strumenti di query come dnsperf per testare le prestazioni dei vostri server di nomi – preferibilmente usando una piattaforma di test simile ai vostri server di nomi di produzione in un laboratorio piuttosto che i server di produzione stessi.
Decidere quanto overprovisionare i vostri server di nomi è soggettivo: Quanto vale la vostra presenza online? Ci sono altri componenti della vostra infrastruttura rivolta a Internet che falliranno prima dei name server? 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 vostri server dei nomi si rompano anche solo una goccia di sudore.
Se i soldi non sono un problema, potrebbe essere utile sapere che gli attacchi DDoS all’avanguardia contro l’infrastruttura DNS possono superare i 100Gbps.
Anche l’utilizzo di Anycast può aiutare a resistere a un attacco DDoS. Anycast è una tecnica che permette a più server di condividere un singolo indirizzo IP, e funziona particolarmente bene con il DNS. Infatti, i root name server di Internet hanno usato Anycast per anni per fornire i dati delle zone radice in tutto il mondo, consentendo comunque alla lista delle radici di entrare in un singolo messaggio DNS basato su UDP.
Per implementare Anycast, gli host che supportano i vostri name server dovranno eseguire un protocollo di routing dinamico, come OSPF o BGP. Il processo di routing pubblicizzerà ai suoi router vicini un percorso verso un nuovo indirizzo IP virtuale sul quale il vostro name server ascolterà. Il processo di routing deve anche essere abbastanza intelligente da smettere di pubblicizzare quel percorso se il name server locale smette di rispondere. Potete incollare il vostro demone di routing alla salute del vostro server dei nomi usando del codice di vostra costruzione, oppure potete comprare un prodotto che si occupi di questo per voi. NIOS di Infoblox, non a caso, include il supporto Anycast.
Come fa Anycast a difendere dagli attacchi DDoS? Bene, diciamo che avete sei server di nomi esterni in due gruppi Anycast (cioè tre che condividono un indirizzo IP Anycast e tre che ne condividono un altro). Ogni gruppo contiene un membro negli Stati Uniti, uno in Europa e uno in Asia. Un host che monta un attacco DDoS contro di voi può solo inviare traffico verso – e quindi attaccare – un solo membro di uno dei due gruppi da qualsiasi punto di Internet alla volta. A meno che gli attaccanti non riescano a generare abbastanza traffico dal Nord America, dall’Europa e dall’Asia simultaneamente per sommergere la vostra infrastruttura, non avranno successo.
Infine, c’è un modo per trarre vantaggio dall’ampia distribuzione geografica e da Anycast allo stesso tempo, senza un significativo esborso di capitale: Utilizzare un provider DNS basato sul cloud. Aziende come Dyn e Neustar gestiscono i propri server di nomi Anycast nei data center di tutto il mondo. Voi li pagate per ospitare le vostre zone e rispondere alle query per i vostri dati. E potete continuare a mantenere il controllo diretto sui vostri dati di zona chiedendo a un provider di configurare i suoi server di nomi come secondari per le vostre zone, caricando i dati da un server di nomi master che designate e gestite in casa. Basta essere sicuri di eseguire il master nascosto (cioè, senza record NS che puntano ad esso), o si corre il rischio che un aggressore lo prenda di mira come singolo punto di fallimento.
Una parola di cautela quando si utilizzano i provider DNS basati sul cloud: La maggior parte vi fattura almeno in parte in base al numero di query che i loro name server ricevono per i dati nelle vostre zone. In un attacco DDoS, queste query potrebbero aumentare drasticamente (completamente al di fuori del vostro controllo e per nulla a vostro vantaggio), quindi assicuratevi che abbiano una disposizione per affrontare gli attacchi DDoS senza farvi pagare il costo del traffico.
Come evitare di diventare complici degli attacchi DDoS
Ora sapete come configurare la vostra infrastruttura DNS per resistere a un attacco DDoS. È quasi altrettanto importante, però, assicurarsi di non essere complici in un attacco DDoS contro qualcun altro.
Ricordate la descrizione di come i server DNS possono amplificare il traffico? Gli attaccanti possono utilizzare sia i server di nomi ricorsivi aperti che i server di nomi autoritativi come amplificatori, inviando query spoofate che inducono i server di nomi a inviare risposte più di 100 volte più grandi della query a obiettivi arbitrari su Internet. Ora, ovviamente non volete essere l’obiettivo di un tale attacco, ma non volete nemmeno esserne complici. L’attacco utilizza le risorse dei vostri name server e la vostra larghezza di banda. Se l’obiettivo prende misure per bloccare il traffico dal vostro server dei nomi alla sua rete, allora dopo la fine dell’attacco, l’obiettivo potrebbe non essere in grado di risolvere i nomi di dominio nelle vostre zone.
Se si esegue un server dei nomi ricorsivo aperto, la soluzione è semplice: Non fatelo. Ci sono pochissime organizzazioni che hanno una giustificazione per eseguire un server di nomi aperto alle query ricorsive. Google Public DNS e OpenDNS sono due che mi vengono in mente, ma se state leggendo questo, immagino che probabilmente non siete loro. Il resto di noi dovrebbe applicare controlli di accesso ai nostri server di nomi ricorsivi per assicurarsi che solo i querelanti autorizzati li usino. Questo probabilmente significa limitare le query DNS agli indirizzi IP sulle nostre reti interne, il che è facile da fare su qualsiasi implementazione del server dei nomi che valga la pena. (Il server DNS di Microsoft non supporta controlli di accesso basati sugli indirizzi IP sulle query. Leggete quello che volete in questo.)
Ma cosa succede se si esegue un server dei nomi autoritativo? 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 potete limitare le risposte.
Due “cappelli bianchi” di Internet di lunga data, Paul Vixie e Vernon Schryver, hanno capito che gli attacchi DDoS che usano server di nomi autorevoli per l’amplificazione mostrano certi modelli di query. In particolare, gli attaccanti inviano ai name server la stessa query dallo stesso indirizzo IP spoofed (o blocco di indirizzi) più e più volte, cercando la massima amplificazione. Nessun server di nomi ricorsivo ben educato lo farebbe. Avrebbe messo in cache la risposta e non l’avrebbe chiesta di nuovo fino a quando il tempo di vita dei record nella risposta fosse trascorso.
Vixie e Schryver hanno ideato un meccanismo intelligente, chiamato Response Rate Limiting (RRL), che permette a un server di nomi autorevole di tenere traccia di quante volte ha inviato la stessa risposta allo stesso interrogante. Se questo tasso supera una soglia configurabile, il server dei nomi smetterà di inviare quella risposta al querelante per un periodo stabilito. Se il querelante smette di interrogare il server dei nomi autoritativo con la stessa domanda, il server dei nomi autoritativo smetterà di sopprimere quella risposta. Il risultato è che il server dei nomi autoritativi non invierà mai alcuna risposta a un querelante a un tasso superiore alla soglia, il che lo rende inutile in un attacco DDoS.
RRL è stato incorporato nei server dei nomi BIND nella versione 9.9.4, e alcune altre implementazioni di server dei nomi ora lo supportano, compresi NSD e Knot. Man mano che le persone aggiornano i loro server di nomi a versioni più recenti o a nuove implementazioni che supportano RRL, questo dovrebbe gradualmente rendere più difficile per gli attaccanti utilizzare l’infrastruttura DNS come amplificatore.
Spero che questa discussione vi abbia aiutato a capire come l’infrastruttura DNS sia presa di mira e sfruttata negli attacchi DDoS, e come potete resistere al meglio agli attacchi DDoS e assicurarvi che i vostri name server non partecipino, a vostra insaputa, a uno di essi.
New Tech Forum fornisce un mezzo per esplorare e discutere la tecnologia aziendale emergente in una profondità e ampiezza senza precedenti. La selezione è soggettiva, basata sulla nostra scelta delle tecnologie che riteniamo essere importanti e di maggior interesse per i lettori di InfoWorld. InfoWorld non accetta materiale di marketing per la pubblicazione e si riserva il diritto di modificare tutti i contenuti forniti. Inviare tutte le richieste a [email protected].
Questo articolo, “La guida definitiva per prevenire gli attacchi DDoS basati su DNS”, è stato originariamente pubblicato su InfoWorld.com. Per le ultime notizie sulla tecnologia aziendale, segui InfoWorld.com su Twitter.