
Во многих современных IT-системах IPv6, как правило, включён по умолчанию. Это относится и к операционным системам, и к серверам, и к сетевому оборудованию, и к контейнерным платформам. Даже если в компании или проекте официально используется только IPv4, IPv6 чаще всего уже присутствует и функционирует — без явного внимания со стороны архитекторов и специалистов по ИБ.
Это важный момент, потому что безопасность обычно строится вокруг того, что явно спроектировано. Если протокол не заложен в архитектуру, под него редко настраивают фильтрацию, мониторинг и контроль. IPv6 в таких случаях — не «новая технология», а незадокументированный элемент системы.
На уровне операционных систем ситуация выглядит достаточно просто. Windows, Linux и другие распространённые ОС по умолчанию включают IPv6-стек. Хост получает link-local адрес, начинает участвовать в обмене служебным IPv6-трафиком и может принимать соединения по IPv6, даже если в сети никто сознательно не планировал его использование. При этом администратор уверен, что система «IPv4-only», потому что все прикладные настройки и политики на хостах делались именно под IPv4. Фильтрация и правила доступа при этом настраиваются только для IPv4, потому что именно он фигурирует в техническом задании и в документации.
Да, нормальный межсетевой экран настроен на блокировку всех соединений, если явно не разрешено иное. Однако IPv6 трафик на этапе атаки не ходит через пограничный сетевой файрвол, который «рулит» основной частью трафика. Он остается в своем сегменте и ходит между соседями, хостовый файрвол которых разрешает такие соединения.
В результате сервер может оказаться доступным по IPv6 по совершенно другой логике, чем по IPv4, и это долгое время остаётся незамеченным. Отсутствие контроля приводит к тому, что всё использование IPv6 в организации является неучтенной поверхностью атаки.
Использование IPv6-конфигурации для атаки
Развивая мысль выше: в корпоративной сети с Active Directory IPv4 тщательно контролируется: DHCP-серверы известны, DNS-серверы заданы, маршрутизация предсказуема. IPv6 при этом включён на эндпоинтах, но не управляется. Windows-клиенты поддерживают IPv6, принимают Router Advertisement и готовы использовать IPv6 для DNS и других сервисов, если он доступен.

Атакующий, находясь в локальном сегменте, может воспользоваться этим. Запуская поддельные IPv6 Router Advertisement, он предлагает клиентам альтернативный, но формально корректный путь конфигурации. В результате Windows-машины начинают использовать атакующий узел как DNS-сервер или промежуточный маршрутизатор. Это позволяет атаковать аутентификацию и ретранслировать NTLM/Kerberos с дальнейшим развитием атаки внутри домена.

Ключевой момент здесь в том, что аналогичные атаки возможны и в IPv4. Поддельный DHCP, DNS — всё это известно. Разница лишь в том, что для IPv4 такие сценарии обычно учитываются в модели угроз и закрываются. Для IPv6 — обычно нет. Получив IPv6-адрес, система будет направлять DNS-запросы и другой служебный трафик именно по этому протоколу.
В итоге, даже в IPv4-среде, клиент может прозрачно переключиться на использование IPv6, чьи каналы контроля остаются незащищёнными, что и позволяет злоумышленнику перехватить трафик.
Атака в деталях
Все версии Windows, начиная с Windows Vista (включая серверные варианты), по умолчанию имеют включенный IPv6 и отдают ему предпочтение перед IPv4. Например, если DNS для доменного имени хоста возвращает две записи: одну IPv4 (A) и вторую в IPv6 (AAAA), то подключение будет идти по IPv6. Это происходит потому что Windows с какого-то момента разрабатывается как dual-stack система, то есть с параллельным использованием IPv4 и IPv6 адресов. Да, разговоры о всеобщем переезде с IPv4 на IPv6 ведутся уже лет 10–15, воз и ныне там, но это тема для другой статьи.
Ключевую роль для рассматриваемого сценария играет механизм IPv6-автоконфигурации, основанный на Router Solicitation и Router Advertisement. При запуске Windows-хоста система инициирует IPv6-обнаружение сети, отправляя Router Solicitation и принимая параметры из Router Advertisement. Атакующий, используя вредоносное ПО, выступает в качестве IPv6-маршрутизатора и отвечает на запрос, устанавливая хост злоумышленника в качестве DNS-сервера по умолчанию.
Для ответа на запрос атакующему необходимо находиться в одном L2-сегменте (широковещательном домене) с жертвой. Это может быть скомпрометированная рабочая станция, подключение к рабочей Wi-Fi сети офиса или гостевой порт коммутатора, заведенный в рабочий VLAN из-за неправильной сегментации или в результате проведенной атаки VLAN Hopping.
Как инструмент для проведения атаки может использоваться ПО mitm6. Оно автоматизирует отправку поддельных IPv6 Router Advertisement и навязывает жертве собственный DNS-сервер, создавая условия для дальнейшего развития атаки. Важно подчеркнуть, что IPv4-конфигурация хоста при этом не ломается и продолжает работать — атака добавляет альтернативный IPv6-путь, который Windows считает валидным.

Атака считается успешной, если получен контроль над DNS-запросами хоста жертвы. После получения поддельной IPv6-конфигурации клиент начинает использовать DNS-сервер, указанный атакующим. С точки зрения системы это валидный DNS — он отвечает быстро и возвращает корректные с точки зрения ОС записи. В результате атакующий получает возможность управлять тем, какие IP-адреса будут возвращаться для определённых доменных имён. Таким образом атакующий получает возможность влиять на то, куда жертва будет обращаться дальше.
Развитие атаки по шагам:
0. IPv6 на хосте включен, но не используется. Весь L2-сегмент и AD в целом работают на IPv4. Атакующий имеет закрепление в этом L2-сегменте и включает mitm6.
mitm6 начинает рассылать Router Advertisement (RA) ICMPv6 по сегменту.
-
Хосты отправляют Router Solicitation (RS) ICMPv6, то есть спрашивают «Есть тут живые роутеры?».

Как запросы RS видны в Wireshark Хосты получают RA от mitm6 и через механизм Stateless Address Auto-configuration (SLAAC) настраивают себе IPv6 адрес, путь по умолчанию (через атакующего) и адрес DNS-сервера. Хост-жертва начинает считать атакующего легитимным IPv6 маршрутизатором и DNS-сервером.
При отправке запроса на разрешение имени ресурса в IP-адрес атакующий может послать в ответ любой адрес — теперь он решает, куда ходит жертва. Например, при запросе IP-адреса контроллера домена dc01.lab.local он может «подсунуть» свой IP-адрес вместо настоящего. В результате любой запрос к доменной инфраструктуре уходит к атакующему.
Это приводит к тому, что хост начинает аутентифицироваться к атакующему. При запросе якобы доменного ресурса хост отправляет NTLM/Kerberos-аутентификацию.
Аутентификационная информация перехватывается и ретранслируется.
Наиболее широко описаны связки mitm6 и ntlmrelayx/krbrelayx. Windows в доменной среде регулярно выполняет служебные обращения к различным ресурсам — файловым, сетевым, каталоговым. Когда Windows попытается обратиться на такой ресурс внутри домена, она получит от DNS ответ с IP-адресом атакующего. В этот момент в качестве подставного сервера может выступить ntlmrelayx для ретрансляции NTLM-аутентификации и krbrelayx – для ретрансляции Kerberos.
Почему не сработают традиционные меры защиты
Одна из причин, по которой атака mitm6 остаётся эффективной даже в зрелых инфраструктурах, — она плохо ложится на привычные модели обнаружения угроз.
Традиционные средства защиты — антивирусы, EDR, IDS — ориентированы на поиск аномалий, эксплойтов или вредоносного кода. В случае MITM6 ничего из этого не происходит. Сканеры уязвимостей тоже ничего не найдут, потому что атака подобного рода — не следствие эксплуатации какой-либо CVE. Все действия выполняют стандартные компоненты операционной системы: сетевой адаптер, DNS-клиент, механизмы автоконфигурации IPv6 и встроенная логика Windows. IDS/IPS теоретически могли бы заметить подозрительную активность, вот только располагаются они чаще всего на периметре, анализируя трафик «север-юг» — входящий и исходящий трафик организации. MITM6 же работает внутри одного L2-сегмента, где трафик вообще не проходит через точки мониторинга. Router Advertisement, DNS-запросы по IPv6 будут полностью вне поля зрения сетевых сенсоров.
Решения класса NDR увидят такой трафик, и аналитику сразу бросится в глаза IPv6 трафик, если в организации принято использовать IPv4, и у SOC есть представление, что это не норма. Проблема заключается в том, что не у каждой организации есть решение подобного класса.
Эффективные меры защиты
Атаки MITM6 — злоупотребление доверенными механизмами операционных систем, а именно — автоконфигурацией IPv6. Как следствие, меры защиты не должны строиться вокруг обнаружения вредоносного кода. Они должны носить архитектурный характер в части контроля сети.
Если IPv6 не используется, отключить его, вероятно, — хорошая идея. Большинство статей в интернете негативно относится к такому решению, ссылаясь на глубокую интеграцию протокола в Windows и на то, что переход на него — вопрос времени. Однако, эти разговоры ведутся не первый год, и отключение IPv6 на клиентах и сетевых устройствах после тестирования является, всё же, выходом из ситуации.
-
Системный подход — взвесить «за и против» и принять одно из двух положений:
запретить IPv6 в инфраструктуре и мониторить любые его проявления как инцидент;
-
разрешить IPv6, но:
задокументировать, где он используется,
определить, откуда могут приходить RA,
настроить фильтрацию и мониторинг.
Это решение выведет IPv6 «из тени» промежуточного состояния, когда непонятно, то ли он есть, то ли его нет.
Использовать RA Guard/DHCPv6 Guard. Пожалуй, единственная мера, которая борется с первопричиной атаки. MITM6 начинается с поддельных Router Advertisement. Если RA-сообщения будут разрешены только с портов, где действительно находятся маршрутизаторы, то реализовать атаку MITM6 будет гораздо сложнее. Здесь приведена статья об RA Guard от Juniper.

Включить LDAP Signing, SMB Signing и LDAP channel binding. Даже если атакующему удалось занять позицию MITM, он не должен иметь возможности использовать результат перехвата.
Заключение
Основная проблема, которую демонстрирует MITM6, заключается в том, в каком статусе IPv6 находится в большинстве корпоративных сетей. Он существует, он включён по умолчанию, он используется операционными системами, но при этом практически нигде не описан и не контролируется. IPv6 оказывается в «серой зоне» — он есть, но как будто бы его нет.
Наверное, это можно назвать «двойными стандартами»? IPv4 тщательно задокументирован в IP-планах и схемах, защищён межсетевыми экранами и контролируется средствами мониторинга. IPv6 же часто остаётся вне архитектуры: под него не настраиваются фильтры и не описываются требования к конфигурации на хостах. Это создаёт разрыв между ожидаемым и реальным поведением систем. Да, вполне вероятно, большую часть времени расхождение между ожиданиями и реальностью весьма незначительны. Но если когда-то что-то пойдет не так, смогут ли инженеры понять, в чем дело?
НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS
anyagixx
С самого начала своего пути везде где вижу ipv6 отключаю