Il mio server DNS sta spingendo 20 Mbps, perché?


22

Sto eseguendo un server DNS in EC2 e ieri ha spinto circa 20 Mbps quando ho controllato il mio pannello di fatturazione e questo mese ho trovato 1,86 TB di dati usati. Questo è un grosso conto per il mio piccolo laboratorio di progetto. Non ho mai notato un calo delle prestazioni e non mi sono mai preoccupato di impostare le soglie del traffico prima, ma ora da allora questo mi è costato $ 200 + in spese di larghezza di banda.

Sembra che qualcuno abbia usato il mio server DNS come parte di un attacco di amplificazione, tuttavia non so come.

La configurazione è sotto.

// BBB.BBB.BBB.BBB = ns2.mydomain.com ip address

options {
        listen-on port 53 { any; };
//      listen-on-v6 port 53 { ::1; };
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-transfer { BBB.BBB.BBB.BBB; };
        allow-query-cache { BBB.BBB.BBB.BBB; };
        allow-query { any; };
        allow-recursion { none; };

        empty-zones-enable no;
        forwarders { 8.8.8.8; 8.8.4.4; };

        fetch-glue no;
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

zone "mydomain.com" IN {
        type master;
        file "zones/mydomain.com";
        allow-transfer { BBB.BBB.BBB.BBB; localhost; };
};

Data questa configurazione, NON dovrei rispondere a nessuna domanda per le zone che non ospito localmente, giusto? Questo server è la SOA per alcuni domini, ma non viene utilizzato per cercare nulla dagli altri miei server (tutti risolvono contro OpenDNS o Google). Quale direttiva ho sbagliato qui, o sto dimenticando? I miei registri (63 MB +) sono pieni di questo:

client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 58.215.173.155#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 218.93.206.228#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 50.19.220.154#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied
client 123.207.161.124#4444: query (cache) 'cpsc.gov/ANY/IN' denied

9
Questo non risponde alla tua domanda, ma dovresti impostare avvisi di fatturazione docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/…
Tim

Sarebbe accettabile forzare il fallback su TCP per tutti i client senza il supporto RFC 7873?
Kasperd,

1
limite di velocità in BIND
Rui F Ribeiro,

@RuiFRibeiro Può essere utile limitare la velocità sui server DNS autorevoli. Ma la limitazione della velocità può essere essa stessa un punto debole che può essere sfruttato negli attacchi DoS. Se un utente malintenzionato inonda un ricursore con query per un dominio ospitato su un server autorevole con limitazione della velocità, gli utenti legittimi di quel ricorritore potrebbero non essere più in grado di risolvere i record nel dominio sotto attacco. Tale attacco può essere mitigato dall'uso aggressivo di NSEC / NSEC3 che non è ampiamente diffuso.
Kasperd,

Risposte:


19

Anche se il tuo server è impostato per rispondere solo a query autorevoli come le tue, è comunque possibile utilizzarlo per un attacco di amplificazione: le ANYquery contro la radice di una zona possono innescare una risposta UDP abbastanza pesante, poiché la radice della zona tende ad avere un numero di record, in particolare con SPF / DKIM / DNSSEC.

Questo è probabilmente ciò che sta accadendo sul tuo sistema: usa tcpdumpper confermare. Se stanno usando i tuoi record autorevoli in un attacco di amplificazione, le tue migliori opzioni saranno semplicemente quella di passare a un nuovo IP e sperare che non seguano, cambiare i tuoi record di root di zona per renderlo un vettore di amplificazione meno efficace o implementare limitazione della velocità di risposta (se il tuo BIND lo supporta).


Non stanno interrogando le mie zone però ... il mio server non dovrebbe lasciarle cadere invece di rispondere affatto?
Russell Anthony,

4
@RussellAnthony Per le voci del registro che vedi, sì, credo che le stia facendo cadere, ma, per un traffico di attacco riuscito, nessuna voce di registro verrebbe creata, quindi in termini di registri l'uso della larghezza di banda è invisibile. Se l'attacco è ancora in corso (stai ancora ricevendo nuove voci di registro?) Scommetto che ci sono un sacco di ANYdomande riuscite insieme a quelle fallite.
Shane Madden

2
Aggiunto rate-limit { responses-per-second 1; };e sembra aver lasciato cadere un bel po 'di traffico. Non sapevo che il RRL potesse legarsi dall'interno.
Russell Anthony,

1
Se stavano effettivamente inviando query per record autorevoli, significa che devono conoscere il nome di dominio. In tal caso, non è così probabile che il passaggio a un nuovo IP sia di aiuto in quanto sarebbero in grado di trovare il nuovo indirizzo IP più velocemente degli utenti legittimi.
Kasperd,

6
Assicurati solo che il tuo limite di velocità non si trasformi in un vettore di attacco DoS: se l'attaccante esaurisce il limite di risposta, anche le cache legittime (come OpenDNS e google) potrebbero non riuscire a risolvere il tuo nome.
Jonas Schäfer,
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.