Che cos'è un risolutore DNS aperto e come posso proteggere il mio server dall'abuso degli hacker?


15

Non ho il background più forte nella sicurezza dei computer, ma ieri uno dei miei server aziendali è stato chiuso dal nostro host.

È un server a cui è stato assegnato un IP pubblico in cui ospito diverse applicazioni di servizi Web, inclusi siti Web e API. Mi è stato detto che il mio server "sta eseguendo un resolver DNS aperto che viene utilizzato per inoltrare l'attacco denial of service a un'entità esterna".

Cosa significa questo? Come funziona questo attacco? E come posso proteggere il mio sistema dall'abuso in questo modo?

Nel mio caso specifico, il server in questione si trova su Windows Server 2012 e serve DNS per un dominio Active Directory.


Se ci fai sapere quale server DNS usi, qualcuno probabilmente può dirti con precisione quale configurazione devi impostare e in che modo. Senza queste informazioni, ho semplicemente indovinato BIND e tutti gli spazi degli indirizzi IP privati, perché BIND è il server DNS più comune e gli spazi degli indirizzi privati ​​sono sicuri. Probabilmente vorrai consentire le richieste ricorsive anche dai tuoi blocchi di indirizzi esterni, se applicabile.
HopelessN00b,

@ HopelessN00b Grazie, la tua risposta è stata abbastanza utile. Non sto usando BIND (anche il mio host supponeva che lo fossi e mi ha fornito alcuni comandi per l'esecuzione); Ho un server DNS impostato come ruolo in IIS. È interessante, non ho configurato manualmente un server DNS e non sono sicuro di aver capito bene perché ne ho bisogno. Cosa si rompe se viene disabilitato?
JSideris,

Uh, non disabilitare il DNS in un ambiente Windows. È probabile che rompa Active Directory. Fammi sapere quale versione di Windows Server e posso (probabilmente) modificare in alcuni screenshot per mostrarti come proteggere un box DNS di Windows.
HopelessN00b,

Tutto a posto. In realtà ho appena impostato active directory questo fine settimana. È lo standard Windows Server 2012.
JSideris,

Risposte:


28

Un "risolutore DNS aperto" è un server DNS che è disposto a risolvere ricerche DNS ricorsive per chiunque su Internet. È molto simile a un relay SMTP aperto, in quanto la semplice mancanza di autenticazione consente a terze parti dannose di propagare i propri payload utilizzando le apparecchiature non protette. Con i relè SMTP aperti, il problema è che inoltrano spam. Con i resolver DNS aperti, il problema è che consentono un attacco denial of service noto come Attacco di amplificazione DNS.

Il modo in cui funziona questo attacco è piuttosto semplice: poiché il tuo server risolverà query DNS ricorsive da chiunque, un utente malintenzionato può indurlo a partecipare a un DDoS inviando al tuo server una query DNS ricorsiva che restituirà una grande quantità di dati, molto più grande di il pacchetto di richiesta DNS originale. Effettuando lo spoofing (falso) del loro indirizzo IP, indirizzeranno questo traffico extra ai computer delle loro vittime anziché ai propri e, naturalmente, faranno il maggior numero di richieste il più velocemente possibile verso il tuo server e qualsiasi altro DNS aperto risolutori che possono trovare. In questo modo, qualcuno con una pipa relativamente piccola può "amplificare" un attacco di negazione del servizio usando tutta la larghezza di banda sulla propria pipa per dirigere un volume molto più grande di traffico sulle proprie vittime.

ArsTechnica ha pubblicato un articolo decente sul recente attacco DDoS all'amplificazione DNS contro Spamhaus e vale la pena di leggere rapidamente le basi (e una buona visione dell'amplificazione).

Il modo più semplice per proteggere il tuo sistema da abusi in questo modo è limitare gli indirizzi che il tuo server eseguirà ricerche ricorsive per le tue sottoreti locali. (Le specifiche dipendono dal server DNS che stai utilizzando, ovviamente).


Ad esempio, se stavo usando BIND 9 e volessi semplicemente impedire la ricorsione del DNS da indirizzi esterni, nella configurazione configuro il seguente codice:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

Quella riga di codice dice al mio server BIND di elaborare solo richieste DNS ricorsive per l'indirizzo di loopback locale (che immagino di poter / impostare sul blocco di loopback locale, l'intero / 8) e sui 3 spazi di indirizzi IPv4 privati.


Per Windows Server 2012, che dici di utilizzare, hai le seguenti opzioni.

1. Separare il server DNS dal server IIS.

  • Almeno in un mondo perfetto, non c'è motivo per cui è necessario eseguire DNS sullo stesso box di IIS.
    • Metti DNS su una scatola interna che non è NAT, quindi il mondo esterno non può accedervi e lascia che IIS risieda sulla scatola rivolta verso l'esterno a cui può accedere il resto del mondo. È possibile utilizzare le regole dual homing o firewall per consentire in modo selettivo l'accesso al server DNS dal server IIS.

2. Bloccare le richieste DNS esterne con un firewall, ad esempio il firewall di Windows incorporato.

  • Con mia sorpresa, il DNS di Windows non ti consente di limitare gli indirizzi ai quali sono onorate le richieste DNS ricorsive, quindi questo in realtà è il metodo raccomandato da Microsoft.
  • inserisci qui la descrizione dell'immagine
    • Seleziona le regole DNS (TCP e UDP), vai alla Remote IP addresssezione e aggiungi le sottoreti in uso sulla tua LAN, così come tutti gli indirizzi IP rivolti al pubblico dei server che hanno bisogno di accedere ad Active Directory. Come nell'esempio BIND, gli spazi degli indirizzi privati ​​IPv4 sono 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16e 172.16.0.0/12.

3. Disabilitare la ricorsione .

  • Onestamente non sono sicuro dell'effetto che questo avrà sul tuo ambiente, dal momento che non hai davvero dichiarato come DNS e AD sono configurati nel tuo ambiente e, di conseguenza, è l'ultima opzione.
  • inserisci qui la descrizione dell'immagine
    1. Apri DNS Manager.
    2. Nell'albero della console, fare clic con il pulsante destro del mouse sul server DNS applicabile, quindi fare clic su Proprietà.
    3. Dove?
    4. DNS / server DNS applicabile
    5. Fai clic sulla scheda Avanzate.
    6. Nelle opzioni del server selezionare la casella di controllo Disabilita ricorsione e quindi fare clic su OK.
      • Dato che disponiamo di un ambiente a più foreste e utilizziamo forwarder condizionali affinché funzioni, non selezionerò quella casella. Potrebbe essere qualcosa da considerare anche per te.

Risposta eccellente!
Fred the Magic Wonder Dog,

Soluzione perfetta e ben documentata :).
JSideris,

2
In che modo quindi 8.8.8.8 o 1.1.1.1 possono impedirsi di essere risolutori aperti?
LinuxBabe
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.