Panduan utama untuk mencegah serangan DDoS berasaskan DNS

Ketika datang ke DNS, Cricket Liu benar-benar menulis buku itu. Dia telah mengarang bersama semua lima edisi buku "DNS dan BIND" O'Reilly, yang secara umum dianggap sebagai panduan pasti mengenai semua perkara yang berkaitan dengan Sistem Nama Domain. Cricket kini adalah ketua pegawai infrastruktur di Infoblox.

DNS jelas merupakan komponen penting dalam rangkaian komputer, tetapi ada kalanya alat ini dapat digunakan untuk penyelewengan. Dalam Forum Teknologi Baru minggu ini, Cricket melihat masalah pertumbuhan serangan DDoS berasaskan DNS dan bagaimana menanganinya. - Paul Venezia

Serangan DDoS berasaskan DNS: Bagaimana ia berfungsi dan bagaimana menghentikannya

DDoS berasaskan DNS (serangan penolakan perkhidmatan yang diedarkan) telah menjadi salah satu serangan merosakkan yang paling biasa di Internet. Tetapi bagaimana ia berfungsi? Dan apa yang boleh kita lakukan untuk membela mereka?

Dalam artikel ini, saya akan menerangkan bagaimana DDoS menyerang eksploitasi dan sasaran infrastruktur DNS. Saya juga akan menunjukkan apa yang boleh anda lakukan untuk melindungi diri anda dan orang lain.

Spoof besar

Menghasilkan serangan DDoS menggunakan infrastruktur DNS sangat mudah: Penyerang menghantar pertanyaan ke pelayan nama di seluruh Internet, dan pelayan nama tersebut memberikan respons. Namun, alih-alih mengirim pertanyaan dari alamat IP mereka sendiri, penyerang menipu alamat sasaran mereka - yang boleh menjadi pelayan Web, penghala, pelayan nama lain, atau hampir semua nod di Internet.

Menipu pertanyaan DNS sangat mudah kerana biasanya dibawa melalui UDP (Protokol Datagram Pengguna tanpa sambungan). Menghantar pertanyaan DNS dari alamat IP sewenang-wenangnya semudah dan mempunyai kesan yang hampir sama dengan menulis alamat pengembalian orang lain pada kad pos.

Pertanyaan palsu adalah tidak cukup untuk melumpuhkan sasaran. Sekiranya tindak balas terhadap pertanyaan tersebut tidak lebih besar daripada pertanyaan itu sendiri, penyerang akan melakukan dengan baik untuk membanjiri sasaran dengan pertanyaan palsu. Tidak, untuk memaksimumkan kerusakan pada sasaran, setiap pertanyaan harus memberikan respons yang sangat besar. Ternyata sangat mudah dihasut.

Sejak munculnya EDNS0, satu set peluasan ke DNS yang diperkenalkan pada tahun 1999, mesej DNS berasaskan UDP telah mampu membawa banyak data. Respons boleh berjumlah 4.096 bait. Sebilangan besar pertanyaan, sebaliknya, panjangnya kurang daripada 100 bait.

Suatu ketika dahulu, agak sukar untuk mencari respons yang besar di ruang nama Internet. Tetapi sekarang bahawa organisasi telah mula menyebarkan DNSSEC, Sambungan Keselamatan DNS, lebih mudah. DNSSEC menyimpan kunci kriptografi dan tandatangan digital dalam rekod di ruang nama. Ini sangat besar.

Anda dapat melihat contoh tindak balas dari zon isc.org yang mengandungi rekod DNSSEC di blog saya. Ukuran respons adalah 4.077 bait, berbanding dengan pertanyaan hanya 44 bait.

Sekarang, penyerang gambar dari seluruh Internet menghantar pertanyaan palsu dari alamat IP pelayan Web anda ke pelayan nama isc.org. Untuk setiap pertanyaan 44-bait, pelayan Web anda menerima tindak balas 4,077-bait, dengan faktor penguat hampir 93 kali.

Mari buat pengiraan pantas untuk mengetahui seberapa buruk perkara ini. Katakan setiap penyerang mempunyai sambungan 1Mbps yang relatif sederhana ke Internet. Dia boleh menghantar kira-kira 2,840 pertanyaan 44-byte di pautan itu sesaat. Aliran pertanyaan ini akan menghasilkan hampir 93Mbps balasan sampai ke pelayan Web anda. Setiap 11 penyerang mewakili 1Gbps.

Di mana penyerang antisosial akan menemui 10 rakan untuk menolong mereka melakukan serangan? Sebenarnya, mereka tidak memerlukannya. Mereka akan menggunakan botnet beribu-ribu komputer.

Kesan utama adalah sangat dahsyat. Dalam Laporan Serangan DDoS global suku tahunan mereka, Prolexic (sebuah syarikat mitigasi DDoS) melaporkan serangan berdasarkan DNS baru-baru ini terhadap pelanggan yang mencapai 167Gbps. Prolexic selanjutnya melaporkan bahawa rata-rata lebar jalur serangan DDoS meningkat 718 peratus kepada 48Gbps dalam satu suku .

Tapi tunggu! Tidak boleh pelayan nama isc.org diubah untuk mengenali bahawa mereka ditanyakan berulang-ulang untuk data yang sama, dari alamat IP yang sama? Tidakkah mereka dapat melancarkan serangan?

Mereka pasti boleh. Tetapi pelayan nama isc.org bukan satu-satunya yang dapat digunakan penyerang untuk meningkatkan lalu lintasnya. Pasti, ada pelayan nama berwibawa lain yang dapat digunakan penyerang, tetapi yang lebih buruk lagi adalah pelayan nama rekursif terbuka.

Pelayan nama rekursif terbuka hanyalah pelayan nama yang akan memproses pertanyaan berulang dari mana-mana alamat IP. Saya boleh menghantarnya pertanyaan untuk data isc.org dan ia akan membalas saya, dan anda juga boleh melakukan perkara yang sama.

Tidak semestinya terdapat banyak pelayan nama rekursif terbuka di Internet. Fungsi pelayan nama rekursif adalah mencari data di ruang nama Internet bagi pihak klien DNS, seperti yang ada di komputer riba atau telefon pintar anda. Pentadbir rangkaian yang menubuhkan pelayan nama rekursif (seperti jabatan IT anda) biasanya bermaksud mereka digunakan oleh komuniti tertentu (misalnya, anda dan rakan pekerja anda). Kecuali mereka menjalankan perkhidmatan seperti OpenDNS atau Google Public DNS, mereka tidak bermaksud menggunakannya oleh warganegara Moldova. Oleh itu, pentadbir yang bersikap terbuka, berfikiran keselamatan, dan paling cekap mengkonfigurasi kawalan akses pada pelayan nama rekursif mereka untuk membatasi penggunaannya ke sistem yang dibenarkan.

Memandangkan itu, seberapa besar masalah boleh membuka pelayan nama rekursif? Cukup besar. Open Resolver Project telah mengumpulkan senarai 33 juta pelayan nama rekursif terbuka. Penggodam dapat mengaktifkan pertanyaan palsu pada seberapa banyak yang mereka suka untuk memuntahkan data isc.org di pelayan Web, pelayan nama atau penghala sempadan anda sehingga tersedak.

Begitulah cara serangan DDoS berasaskan DNS berfungsi. Syukurlah, kami mempunyai beberapa cara untuk memerangi mereka.

Cara mengharungi ribut

Urutan pertama perniagaan adalah menyediakan infrastruktur DNS anda, jadi anda akan tahu bila anda diserang. Terlalu banyak organisasi tidak tahu apa beban pertanyaan mereka, jadi mereka tidak akan tahu sama ada mereka diserang sejak awal.

Menentukan muatan pertanyaan anda semudah menggunakan sokongan statistik terbina dalam BIND. Pelayan nama BIND akan membuang data ke fail statistiknya semasa anda menjalankan statistik rndc,sebagai contoh, atau pada selang statistik yang boleh dikonfigurasi. Anda boleh memeriksa statistik kadar pertanyaan, kesalahan soket, dan petunjuk lain mengenai serangan. Jangan bimbang jika anda belum pasti seperti apa serangan - sebahagian daripada tujuan memantau DNS adalah membuat garis dasar, sehingga anda dapat mengenal pasti apa yang tidak normal.

Seterusnya, lihatlah infrastruktur yang menghadap Internet anda. Jangan hadkan diri anda kepada pelayan nama berwibawa luaran anda; periksa infrastruktur suis dan penghala anda, firewall anda, dan sambungan anda ke Internet. Kenal pasti satu titik kegagalan. Tentukan sama ada anda dapat menghapusnya dengan mudah (dan menjimatkan kos).

Sekiranya boleh, pertimbangkan sebaran geografi pelayan nama berwibawa luaran anda. Ini membantu mengelakkan satu titik kegagalan, tentu saja, tetapi juga membantu apabila anda tidak diserang. Pelayan nama rekursif yang menyelesaikan nama domain di salah satu zon anda akan cuba menanyakan pelayan nama berwibawa yang paling dekat dengannya, jadi pengedaran geografi cenderung memberikan prestasi yang lebih baik kepada pelanggan dan koresponden anda. Sekiranya pelanggan anda berkumpul di kawasan geografi tertentu, cuba letakkan pelayan nama yang berwibawa di dekat mereka untuk memberikan respons paling cepat.

Mungkin cara paling asas untuk memerangi serangan DoS adalah dengan terlalu banyak menyediakan infrastruktur anda. Berita baiknya ialah penyediaan pelayan nama anda secara berlebihan tidak semestinya mahal; pelayan nama yang berkebolehan dapat menangani puluhan bahkan ratusan ribu pertanyaan sesaat. Tidak pasti apakah kapasiti pelayan nama anda? Anda mungkin menggunakan alat pertanyaan seperti dnsperf untuk menguji prestasi pelayan nama anda - lebih baik menggunakan platform ujian yang serupa dengan pelayan nama pengeluaran anda di makmal dan bukannya pelayan pengeluaran itu sendiri.

Memutuskan berapa banyak pelayan nama anda yang terlalu tinggi adalah subjektif: Apakah nilai kehadiran dalam talian anda? Adakah komponen lain dari infrastruktur yang menghadap Internet anda akan gagal sebelum pelayan nama? Jelas sekali, sukar untuk membelanjakan wang untuk membina infrastruktur DNS kelas pertama di sebalik penghala sempadan atau firewall yang akan gagal sebelum pelayan nama anda berpeluh.

Sekiranya wang bukan objek, mungkin berguna untuk mengetahui bahawa serangan DDoS canggih terhadap infrastruktur DNS boleh melebihi 100Gbps.

Menggunakan Anycast juga dapat membantu menahan serangan DDoS. Anycast adalah teknik yang membolehkan beberapa pelayan berkongsi satu alamat IP, dan ia berfungsi dengan baik dengan DNS. Sebenarnya, pelayan nama root Internet telah menggunakan Anycast selama bertahun-tahun untuk menyediakan data zon akar di seluruh dunia sambil masih membenarkan senarai akar masuk ke dalam satu mesej DNS berasaskan UDP.

Untuk menggunakan Anycast, host yang menyokong pelayan nama anda perlu menjalankan protokol perutean dinamik, seperti OSPF atau BGP. Proses penghalaan akan mengiklankan kepada router tetangganya laluan ke alamat IP maya baru di mana pelayan nama anda mendengar. Proses penghalaan juga perlu cukup cerdas untuk menghentikan pengiklanan laluan tersebut sekiranya pelayan nama tempatan berhenti bertindak balas. Anda boleh melekatkan daemon penghala ke kesihatan pelayan nama anda menggunakan kod pembinaan anda sendiri - atau anda boleh membeli produk yang menjaganya untuk anda. NIOS Infoblox, bukan secara kebetulan, merangkumi sokongan Anycast.

Bagaimana Anycast bertahan daripada serangan DDoS? Baiklah, katakan anda mempunyai enam pelayan nama luaran dalam dua kumpulan Anycast (iaitu, tiga berkongsi satu alamat IP Anycast dan tiga berkongsi yang lain). Setiap kumpulan mengandungi satu anggota di Amerika Syarikat, satu di Eropah, dan satu di Asia. Host yang melakukan serangan DDoS terhadap anda hanya dapat menghantar lalu lintas ke - dan oleh itu hanya menyerang - satu anggota dari salah satu kumpulan dari mana-mana titik di Internet pada satu masa. Kecuali penyerang dapat memperoleh lalu lintas yang cukup banyak dari Amerika Utara, Eropah, dan Asia secara serentak untuk melanda infrastruktur anda, mereka tidak akan berjaya.

Akhirnya, ada cara untuk anda memanfaatkan pengedaran geografi yang luas dan Anycast pada masa yang sama, tanpa perbelanjaan modal yang besar: Gunakan penyedia DNS berasaskan awan. Syarikat seperti Dyn dan Neustar menjalankan pelayan nama Anycast sendiri di pusat data di seluruh dunia. Anda membayarnya untuk menjadi tuan rumah zon anda dan menjawab pertanyaan untuk data anda. Dan anda boleh terus mengekalkan kawalan langsung ke atas data zon anda dengan meminta penyedia untuk mengkonfigurasi pelayan namanya sebagai sekunder untuk zon anda, memuatkan data dari pelayan nama induk yang anda tetapkan dan uruskan secara dalaman. Pastikan anda menjalankan master yang disembunyikan (iaitu, tanpa catatan NS menunjuk ke arahnya), atau anda menghadapi risiko bahawa penyerang akan menargetkannya sebagai satu titik kegagalan.

Berhati-hatilah semasa menggunakan penyedia DNS berasaskan awan: Sebilangan besar menagih anda sekurang-kurangnya sebahagian berdasarkan jumlah pertanyaan yang diterima pelayan nama mereka untuk data di zon anda. Dalam serangan DDoS, pertanyaan tersebut mungkin meningkat secara mendadak (sepenuhnya di luar kawalan anda dan sama sekali tidak menguntungkan anda), jadi pastikan mereka mempunyai peruntukan untuk menangani serangan DDoS tanpa memberikan kos lalu lintas kepada anda.

Cara mengelakkan menjadi rakan dalam serangan DDoS

Sekarang anda tahu bagaimana mengkonfigurasi infrastruktur DNS anda untuk menentang serangan DDoS. Walaupun begitu penting untuk memastikan bahawa anda tidak terlibat dalam serangan DDoS terhadap orang lain.

Ingat keterangan bagaimana pelayan DNS dapat meningkatkan lalu lintas? Penyerang boleh menggunakan pelayan nama rekursif terbuka dan pelayan nama berwibawa sebagai penguat, menghantar pertanyaan palsu yang menyebabkan pelayan nama menghantar respons lebih dari 100 kali lebih besar daripada pertanyaan kepada sasaran sewenang-wenang di Internet. Sekarang, tentu saja anda tidak mahu menjadi sasaran serangan seperti itu, tetapi anda juga tidak mahu menjadi kaki tangan. Serangan itu menggunakan sumber pelayan nama anda dan juga lebar jalur anda. Sekiranya sasaran mengambil langkah-langkah untuk menyekat lalu lintas dari pelayan nama anda ke rangkaiannya, maka setelah serangan berakhir, sasaran mungkin tidak dapat menyelesaikan nama domain di zon anda.

Sekiranya anda menjalankan pelayan nama rekursif terbuka, penyelesaiannya mudah: Jangan. Terdapat sangat sedikit organisasi yang mempunyai alasan untuk menjalankan pelayan nama yang terbuka untuk pertanyaan berulang. Google Public DNS dan OpenDNS adalah dua yang terlintas di fikiran, tetapi jika anda membaca ini, saya rasa anda mungkin bukan mereka. Kita yang lain harus menggunakan kawalan akses ke pelayan nama rekursif kami untuk memastikan hanya pertanyaan yang sah yang menggunakannya. Itu mungkin bermaksud mengehadkan pertanyaan DNS ke alamat IP di rangkaian dalaman kami, yang mudah dilakukan pada sebarang pelaksanaan pelayan nama yang bernilai. (Pelayan DNS Microsoft tidak menyokong kawalan akses berasaskan alamat IP pada pertanyaan. Baca apa yang anda mahu.)

Tetapi bagaimana jika anda menjalankan pelayan nama yang berwibawa? Jelas sekali, anda tidak boleh mengehadkan alamat IP dari mana anda akan menerima pertanyaan - atau tidak, bagaimanapun (anda mungkin menolak pertanyaan dari alamat IP yang jelas palsu, seperti alamat RFC 1918). Tetapi anda boleh menghadkan tindak balas.

Dua "topi putih" Internet lama, Paul Vixie dan Vernon Schryver, menyedari serangan DDoS yang menggunakan pelayan nama yang berwibawa untuk penguatan menunjukkan corak pertanyaan tertentu. Khususnya, penyerang menghantar pelayan nama pertanyaan yang sama dari alamat IP palsu (atau blok alamat) berulang-ulang, mencari penguatan maksimum. Tidak ada pelayan nama rekursif yang berkelakuan baik yang akan melakukannya. Ini akan memberikan jawapan yang tidak tepat dan tidak diminta lagi sehingga masa untuk mengetahui catatan dalam respons tersebut telah berlalu.