[описание общих атак на службу DNS]материал подготовил: Марат Давлетханов 15.04.2005
Мы с вами, уважаемые читатели, уже начинали разговор о безопасности DNS* и пришли к весьма неутешительным выводам. Оказывается, эта основополагающая служба Глобальной сети практически не имеет никаких защитных механизмов. А это позволяет злоумышленникам проводить различные атаки на нее. Цель у всех этих воздействий одна — показать интернетчику или интернетчикам вместо запрашиваемого ими сайта другую веб-страницу, причем адрес при этом должен оставаться правильным. Но давайте подумаем, кому вообще могут понадобиться такие атаки? До недавнего времени ими пользовались в основном шутники, которые отправляли людей на другие сайты ради озорства. Однако недавно в интернете появилась новая угроза, которая изменила ситуацию с атаками на DNS. Речь идет, конечно же, о фишерах. Эти сетевые мошенники заманивают людей на поддельные сайты, на которых пользователи вводят какую-либо секретную информацию (чаще всего это номер кредитной карты). Естественно, эти данные попадают к злоумышленникам, использующим их в своих целях. Так вот, именно фишеры могут извлекать пользу из атак на службу DNS.
В первой части статьи мы выяснили, что все атаки на службу DNS делятся на две большие группы. К первой относятся воздействия, направленные на одного пользователя. Впрочем, они не представляют для фишеров особого интереса. Этим мошенникам больше подходят атаки из второй группы. Воздействия, относящиеся к ним, направлены на всех пользователей какого-нибудь одного DNS-сервера. Таким образом, фишер может охватить достаточно большую аудиторию и отправить много потенциальных жертв на свой собственный подставной сайт. Тем более что осуществляются эти атаки относительно просто. Ну а теперь довольно общих слов, давайте разберемся, каким образом хакер может обмануть много людей.
Дыры в программном обеспечении
Сегодня чаще всего используются атаки, направленные на DNS-серверы
Когда речь заходит об атаках через интернет, то большинство людей тут же вспоминают различные сложные технологии, с помощью которых хакеры могут воздействовать на компьютеры жертвы. Между тем самыми, пожалуй, распространенными возможностями, используемыми злоумышленниками, являются дыры в программном обеспечении. Причем это верно как для пользовательских компьютеров, так и для всевозможных серверов. Не являются исключением из этого правила и DNS-серверы. Впрочем, используемое на них программное обеспечение весьма специфично, так что информация о его уязвимостях доступна далеко не всем. Тем не менее, хорошо покопавшись в интернете, любой человек сможет найти описание этих дыр.
Причем за примерами использования уязвимостей в программном обеспечении DNS-серверов далеко ходить не нужно. В 1996 году неизвестный хакер смог немного «подправить» базу данных московского провайдера «Роснет». Эта история получила широкую огласку и привлекла к себе внимание журналистов. Провайдеру даже пришлось устраивать специальную пресс-конференцию, посвященную данному инциденту. Кстати, пострадавшей стороной тогда оказался крупный информационный проект (его адрес так и не был озвучен), все посетители которого были перенаправлены на другой сайт. Так что атаки, использующие дыры в программном обеспечении, являются, во-первых, весьма опасными, а во-вторых, простыми в исполнении.
Обман сервера путем создания шторма ложных ответов
Дыры в программном обеспечении являются одной из самых серьезных опасностей для службы DNS
Наверняка внимательные читатели обратили внимание на сходство названия этой атаки и наименования одного из целенаправленных воздействий. И они правы. Похожи не только названия, но и принцип действия этих атак. Впрочем, есть между ними и некоторые отличия. Какие? Чтобы разобраться в этом вопросе, необходимо рассмотреть принцип работы DNS-серверов.
итак, клиент отправляет DNS-серверу запрос на получение информации. В том случае если последний найдет подходящую запись в своей базе, он отправит обратно ответ с данными. Иначе же DNS-серверу придется обращаться к вышестоящему (служба DNS имеет иерархическую структуру) серверу. И так повторяется до тех пор, пока затребованный пользователем адрес не будет обнаружен или пока система не решит, что его вообще нет ни в одном списке. Причем в первом случае информация будет спущена по цепочке до конечного пользователя. А каждый DNS-сервер на ее пути добавит соответствующую запись в собственную базу данных. То есть такой сложный процесс поиска данного адреса повторяться уже не будет. Просто при всех будущих обращениях DNS-серверы будут брать данные из своей базы.
Атаки, направленные на DNS-сервер и конечного клиента, похожи друг на друга
Если внимательно приглядеться к описанной схеме работы, то становится видна одна возможность создания в базе данных DNS-сервера ложной записи. Речь идет вот о чем. Если в ответ на запрос сервера (к своему вышестоящему серверу) послать ответ с ложной информацией, причем сделать это раньше, чем придут настоящие данные, то в базу будет занесен неверный адрес. Вот только как это можно реализовать на практике? А вот для этого необходимо разобраться в протоколе, согласно которому DNS-серверы взаимодействуют между собой. Собственно говоря, мы о нем уже говорили в первой части статьи. Да-да, уважаемые читатели, DNS-серверы тоже общаются между собой по протоколу UDP. Впрочем, есть у этого взаимодействия одна особенность. Оказывается, DNS-серверы всегда передают информацию через фиксированный порт 53.
В общем, получается, что DNS-серверы обмениваются информацией практически так же, как конечный DNS-сервер и его пользователь. Впрочем, это не значит, что они подвержены тем же самым атакам. По крайне мере, одного воздействия можно не опасаться: речь идет о перехвате DNS-запросов. И действительно, для осуществления этой атаки нужно, чтобы компьютер хакера находился на пути основного трафика или размещался в сегменте вышестоящего сервера. Как вы сами понимаете, добиться этого практически нереально. Так что на долю злоумышленников остается только одна атака, основанная на бомбардировке жертвы множеством ложных ответов. Давайте разберем ее реализацию немного подробнее.
Хакер с помощью шторма ложных ответов может создать в базе DNS-сервера неверную запись
Сначала хакер отправляет DNS-серверу запрос с каким-либо редким адресом, которого нет в базе данных сервера. После этого он тут же начинает бомбардировать его ложными ответами. При этом злоумышленнику должны быть известны следующие вещи: IP-адрес* вышестоящего сервера (узнать его несложно), адрес запрашиваемого сайта (он и так известен), номер порта (это значение всегда равно 53) и идентификатор. Как вы сами видите, проблемы возникают только с последним параметром. Дело в том, что первоначально он равен единице, а при каждом запросе увеличивается еще на один. То есть хакер не может даже приблизительно знать, какое значение имеет идентификатор. Впрочем, это и не нужно. Дело в том, что поле, отведенное под идентификатор, имеет длину два байта. То есть его зна