Программы для DNS Spoofing`а, реализующие Birthday Attack

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

DNS Spoofing или DNS Cache Poisoning

В 1993 году Christoph Schuba выпустил в свет исследование Addressing Weaknesses in the Domain Name System Protocol. В нем он выделил несколько уязвимостей, включая методику "заражения" кэша сервера DNS. В самой ранней версии было возможно передавать дополнительную информацию в пакете ответа DNS, которая будет кэшироваться демоном. Это позволяло нарушителю внедрять нужную ему информацию в кэш доменной системы имен, тем самым становилось возможной атака типа man-in-the-middle

В 1997 CERT выпустила бюллетень CA-1997-22, описыв уязвимость в BIND (BIND - сокращение от Berkeley Internet Name Daemon, фактически стандартная Internet-программа для разрешения имен хостов в IP-адреса). BIND не рандомизировал свои операционные идентификаторы - они были просто последовательны. Кроме 3 и 4 уровня (сравнение IP и портов), рабочий ID - единственная форма идентификации для ответа DNS. Поскольку можно было легко предсказать следующий операционный идентификатор, нарушитель довольно просто мог организовать отравление DNS кэша. Чтобы решить это, все новые версии были модифицированы, в BIND начали использовать случайные операционные идентификаторы.

В 2002 Vagner Sacramento из DIMAp/UFRN (Отдел Информатики и Прикладной математики Федерального университета Rio Grande do Norte) провели эксперименты с несколькими версиями Internet Software Consortium's (ISC) Berkeley Internet Name Domain (BIND), демонстрируя возможность успешной атаки DNS имитации (DNS Spoofing) в 4 и 8 версии программы. Проблема обнаружилась все в том же ID, выяснилось, что идентификатор так же довольно легко предсказать, всего лишь используя ограниченный набор посылаемых пакетов. При исследовании предыдущей атаки, группа Службы компьютерной безопасности также выявила, что могла быть и другая возможная схема нападения, она основана на работе Michal Zalewski в области порядковых номеров TCP, анализа генераторов случайного числа используемых различными сетевыми операционными системами. В результате их совместной работы Neworder опубликовал программу, реализующую Birthday атаку на DNS. В результате ее работы нарушитель может сделать так, что доменное имя будет ссылаться на указанный им IP адрес.

Во время своей 80-минутной презентации Камински впервые представил детальный разбор обнаруженного им бага, угрожавшего хаосом всему Интернету из-за возможности подмены записей DNS-серверов, транслирующих доменные имена в IP-адреса. Директор программы тестов на проникновение в специализирующейся на сетевой безопасности фирме IOActive был первым, кто 8-го июля 2008 года предупредил об опасности, однако с тех пор заметно возросла озабоченность специалистов по поводу того, что такую атаку провести гораздо легче, чем считалось ранее. Главное, что удалось обнаружить Камински, это то, что систему безопасности DNS легко обмануть, поскольку возможны только 65 536 вариантов идентификации. Засоряя DNS сервер множеством запросов доменных имен, незначительно отличающихся друг от друга, например, 1.google.com, 2.google.com, 3.google.com и так далее – нарушитель многократно увеличивает свои шансы воспроизвести корректный ID. Несмотря на то, что шансы угадать правильный ответ - 1 из 65 565, вероятность значительно увеличивается, если нарушитель бомбардирует сервер тысячей запросов за очень короткий промежуток времени. Дэн продимонстрировал примеры CAU-EX-2008-0002 и CAU-EX-2008-0003 использрвания сплоита для подмены записей DNS, написанные им.

В августе 2008 российский физик Евгений Поляков продемонстрировал возможность хакнуть последнюю версию BIND, в которую входят патчи, осуществленные после обнаружения опасной дыры в DNS Дэном Камински. The New York Times сообщает, что Полякову удалось произвести успешную атаку на но обновленные версии BIND примерно за 10 часов, используя два стандартных компьютера и высокоскоростной доступ к DNS-серверу. Атака может быть осуществлена гораздо быстрее при более значительных ресурсах в наличии. Поляков опубликовал результаты эксперимента в своем блоге. Эксперты, ознакомившись с содержанием поста, пришли к выводу, что этот сплоит вполне может работать.

Методы и задачи DNS Spoofing или DNS Cache Poisoning

Корректное функционирование DNS является критически важным для сети организации, подсоединенной к Интернету, и для Интернета в целом. Действительно, если нарушителю удастся сделать так, чтобы атакуемый хост получил из DNS сфальсифицированную информацию, то клиент будет отправлять данные на подложный IP-адрес. В лучшем случае результатом будет отказ в обслуживании, в худшем - нарушитель получит возможность перехвата трафика со всеми вытекающими последствиями. Например, нарушитель подменил данные об IP-адресе WWW-сайта банка citi.com на адрес подконтрольного ему хоста и создал на этом хосте веб-страницу, имитирующую сайт банка. Ничего не подозревающий клиент банка, направив свой броузер на citi.com, соединяется с хостом нарушителя и, полагая, что работает на сайте банка, вводит конфиденциальную информацию о своем счете, которая немедленно попадает к заливщикам и дроповодам.

 DNS SPOOFING

Для того, чтобы сфальсифицировать данные DNS, нарушитель может использовать несколько методов, рассмотрим их в порядке возрастания масштаба атаки:

Нарушитель отправляет подложный DNS-ответ (в нашем примере - с неверным адресом хоста citi.net) атакуемой рабочей станции luzer-5263548.ett.ua. Ответ отправляется от имени сервера после того, как рабочая станция направила серверу соответствующий запрос. Атака направлена против единственной рабочей станции.

Нарушитель отправляет подложный DNS-ответ серверу ns.ett.ua, когда тому требуется найти адрес сервера банка citi.com. Сфальсифицированные данные сохраняются в кэше сервера ns.ett.ua в течение указанного нарушителем времени жизни записи, которое может быть очень большим. Действие атаки распространяется на все рабочие станции, использующие ns.ett.ua в качестве своего DNS-сервера.

Нарушитель от имени первичного сервера банка ns.citi.com производит передачу сфальсифицированной зоны citi.com на вторичный сервер ns2.citi.com. Таким образом нарушитель вводит в заблуждение все DNS-серверы Интернета, которые обратятся к ns2.citi.com за официальной информацией о зоне citi.com, и, следовательно, все рабочие станции, которые пользуются услугами этих серверов. Это может быть уже довольно значительная часть Интернета.

Используя динамическое обновление, нарушитель изменяет базу данных зоны citi.com на первичном сервере ns.citi.com. В этом случае весь Интернет будет пользоваться данными зоны citi.com, сфальсифицированными нарушителем.