logo
Протокол DNS. Методы сетевых атак и защиты

2.1 Методы атак на протокол DNS

протокол dns атака

· Ложный DNS-сервер

· Простой DNS-флуд

· Атака посредством отраженных DNS-запросов

· Атака с помощью рекурсивных DNS-запросов

· Атака типа Garbage DNS

· Фишинг/Фарминг

Ложный DNS-сервер

Создание обманного DNS-сервера осуществляется путем перехвата запроса. Механизм данной атаки очень прост. Злоумышленник - атакующий, ждет DNS-запроса от компьютера жертвы. После того как атакующий получил запрос, он извлекает из перехваченного пакета IP-адрес запрошенного хоста. Затем злоумышленнику необходимо, чтобы компьютер жертвы подумал, что он является целевым DNS-сервером, для этого генерируется специальный пакет. Сама генерация ответного пакета так же проста: злоумышленник в ложном ответе жертве в поле IP DNS-сервера прописывает свой IP. Теперь компьютер жертвы принимает атакующего за реальный DNS. Когда клиент отправляет очередной пакет, атакующий меняет в нем IP-адрес отправителя и пересылает далее на DNS. В результате таких изменений настоящий DNS-сервер считает, что запросы отправляет злоумышленник, а не жертва. Таким образом, злоумышленник становится связующим звеном между реальным DNS-сервером и клиентом. Далее злоумышленник может исправлять запросы жертвы по своему усмотрению и отправлять их на реальный DNS. Есть и сложность, запрос может быть перехвачен, только если машина атакующего находится на пути основного трафика или в сегменте DNS-сервера жертвы. Далее запрос будет занесен в кэш, и при последующих подобных запросах пользователи будут переходить на подставной IP.

Простой DNS флуд

Суть состоит в том, что злоумышленник отправляет множественные DNS-запросы на атакуемый DNS-сервер, переполняя сервер запросами и тем самым потребляя его ресурсы. Такой метод атаки очень популярен среди злоумышленников, так как сам по себе прост в исполнении и при этом позволяет скрыть личность злоумышленника.

Злоумышленник генерирует DNS-пакеты, которые отправляются посредством UDP-протокола на DNS-сервер. Стандартный ПК может сгенерировать 1000 DNS-запросов в секунду, тогда как обычный DNS-сервер может обработать только 10000 DNS-запросов в секунду. Другими словами, для того, чтобы вывести из строя DNS-сервер, потребуется всего 10 компьютеров. Поскольку DNS-сервера главным образом используют UDP-протокол, злоумышленникам не требуется устанавливать соединения, и они могут изменить IP-адрес источника и замаскироваться. Это свойство также на руку злоумышленниками - атаку, исходящую от множества измененных IP-адресов источника, тяжелее отразить, чем ту, которая исходит от ограниченного списка IP-адресов.

Атака посредством отраженных DNS-запросов

Атака с помощью отраженных DNS-запросов позволяет создать эффект переполнения, имея в распоряжении ограниченные ресурсы. Это происходит благодаря асимметричному характеру атаки, т.е.злоумышленник отправляет DNS-запрос на один или несколько сторонних DNS-серверов, которые не являются реальными объектами нападения. Злоумышленники изменяют IP-адрес источника DNS-запроса на IP-адрес целевого сервера, который и является целью атаки, тогда ответ сторонних серверов будет отправлен на сервер, который является целью нападения.

В процессе атаки используется эффект усиления, при котором ответ на DNS-запрос в 3-10 раз больше, чем сам DNS-запрос. Самые распространенные методы усиления атаки мы рассмотрим чуть ниже. Другими словами, на атакуемый сервер поступает гораздо больше трафика по сравнению с небольшим количеством запросов, сгенерированных злоумышленником. Успех атаки демонстрирует, что организации не требуется владеть DNS-сервером, чтобы стать объектом DNS-атаки. Целью атаки является вывод из строя межсетевого экрана или канала интернет-соединения.

Атаки, которые производятся посредством отраженных DNS-запросов, можно усилить. Об уровнях усиления атак на протокол чуть ниже.

Степень анонимности при такой атаке возрастает с увеличением ее размаха. Помимо изменения SRC IP (как при простом DNS-флуде), атака сама по себе производится не напрямую - запросы на атакуемый сервер отправляются сторонним сервером.

Атака с помощью рекурсивных DNS-запросов

Атака посредством рекурсивных запросов является наиболее сложным и асимметричным методом атаки на DNS-сервер, для ее организации требуются минимальные вычислительные ресурсы, а результат приводит к интенсивному потреблению ресурсов DNS-сервера, который подвергается нападению.

При такой атаке используются особенности работы рекурсивных DNS-запросов. В рекурсивных DNS-запросах, когда DNS-клиент делает запрос с именем, которое отсутствует в кэш-памяти DNS-сервера, сервер отправляет повторяющиеся запросы другим DNS-серверам до тех пор, пока нужный ответ не будет отправлен клиенту. Воспользовавшись особенностями данного процесса, злоумышленник отправляет рекурсивные запросы с использованием фальшивых имен, которые, как он знает, не существует в кэш-памяти сервера (смотрите пример скриншота экрана). Чтобы разрешить такие запросы, DNS-сервер должен обработать каждую запись, временно сохраняя ее, и отправить запрос другому DNS-серверу, затем дождаться ответа. Другими словами, потребляется все большее количество вычислительных ресурсов (процессора, памяти и пропускной способности), до тех пор, пока ресурсы не заканчиваются.

Асимметричный характер рекурсивной атаки и низкая скорость затрудняют борьбу с такими атаками. Рекурсивная атака может быть пропущена как системами защиты, так и людьми, которые больше сосредоточены на выявлении атак с большим объемом.

Атака типа Garbage DNS

Как подразумевает ее название, такая атака переполняет DNS-сервер «мусорным» трафиком, отправляя пакеты данных большого размера (1500 байт или больше) на его UDP-порт 53. Концепция такой атаки состоит в том, чтобы переполнить сетевой канал пакетами данных большого размера. Злоумышленники могут генерировать потоки «мусорных» пакетов и с помощью других протоколов (UDP-порт 80 также часто используется); но при использовании других протоколов объект может остановить атаку, заблокировав порт на уровне ISP без каких-либо последствий. Протоколом, для которого такая защита недоступна, является протокол DNS, поскольку большинство организаций никогда не закроет этот порт.

Фишинг/Фарминг

В классическом фишинге злоумышленник распространяет письма электронной почты среди пользователей социальных сетей, онлайн-банкинга, почтовых веб-сервисов, заманивая на поддельные сайты пользователей, ставших жертвой обмана, с целью получения их логинов и паролей. Многие пользователи, активно использующие современные веб-сервисы, не раз сталкивались с подобными случаями фишинга и проявляют осторожность к подозрительным сообщениям. В схеме классического фишинга основным "слабым" звеном, определяющим эффективность всей схемы, является зависимость от пользователя - поверит он фишеру или нет. При этом с течением времени повышается информированность пользователей о фишинговых атаках. Банки, социальные сети, прочие веб-службы предупреждают о разнообразных мошеннических приемах с использованием методов социальной инженерии. Все это снижает количество откликов в фишинговой схеме - все меньше пользователей удается завлечь обманным путем на поддельный сайт. Поэтому злоумышленники придумали механизм скрытого перенаправления пользователей на фишинговые сайты, получивший название фарминга ("pharming" - производное от слов "phishing" и англ. "farming" - занятие сельским хозяйством, животноводством). Злоумышленник распространяет на компьютеры пользователей специальные вредоносные программы, которые после запуска на компьютере перенаправляют обращения к заданным сайтам на поддельные сайты. Таким образом, обеспечивается высокая скрытность атаки, а участие пользователя сведено к минимуму - достаточно дождаться, когда пользователь решит посетить интересующие злоумышленника сайты. Вредоносные программы, реализующие фарминг-атаку, используют два основных приема для скрытного перенаправления на поддельные сайты - манипулирование файлом HOSTS или изменением информации.

Популярные методы реализации Фарминг-атак:

· Изменение файла HOSTS

· Изменение файла HOSTS вместе с изменением его местоположения

· Модификация настроек DNS-серверов

· Регистрация ложного DHCP-сервера

Пример зараженного файла:

Красным выделены строки, которых изначально нет, в файле hosts. Это результат атаки.

А вот так должен выглядеть «здоровый» файл hosts, если вы сами не вносили никаких изменений в его конфигурацию.