True чи False? Ось запитання.
Пригадується, ще за часів життя короля Косяка, саме того який віддав свою Маріхуанну-Прекрасну і півцарства за Івана-Наркомана, був тоді галімий Інтернет без DNS серверів. І означало се, що доводилось тоді користуватись 32-розрядними ІР-адресами. Але знайшлися мудреці, котрі створили текстовий файл із відповідністю імен комп’ютерів до їх ІР-адрес – так званий host file. І абгрейдився цей файл кожного разу і передавався він від одного компа до іншого і тільки заради того, щоб юзер міг собі замість 127.0.0.1 набрати у стрічці браузера чарівне слово localhost. Але мережа росла, наркомани розмножувались і постала тоді необхідність у створенні єдиного інформаційного сервісу котрий б здійснював перевід мнемонічно зрозумілих імен у ІР-адреси та навпаки. І постала тоді доменна служба імен DNS (Domain Name Server) зі своїм спеціяльно створеним протоколом. Тоді всі зібрались, ширку прийняли, димедрол ковтнули, траву скурили та й вирішили, що буде працювати тоді цей DNS та ще й за таким алгоритмом :
хост відсилає на ІР адресу найближчого DNS сервера DNS-запит, де вказується ім’я сервера та ІР хоста , яку потрібно знайти. Сервер, отрмавши запит, переглядає свою базу імен і якщо він знайде таке ім’я, він відправляє DNS-відповідь, у якому і міститься потрібна адреса. Якщо відповідь знайдена не буде, то запит перенаправляється до кореневого DNS- сервера. Цей алгоритм буде працювати до тих пір поки не закінчиться трава, або не буде віднадено цю ІР. В іншому випадку юзер отримає повідомлення про помилку неправильного вводу імені ресурсу. Відповідно до вищенаведеного, я б виділив 3 основні типи атаки на цю службу.
1) Підміна DNS- сервера. Це досягається через недосконалість протоколу DNS, який працює на базі UDP. Чисто теоретично, DNS протокол може працювати на базі ТСР протоколу. Але для цього адміну потрібно звернутися до баби Яги-Конопляної-Ноги, яка може дати цілу торбу документації, про те як це зробити. Після цього , цьому ж адміну потрібно кілька днів моцно покурити, оскільки ця ж документація написана незрозумілою англійською мовою. І якщо потім він навіть і дожене що саме потрібно зробити, то не зрозуміло чи це йому потрібно, оскільки сервер почне повільніше працювати( до речі, сервери не курять) через створення віртуального з’єднання. Але ще й крім цього ОС все одно спочатку вишле DNS-запит на базі UDP і тільки після отримання спеціяльної відповіді буде використовуватись ТСР. Є тут ще одна лажа – передача DNS – запиту залежить від програми, що вислала цей запит. І тепер це все можна реалізувати наступним чином: перехватити DNS-запит, витягнути з него номер UDP-порта відправника запиту, двобайтовий ідентифікатор DNS-запиту, шукане ім’я. Далі відіслати фальшиву DNS-відповідь на витягнутий UDP порт, де вказати ІР адресу фальшивого DNS-сервера. Це дозволить перехватити трафік між атакуючим хостом і сервером. Потім можна собі витягнути із замрозника фляжку пива і помалу її пити, очікуючи прихід СБУ. Дану атаку можна реалізувати тільки за певних фізичних умов ( а як інакше перехопити DNS-запит???) – знаходитись між хостом і сервером, або принаймні в одному сегменті мережі.
2) До другого типу можна віднести, так звані DOS атаки, але з поправкою на DNS. Це в свою чергу означає наступне. Атакуючий буде відправляти серію фальшивих DNS-відповідей атакуючому хосту від імені справжнього DNS-сервера. Проте тут існує також серія проблем: ім’я та ідентифікатор вказані у DNS-відповіді повинні збігатися із ім’ям та ідентифікатором DNS-запиту, DNS-відповідь повинна бути відіслана на той самий UDP-порт, звідки був відісланий запит ну і звісно ІР адреса відправника відповіді повинна збігатися із ІР DNS-сервера. При реалізації такого типу атаки, атакуючий не має змоги перехватити DNS-запит, але він може методом повного перебору дізнатися UDP-порт (>=1023) відсилаючи фальшиві DNS-відповіді на всі підряд порти. Ну а ідентифікатор DNS-запиту зазвичай рівний 1 або 0. При наступному запиті ідентифікатор інкрементується. Тобто алгоритм буде наступним: завалювати фальшивими DNS-відповідями різні UDP порти з різними ідентифікаторами від імені справжнього DNS-сервера. Якщо хост відгукнеться то у ІР заголовку міняємо його ІР на ІР атакуючого і передаємо запит на сервер. Коли сервер відповів міняємо його ІР на ІР фальшивого DNS-сервера. Привілеї використання такої атаки полягають в тому, що тут вже не вводиться обмежень на фізичне розташування атакуючого, атаку можна забацати будучи просто підключеним до Інтернету та бажано ще мати комп’ютер.
3) Це буде швидше гібрид 1 та 2 пунктів. Посилаючись на початок статті, нагадаю, що якщо сервер не знайшов у своїй базі імен ім’я, яке потрібно було знайти, DNS-запит маковими полями, конопляними лісами прямує до кореневого DNS. Ну і відповідно атаку я спрямую тепер на сервер, а не на хост. Що було і успішно зроблено кілька років тому. Коли навіть по телєвізору казали, що ще б трохи і Інтернет би завалився. Нагадаю, що у світі є 9 базових DNS-серверів і тоді на них була направлена DOS атака. Але коли б навіть ті серваки і померли б у нерівному бою, посмертно їм б вручили грамоти, але Інтернет б тоді не помер, просто довелось б звертатись до ресурсу через ІР адресу. Але повертаючись до теми статті добавлю тут таке, що сервер для швидшої роботи моє свій кеш. Ну і відповідно якщо на запит DNS-сервера атакуючий направить фальшиву DNS-відповідь, то це запишеться у кеш-таблиці і інші хости, які звертаються до певного ресурсу, отримають фігу з маком, а не справжню ІР ресурсу, яка їм потрібна. Враховуючи, що співпраця між DNS серверами здійснюється по 53 порту, порт при такому типі атаки шукати не приходиться, зате виникає проблема із цим клятим двобайтовим ідентифікатором. Він лежить у проміжку до 2^16 і іншого методу крім повного перебору тут наразі ще не придумали. Ну і відповідно реалізувати то все можна тільки в одному випадку – коли DNS-сервер відішле запит на пошук імені, що міститься у фальшивій DNS-відповіді, а висилає він такий запит коли до нього приходить DNS-запит від якогось хоста на пошук імені і цього імені не має у кеш-таблиці. Але Гашиш-Горинич, на мому місці, зробив би наступне. Відіслав би на DNS-сервер подібний DNS-запит і заставив би шукати вказане ім’я.
Для реалізації наведених атак замало прочитати цю статтю і скурити косячок, тут треба мати моцні мозги. А від куріння і взагалі від вживання наркотиків мозги всихають і це ще за умови що вони є. Більшість атак на DNS-сервери здійснюється через діри у програмному забезпеченні.
Recent comments
13 years 4 weeks ago
13 years 6 weeks ago
13 years 40 weeks ago
13 years 47 weeks ago
14 years 33 weeks ago
15 years 4 weeks ago
15 years 10 weeks ago
15 years 15 weeks ago
15 years 17 weeks ago
15 years 32 weeks ago