DNS-атаки: полный обзор по схемам атак
- Подробности
- Категория: Сетевая безопасность
- Дата публикации: 15.07.2013 01:24
За последние 2 года число DNS-атак в кибер-реальности увеличилось почти в 2 раза. Эта тенденция отнюдь не случайна и выводит актуальность данного типа атак на один ряд с таким гигантом, как DoS / DDoS. Что неудивительно, учитывая родственность DNS и DDoS-атак.
Вопросов в поставленной теме ещё много. И помимо очевидного (какие опасности таит в себе протокол DNS и атаки на него), на ум сразу приходит другой - более парадоксальный: почему вообще мы всё ещё используем в такой важной и неотъемлемой части сети, как DNS, ничем незащищённый открытый UDP-протокол (на котором и реализован DNS)? Над ответом можно долго гадать, но мнение большинства, как и моё личное, сводится к обыкновенной безалаберности и лени современных представителей IT. Хотя в последние годы решение проблемы борьбы с DNS-атаками начинают появляться и внедряться в практику IT-контор. Но обо всём по-порядку. Собственно, какие бывают типы DNS-атак и как можно им противостоять?
Основы протокола DNS и базовые схемы DNS-атак описаны в более ранней статье DNS-атаки: основные схемы и принципы. А в текущей мы поговорим более подробно о конкретных схемах реализации и способах защиты от атак на протокол DNS.
Пик популярности DNS-атак - сегодня!
Годом DNS-атак по праву считается 2012, в который не только существенно возросло их число, но и, что более важно, – они стали более изощренными и стали влечь за собой более серьезные последствия.
Почему популярность DNS-атак возросла? Ответ на лежит в недавней истории DoS / DDoS-атак. DoS / DDoS-атаки появились одновременно с появлением самого Интернета и с тех пор не уступали своё лидерство практически никому: до 2010-2011 годов от них практически не было реальных способов защиты (да их и сейчас почти нет, по правде говоря: есть только более изощрённые пути реализации). Но явно лидирующую позицию среди других хакерских атак они заняли со второй половины 2010 года: как раз в тот момент, когда небезызвестная группа Anonymous выбрала их в качестве основного своего инструмента. Первое время никто не был к ним готов, и любые атаки злоумышленников достигали своей цели.
Положение изменилось к концу 2011 года, когда организации стали внедрять системы отражения для противодействия DoS/DDoS атакам, что побудило злоумышленников искать новые способы достигнуть своей всё той же цели и проявлять большую изобретательность. И такая изобретательность была найдена: новый вектор атак направился на DNS-сервера. За 2012 год отмечается годовой рост числа DNS-атак на 170%. Практически половина состоит из рефлектных DNS-атак, использующих отражения запросов (в т.ч. рекурсивных запросов), для осуществления которых, даже не требуется наличие DNS-сервера у организации-жертвы.
DNS-атаки являются естественным этапом эволюции DoS / DDoS-атак в целом. Если раньше сознание IT-мира воспринимало DDoS, как атаки, для эффективности которых требуется грубый шторм большого количества запросов (трафика), то сейчас DNS-атаки показывают обратное: сложные их виды могут носить асимметричный характер и быть мощными и разрушительными при относительно низкой скорости реализации и интенсивности воздействия. Подобное применение DNS-атак для реализации DoS/ DDoS – лишь одна из возможных угроз. Есть и ещё один немаловажный тип последствий, о котором в том числе и пойдёт речь дальше.
Угрозы DNS-атак. Типы.
Типов угроз в данном случае три. И они привязаны к 3-ём классическим элементам треугольника ИБ: целостности, доступности, конфиденциальности.
Итак, типы угроз DNS-атак:
1. Нарушение доступности web-ресурсов при обращении к DNS-имени.
2. Перехват практически любого проходящего траффика (по целевым ресурсам).
3. Подмена доверенного объекта сети / подмена сетевых запросов/ответов.
С типом 1 всё ясно, а вот 2 и 3 рассмотрим на примере.
Допустим жертва (т.е. один из нас) хочет войти в свой аккаунт на доверенном сайте и совершить какую-либо операцию (почта; интернет-банк, соц. сеть, ...); отправляет DNS-запрос в брауезере или спец.программе (например, ДБО); получает ложный DNS-ответ с IP сервера хакера, на котором развёрнут тот же ресурс/сервис, что нужен клиенту; клиент вводит на сайте хакера свои логин и пароль, которые, естественно, запоминаются сервером злоумышленника и потом пересылаются на настоящий сервис, откуда хакер получает ответ об успешной авторизации и последующие авторизованные страницы, которые тот просто транслирует назад своей жертве, становясь тем самым посредником между настоящим ресурсом и жертвой. Таким образом, хакер будет мало того, что видеть весь трафик, он может ещё и подменять какие-либо запросы (например, адресат получателя перевода средств в интернет-банке, если этот банк не использует аутентификацию по ЭЦП). Возможные последствия такой схемы атаки в объяснениях не нуждаются.
Схемы DNS-атак
Рассмотрим основные схемы DNS-атак, использующиеся в современное время:
1. Подмена DNS-ответа; внедрение ложного DNS-сервера.
Цели и угрозы: подмена доверенных объектов сети; перехват практически любого траффика жертвы; подмена сетевых запросов/ответов.
Схема реализации атаки в случае, если есть доступ к трафику жертвы (случай на картинке):
- Атакующий ждёт DNS-запроса от жертвы на хосте 1 (атакующий находится либо на хосте нарушителя 1, либо на хосте нарушителя 2; но может быть и где-либо ещё, где есть доступ к трафику хоста 1 (жертвы)).
- После передачи хостом 1 DNS-запроса, атакующий принимает запрос, в котором запоминает ID и порт. Далее, такакующий отправляет ложный DNS-ответ, в котором подменяет поле IP-адрес DNS-сервера на свой IP, делая свой компьютер для жертвы валидным DNS-сервером.
- Хост 1 принимает ложный DNS-ответ, принимает IP-адрес хакера за подлинный DNS-сервер и отправляет все последующие запросы ему.
- Атакующий после получения DNS-запросов пересылает их на настоящий DNS-сервер, получает правильный ответ и пересылает его назад – жертве. Существует лёгкая возможность подменить в DNS-ответе IP любого запрашиваемого DNS-имени.
Схема реализации атаки в случае, если доступа к трафику жертвы нет:
- Атакующий не дожидается DNS-запроса (он его и не получит, ибо траффик жертвы через него не проходит), а отправляет массированный поток ложных DNS-ответов, подбирая на ходу нужные порт и ID запроса (обыкновенным bruteforce-ом). При этом в ложном ответе атакующий подменяет поле IP-адрес DNS-сервера на свой IP, делая свой компьютер для жертвы валидным DNS-сервером.
- Хост 1, отправив запрос, принимает ложный DNS-ответ, в котором указан IP-адрес хакера, как IP подлинного DNS-сервера. В итоге, жертва отправляет все последующие DNS-запросы злоумышленнику.
- Атакующий после получения DNS-запросов пересылает их на настоящий DNS-сервер, получает правильный ответ и пересылает его назад – жертве. Существует лёгкая возможность подменить в DNS-ответе IP любого запрашиваемого DNS-имени.
В случае, если атакующий находится за отдельным маршрутизатором и не имеет доступа к трафику клиента, но находится в том же сегменте сети, что и DNS-сервер жертвы (сама жертва), схема остаётся почти тай же. Фаза 1 заменяется на фазу массированной отправки DNS-ответов, не дожидаясь запроса жертвы. В этом случае, жертва после запроса моментально получит ответ, один из которых окажется правильным.
Стоит отметить, что данная угроза основана на использовании недостатков алгоритмов удаленного поиска. В случае, если объекты сети изначально не имеют адресной информации друг о друге, используются различные протоколы удаленного поиска (например, SAP в сетях Novell NetWare; ARP, DNS, WINS в сетях со стеком протоколов TCP/IP), заключающиеся в передаче по сети специальных запросов и получении на них ответов с искомой информацией.
2. Атака на кеш DNS-сервера / подмена вышестоящего DNS-сервера (атака Каминского).
Цели и угрозы: подмена доверенных объектов сети; перехват практически любого траффика жертвы.
Схема реализации атаки:
- Злоумышленник посылает на целевой DNS-сервер (жертвы) запрос, которого заведомо нет в его кеше (или поток потенциальных запросов, в один прекрасный момент случится ситуация, когда в кеше локального DNS-сервера ответа не будет).
- Далее злоумышленник создает направленный шторм ложных DNS-ответов от имени одного из вышестоящих (можно взять и корневые, как на картинке) DNS-серверов. Ситуация с подменой DNS-ответа от имени корневого проще: если в предыдущей схеме нужно было подбирать порт и ID, то в текущей подбирать порт не требуется: он стандартизован и постоянен во всех соединениях между DNS-серверами: порт №53.
- DNS-сервер передает DNS-запрос на вышестоящий (корневой) DNS-сервер и немедленно получает ложный DNS-ответ от атакующего.
- Хост нарушителя изменяет кэш-таблицу DNS-сервера и обеспечивает прохождение трафика через подставной хост злоумышленника (адресу top.secret.com в кеше DNS будет соответствовать ложный IP) по тому же алгоритму, что и в описанных выше схемах.
- Как видно, схема реализации атаки достаточно проста и даже не требует разворачивания собственного DNS-сервера, что делает её очень удобной и привлекательной для злоумышленников.
Важное примечание: в результате атаки, подмена целевых DNS-ответов (IP-адресов DNS-имён) происходит не только у одного хоста-жертвы, а у всех пользователей данного DNS-сервера!
3. Атака посредством отражённых DNS-запросов.
Цели и угрозы: выведение хоста жертвы (в т.ч. DNS-сервера) из строя; падение шлюза (канала доступа в Интернет) / межсетевого экрана.
Атака посредством отражённых DNS основывается на том, что DNS-ответ всегда в 3-4 раза длиннее запроса. В некоторых случаях (у некоторых DNS-имён) размер ответного пакета может в 10 и более раз превышать размер запроса. Таким образом, благодаря этому факту и использованию UDP-проткола, стала возможна следующая схема атаки на произвольный хост в Интернете.
Схема реализации атаки:
- Злоумышленник отправляет DNS-запросы на один или несколько сторонних DNS-серверов, которые не являются реальными объектами нападения, с подменённым IP адресом источника: IP источника равен IP хоста-жертвы.
- DNS-сервера получив запрос, формируют и отправляют ответы (намного длиннее запросов) на подложный IP (т.е. жертве).
- Источник оказывается под мощным штормом DNS-ответов и не выдерживая нагрузки, падает.
Как видно из схемы и описания, данный тип атаки может быть организован в условиях довольно ограниченных ресурсов, достигая 4-10-кратного эффекта усиления атаки. Если при этом злоумышленник ещё и создаст определенные домены, для отправки имен которых требуются DNS-пакеты огромных размеров, то отправляя запросы только на такие доменные имена, злоумышленник может достигать 100-кратного усиления эффекта атаки.
Фактически, данный тип атаки является эволюционной разновидностью обыкновенного DDoS.
4. Атаки типа DNS-флуд, атаки с помощью рекурсивных DNS-запросов / Garbage-атаки.
Цели и угрозы: выведение DNS-сервера - жертвы - из строя.
Основа данных видов атак - простой DNS-флуд: множество хостов злоумышленника посылает массированный поток запросов на целевой DNS-сервер с ложным SRC IP (IP-адрес источника запроса). Стандартный компьютер способен генерировать 1000 запросов в секунду, стандартный DNS-сервер способен обрабатывать 10000 запросов в секунду. Путём не требующих больго напряга мозга вычислений, приходим к выводу: 10 обычных домашних (или не совсем домашних) компьютеров вполне достаточно для выведения DNS-сервера из строя. При том вычислить злоумышленника будет очень непросто.
Атака типа Garbage-DNS основывается на постоянно открытом 53 порту (стандартному порту DNS, иногда используется 80-ый). Схема атаки сводится к отправке злоумышленником (с множества хостов) больших (свыше 1500 байт) сетевых пакетов (не обязательно DNS). Таким образом, всё сводится к обычному DDoS, но на DNS-порт. Преимущество над обычным DDoS состоит в том, что 53-й порт (DNS-порт) всегда открыт в любых организациях, ибо нужен для работоспособности DNS-системы.
Рекурсивная DNS-атака сводится к выявлению множества несуществующих в кеше DNS-сервера жертвы имён (возможно, фальшивых) и последующая отправка DNS-запросов с именами из этого множества. DNS-сервер в итоге вынужден пересылать подобные запросы на все соседние и вышестоящие DNS-сервера с целью получить IP заказанного хоста. В итоге, на каждый запрос сервер вынужден посылать ещё целое множество DNS-запросов другим серверам и принимать ответы от них, на что тратятся иногда в сотни раз большие ресурсы, чем отправка одного DNS-запроса. В игоге, как и в предыдущем типе атак, имея совсем не большие ресурсы, становится реальным осуществить достаточно мощную DDoS-атаку на DNS-сервер (в отличие от отражённых DNS-атак, целью которых может быть не только DNS-сервер).
Возникает естественный вопрос: как же защититься от данного типа атак, которым, казалось бы, подвержены все DNS-сервера без исключений? (в особенности, старый добрый консервативный, но тем не менее очень популярный BIND) Оказывается, способы есть. О них подробно рассказано в следующей статье...
A.S.