Венедюхин Александр
Шрифт:
Обмен данными в Интернете, в рамках IP-протокола, организован таким образом, что определяющее значение имеют так называемые автономные системы (упрощенно можно сказать, что это группы узлов, находящиеся под общим управлением и обменивающиеся данными в рамках общей для этой группы политики). В глобальной сети автономные системы известны по номерам, распределением которых в конечном итоге также ведает ICANN (через IANA и сообщества интернет-провайдеров). Каждый известный и достаточно крупный интернет-сервис представляет собой автономную систему (или несколько). Например, Google представлен несколькими автономными системами, не исключение и «Яндекс». Другим примером являются хостинг-провайдеры – обычно они также работают в рамках одной или нескольких собственных автономных систем. Если организация, распределяющая номера автономных систем, решит, что, скажем, у Google не должно быть номера автономной системы, и удалит этот номер из особых таблиц, определяющих маршрутизацию, то достаточно быстро сети Google окажутся недоступны в Интернете – Google погаснет. IP-адресация – это второй «главный рубильник».
Есть и рубильники поменьше, позволяющие отключить только какой-то сегмент адресного пространства, например сайты, размещенные у заданного хостинг-провайдера, или домены, размещенные в заданной доменной зоне. Конечно, не стоит делать выводы, что тот или иной «главный рубильник» будет использован. Пока что таких прецедентов не было. Тем не менее «рубильники» существуют.
Разберем ситуацию с рубильником от DNS на простых примерах. Удалить из доменной зоны можно не только домен второго уровня, но и домен первого уровня. Оба этих момента мы рассмотрели ранее. В результате все сайты в домене станут недоступны. Так как опрос DNS начинается с корневых серверов, то внесение изменений в корневую зону позволяет не только отключить любой домен первого уровня, но и, например, перенаправить трафик внутри этого домена на другие адреса. Конечно, требуется административный доступ к корневой зоне DNS.
Посмотрим на катастрофический сценарий с DNS чуть более детально. Предположим, что кому-то требуется перехватить управление некоторым национальным доменом. Адресация в национальном домене глобально определяется серверами имен, которые заданы для него в корневой зоне. Путь для перехвата: изменяется запись в корне, новая версия указывает на другие сервера имен. Все корневые серверы получают файл доменной зоны из одного источника. Соответственно, если изменить адреса в исходном файле, то при очередном обновлении изменения распространятся на все экземпляры распределенной корневой зоны.
После изменения адресов серверов имен в корневой зоне начнется постепенное вытеснение старой информации об адресации в зоне (а она касается всех доменов уровнем ниже) из глобальной DNS. Постепенное, потому что записи на разных серверах кэшируются.
Понятно, что на новых серверах домена верхнего уровня может быть прописана совсем другая адресация для имен уровнем ниже. Но можно и сохранить имевшуюся на момент перехвата управления адресацию. Для этого потребуется заблаговременно получить файл зоны с действующих серверов имен, содержащий все записи о доменах уровнем ниже. Разместив на новых серверах имен копию старого файла зоны, можно замаскировать перехват: для пользователей ничего не изменится. (Конечно, файл зоны может быть «засекречен», но на уровне положения операторов корня DNS такой расклад выглядит непрактичным: они могут попросить свежую копию заранее.)
Забрав управление доменом в описанном незаметном режиме, новый администратор может переадресовать только какие-то ключевые сайты, оставив основную часть адресных настроек без изменений. Этот способ особенно хорош в том случае, если новый администратор не желает, например, чтобы под удар попали лояльные к нему интернет-сервисы: ведь понятно, что если удалить домен полностью, то недоступными окажутся все ресурсы сразу; копирование установленной адресации сильно смягчает ситуацию для рядовых пользователей. (Да, администраторы не смогут менять настройки доменов и т. п., и т. д. но это не так страшно.)
Заметьте, что изменение DNS коснется и электронной почты в домене. Она начнет ходить «не туда».
Вывод: в отличие, например, от радиоэфира, в Интернете не только можно отключить «главным рубильником» вещателей и слушателей, но и избирательно подменить вещателей (скорректировав адресные записи для выбранных доменов второго уровня). Все изменения делаются централизованно, сразу во всем виртуальном пространстве.
Впрочем, описанный катастрофический сценарий скрывает в себе «второй конец палки». Развернув ключевые особенности реализации в обратную сторону, можно, например, в рамках некоторых автономных сетей, подключенных к Интернету, изменить адресацию в выбранных внешних доменах DNS. Делается это так. Предположим, нам нужно переадресовать (или заблокировать доступ) домен facebook.com. Из легитимной DNS можно легко узнать IP-адреса серверов имен (NS), которые отвечают за этот домен. Теперь «пограничный» маршрутизатор (устройство, обеспечивающее связь автономной сети с Интернетом) настраивается таким образом, что отправляет копии запросов, предназначенных NS домена facebook.com, специальным подставным компьютерам, находящимся под контролем «нужных администраторов».
Отличить запросы в трафике – задача элементарная: они фильтруются по адресам, ранее определенным с помощью DNS. Задача подставных компьютеров – ответить на запрос быстрее, чем это сделают настоящие NS. Ответ, естественно, может содержать совсем другие адреса серверов, а не те, которые назначили администраторы глобального домена facebook.com. Если подставной компьютер находится физически ближе к сети, трафик которой перенаправляется, то ответить быстрее легального NS – несложно. А в случае, если нужно более жестко переопределить адресацию, можно не опережать ответы легальных серверов имен, а просто блокировать их – сразу перенаправляя запросы на подставной сервер.
Я описывал методы DNS-инъекции в прошлом издании книги, вышедшем весной 2011 года. Эти методы, между тем, настолько хороши, что их, как стало известно в 2013 году из опубликованных секретных документов, с успехом использовало на практике Агентство национальной безопасности США (служба, занимающаяся электронной разведкой).
Понятно, конечно, что для уверенной реализации данного метода искажения DNS нужно обладать «уровнем доступа» интернет-провайдера. Аналогичный фокус можно проделать и с корневыми серверами DNS, правда, схема несколько усложняется, но зато можно переопределить сразу всю систему доменных имен. Схема применима в качестве меры борьбы против гипотетического отъема национального домена, но для успешной реализации нужно заранее взять на вооружение такие технологии, как Anycast (что, например, частично сделано в доменах RU и РФ).