DNS keshiga soxta ma'lumotlarni kiritish uchun yangi SAD DNS hujumi

Riversayddagi Kaliforniya universiteti tadqiqotchilari jamoasi CVE-2021-20322 zaifligini blokirovka qilish uchun o‘tgan yili qo‘shilgan himoya vositalariga qaramay ishlaydigan SAD DNS hujumining (CVE-2020-25705) yangi variantini chop etdi. Yangi usul odatda o'tgan yilgi zaiflikka o'xshaydi va faqat faol UDP portlarini tekshirish uchun boshqa turdagi ICMP paketlaridan foydalanishda farqlanadi. Taklif etilayotgan hujum DNS server keshiga xayoliy ma'lumotlarni almashtirish imkonini beradi, bu keshdagi ixtiyoriy domenning IP manzilini almashtirish va domenga so'rovlarni tajovuzkor serveriga yo'naltirish uchun ishlatilishi mumkin.

Taklif etilgan usul faqat Linux tarmog'i stekida ishlaydi, chunki u Linuxda ICMP paketlarni qayta ishlash mexanizmining o'ziga xos xususiyatlariga bog'liq bo'lib, u ma'lumotlarning oqib chiqishi manbai bo'lib xizmat qiladi, bu esa server tomonidan ma'lumotlarni yuborish uchun foydalaniladigan UDP port raqamini aniqlashni osonlashtiradi. tashqi so'rov. Avgust oyi oxirida Linux yadrosida ma'lumotlarning oqib chiqishini bloklaydigan o'zgarishlar qabul qilingan (tuzatish yadroning 5.15 va sentabr oyidagi yangilanishlarida yadroning LTS filiallariga kiritilgan). Tuzatish Jenkins Hash o'rniga tarmoq keshlarida SipHash xesh algoritmidan foydalanishga o'tishdan iborat. Tarqatishlardagi zaiflikni tuzatish holatini quyidagi sahifalarda baholash mumkin: Debian, RHEL, Fedora, SUSE, Ubuntu.

Muammoni aniqlagan tadqiqotchilarning fikriga ko'ra, tarmoqdagi ochiq hal qiluvchilarning taxminan 38%, jumladan OpenDNS va Quad9 (9.9.9.9) kabi mashhur DNS xizmatlari zaif. Server dasturiy ta'minotiga kelsak, Linux serverida BIND, Unbound va dnsmasq kabi paketlar yordamida hujum amalga oshirilishi mumkin. Muammo Windows va BSD tizimlarida ishlaydigan DNS serverlarida ko'rinmaydi. Hujumni muvaffaqiyatli amalga oshirish uchun IP-spoofingdan foydalanish kerak, ya'ni. tajovuzkorning internet-provayderi soxta manba IP manzilli paketlarni bloklamasligi talab qilinadi.

Eslatib o'tamiz, SAD DNS hujumi 2008 yilda Dan Kaminskiy tomonidan taklif qilingan klassik DNS keshini zaharlash usulini bloklash uchun DNS serverlariga qo'shilgan himoyalarni chetlab o'tadi. Kaminskiy usuli DNS so'rovlar identifikatori maydonining kichik hajmini manipulyatsiya qiladi, bu faqat 16 bit. Xost nomini buzish uchun zarur bo'lgan to'g'ri DNS tranzaksiya identifikatorini tanlash uchun taxminan 7000 ta so'rov yuborish va 140 mingga yaqin soxta javoblarni simulyatsiya qilish kifoya. Hujum DNS registriga xayoliy IP ulanishi va turli DNS tranzaksiya identifikatorlari bilan ko'p sonli paketlarni yuborishdan iborat. Birinchi javobni keshlashning oldini olish uchun har bir soxta javob biroz o'zgartirilgan domen nomini o'z ichiga oladi (1.example.com, 2.example.com, 3.example.com va boshqalar).

Ushbu turdagi hujumlardan himoya qilish uchun DNS server ishlab chiqaruvchilari identifikatorning etarlicha katta o'lchamini qoplaydigan rezolyutsiya so'rovlari yuboriladigan manba tarmoq portlarining tasodifiy taqsimlanishini amalga oshirdilar. Xayoliy javobni yuborish uchun himoyani amalga oshirgandan so'ng, 16-bitli identifikatorni tanlashdan tashqari, 64 ming portdan birini tanlash kerak bo'ldi, bu tanlov variantlari sonini 2^32 ga oshirdi.

SAD DNS usuli tarmoq port raqamini aniqlashni tubdan soddalashtirish va klassik Kaminskiy usuliga hujumni kamaytirish imkonini beradi. Buzg'unchi ICMP javob paketlarini qayta ishlashda tarmoq portlarining faolligi haqidagi sizib chiqqan ma'lumotlardan foydalanib, foydalanilmagan va faol UDP portlariga kirishni aniqlashi mumkin. Usul bizga qidiruv variantlari sonini 4 ta kattalik tartibiga - 2^16 o'rniga 2^16+2^32 (131_072_4_294 o'rniga 967_296) kamaytirish imkonini beradi. Faol UDP portlarini tezda aniqlash imkonini beruvchi ma'lumotlarning sizib chiqishi parchalanish so'rovlari (ICMP Fragmentation Needed flag) yoki qayta yo'naltirish (ICMP Redirect flag) bilan ICMP paketlarini qayta ishlash kodidagi nuqson tufayli yuzaga keladi. Bunday paketlarni jo'natish tarmoq stekidagi kesh holatini o'zgartiradi, bu esa serverning javobidan kelib chiqib, qaysi UDP porti faol va qaysi biri faol emasligini aniqlash imkonini beradi.

Hujum stsenariysi: DNS rezolyutsiyasi domen nomini hal qilmoqchi bo'lganda, u domenga xizmat ko'rsatadigan DNS serveriga UDP so'rovini yuboradi. Yechimchi javobni kutayotgan paytda, tajovuzkor so'rovni yuborish uchun foydalanilgan manba port raqamini tezda aniqlay oladi va unga soxta javob yuboradi, IP-manzilni buzish yordamida domenga xizmat ko'rsatadigan DNS-server nomini oladi. DNS-resolver soxta javobda yuborilgan ma'lumotlarni keshlaydi va bir muncha vaqt domen nomi uchun boshqa barcha DNS so'rovlari uchun tajovuzkor tomonidan almashtirilgan IP-manzilni qaytaradi.

Manba: opennet.ru

a Izoh qo'shish