В Интернете обычно поиск идет по доменным именам, а не IP-адресам. Для нахождения соответствия между этими двумя характеристиками используется DNS.
Служба доменных имен представляет собой распределенную базу данных, основным содержанием которой является информация о соответсвии символических имен сетевых объектов их IP-адресам. DNS организована по иерархическому принципу. Структурной единицей этой является домен (domain), который в свою очередь может содержать другие домены (поддомены).
Первичным источником информации о каждом домене является ответственный за данный домен DNS-сервер. Ответственность за часть доменной информации может быть делегирована другим серверам. Клиентская часть DNS называется резловером (resolver), который генерирует рекурсивные запросы, то есть, такие, ответом на который является либо искомая информация, либо сообщение о ее отсутствии.
DNS-сервер является базовым элементом сети Интернет, даже более того, есть 13 основных серверов, которые поддерживают работоспособность сети. Для того, чтобы не возникало серьезных затруднений в масштабах планеты, должны работать по крайней мере 5 из них. Некоторое время назад, в середине октября 2002-го года за одну ночь подверглись небывалой ранее хакерской атаке и были выведены из строя 6 из них, что грозило пошатнуть стабильность всей глобальной сети. Но, к счастью, этого не произошло, так как потери коммерческих фирм и банков исчислялись бы тысячами долларов в минуту.
Атаки на DNS по характеру и масштабности результатов вполне могут быть причислены к информационному оружию массового поражения. Отсутствие адекватных средств защиты, очень слабо выраженные следы и трудность устранения последствий атаки еще больше усугубляют ситуацию.
a) Межсегментная удаленная атака на DNS-сервер
Возможность атаки на DNS путем фальсификации ответа DNS-сервера известна довольно давно Объектом атаки может являться как резолвер, так и DNS-сервер. Причины успеха подобных атак кроются в легкости подделки ответа сервера. Протоколы DNS, используемые в настоящее время, не предусматривают каких-либо средств проверки аутентичности полученных данных и их источника, полностью полагаясь в этом на нижележащие протоколы транспортного уровня. Используемый транспортный протокол (UDP) с целью повышения эффективности не предусматривает установления виртуального канала и использует в качестве идентификатора источника сообщения IP-адрес, который может быть элементарно подделан.
При наличии у атакующего возможности перехвата сообщений, которыми обмениваются клиент и сервер (внутрисегментная атака) реализация атаки не представляет каких-либо трудностей. Однако этот вариант не представляет и значительного практического интереса, поскольку возможность внутрисегментной атаки предполагает наличие определенного взаимного расположения клиента, сервера и хоста (компьютера) атакующего (например, атакующий и целевой DNS-сервер разделяют общую физическую среду передачи), что на практике реализуется довольно редко.
Значительно более общим случаем является межсегментная атака, не требующая для своей реализации столь жестких условий. По этой причине я остановлюсь на рассмотрении именно этого класса удаленных атак, представляющих как академический, так и практический интерес.
Межсегментная атака на DNS-сервер выглядит следующим образом. Предположим, что целью атаки является «подмена» IP-адреса web-сервера www.coolsite.com на IP-адрес сервера www.badsite.com для пользователей некоторой подсети, которую обслуживает DNS-сервер ns.victim.com. В первой фазе атаки ns.victim.com провоцируется на поиск информации о IP-адресе www.coolsite.com путем посылки ему соответствующего рекурсивного запроса. Во второй фазе атакующий посылает серверу ns.victim.com ложный ответ от имени ns.coolsite.com, который является ответственным за домен coolsite.com. В ложном ответе вместо реального IP-адреса www.coolsite.com указывается IP-адрес www.badsite.com. Сервер ns.victim.com кэширует (сохраняет во временную память) полученную информацию, в результате чего в течение определенного промежутка времени (величина этого промежутка указывается в поле TTL ложного ответа и может произвольно выбираться атакующим) ничего не подозревающие пользователи вместо сервера www.coolsite.com попадают на www.badsite.com.