Server DNS saya mendorong 20mbps, mengapa?

22

Saya menjalankan server DNS di EC2, dan kemarin mendorong sekitar 20mbps ketika saya memeriksa dasbor penagihan saya dan menemukan 1,86 TB data yang digunakan bulan ini. Itu tagihan besar untuk lab proyek kecil saya. Saya tidak pernah melihat penurunan kinerja dan tidak repot-repot untuk mengatur ambang lalu lintas sebelumnya, tetapi saya miliki sekarang karena ini telah biaya saya $ 200 + dalam biaya bandwidth.

Tampaknya seseorang menggunakan server DNS saya sebagai bagian dari serangan amplifikasi, namun saya bingung bagaimana caranya.

Konfigurasi di bawah.

// 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; };
};

Dengan konfigurasi ini, saya TIDAK boleh menjawab pertanyaan untuk zona saya tidak host secara lokal kan? Server ini adalah SOA untuk beberapa domain, tetapi tidak digunakan untuk mencari apa pun oleh server saya yang lain (semua orang memutuskan menentang OpenDNS atau Google). Arahan apa yang saya miliki salah di sini, atau saya lupa? Log saya (63MB +) penuh dengan ini:

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
Russell Anthony
sumber
9
Ini tidak menjawab pertanyaan Anda, tetapi Anda harus mengatur peringatan tagihan docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/…
Tim
Apakah dapat diterima bagi Anda untuk memaksakan mundur ke TCP untuk semua klien tanpa dukungan RFC 7873?
kasperd
1
pembatasan tingkat dalam BIND
Rui F Ribeiro
@RuiFRibeiro Tingkat yang membatasi server DNS yang otoritatif dapat bermanfaat. Tetapi pembatasan tingkat itu sendiri dapat menjadi titik lemah yang dapat dieksploitasi dalam serangan DoS. Jika penyerang membanjiri sebuah kursor dengan kueri untuk domain yang dihosting di server otoritatif dengan pembatasan tingkat, pengguna yang sah dari kursor itu mungkin tidak lagi dapat menyelesaikan catatan dalam domain yang diserang. Serangan itu dapat dikurangi dengan penggunaan Agresif NSEC / NSEC3 yang tidak banyak digunakan.
kasperd

Jawaban:

19

Bahkan jika server Anda diatur untuk hanya menjawab pertanyaan otoritatif seperti milik Anda, masih memungkinkan untuk digunakan untuk serangan amplifikasi - ANYkueri terhadap akar zona dapat memicu respons UDP yang cukup berat, karena akar zona cenderung memiliki sejumlah catatan, terutama dengan SPF / DKIM / DNSSEC.

Ini kemungkinan yang terjadi pada sistem Anda - gunakan tcpdumpuntuk konfirmasi. Jika mereka menggunakan catatan otoritatif Anda dalam serangan amplifikasi, opsi terbaik Anda adalah dengan hanya pindah ke IP baru dan berharap mereka tidak mengikuti, mengubah catatan root zona Anda untuk membuatnya menjadi vektor amplifikasi yang kurang efektif, atau mengimplementasikan pembatasan tingkat respons (jika BIND Anda mendukungnya).

Shane Madden
sumber
Mereka tidak menanyakan zona saya ... bukankah seharusnya server saya menjatuhkan ini alih-alih menjawab sama sekali?
Russell Anthony
4
@RussellAnthony Untuk entri log yang Anda lihat, ya, saya percaya itu menjatuhkan mereka - tetapi, untuk lalu lintas serangan yang sukses, tidak ada entri log yang akan dibuat, jadi dalam hal log penggunaan bandwidth tidak terlihat. Jika serangan masih terjadi (masih mendapatkan entri log baru?) Saya yakin ada banyak ANYpertanyaan yang berhasil di samping yang gagal ini.
Shane Madden
2
Menambahkan rate-limit { responses-per-second 1; };dan tampaknya telah menurunkan sedikit lalu lintas. Aku tidak sadar kalau RRL bisa dari dalam dirinya sendiri.
Russell Anthony
1
Jika mereka memang mengirim pertanyaan untuk catatan otoritatif itu berarti mereka harus tahu nama domain. Dalam hal ini, tidak mungkin pindah ke IP baru akan membantu karena mereka akan dapat menemukan alamat IP secepat pengguna yang sah.
kasperd
6
Pastikan saja bahwa batasan tingkat Anda tidak berubah menjadi vektor serangan DoS: jika penyerang melelahkan batas respons, cache yang sah (seperti OpenDNS dan google) mungkin gagal menyelesaikan nama Anda juga.
Jonas Schäfer