Два исследовательских названия используются взаимозаменяемо для любого трафика VPN, который покидает туннель, но механизмы за ними не одинаковы. TunnelCrack описывает два семейства исключений маршрутизации; TunnelVision описывает маршрут, который DHCP выдаёт конечному устройству. Ни один из них не ломает шифрование, и ни один не говорит, что делает сегодня конкретная сборка клиента. Пять проверок отделяют механизмы от заголовка.

Первый шаг: назовите механизм, который вы проверяете

Раскрытие TunnelCrack в августе 2023 года описывает два семейства атак. В случае локальной сети трафик, который клиент считает принадлежащим локальной сети, получает исключение локального доступа и покидает туннель. В случае адреса сервера маршрут, который нужен клиенту, чтобы добраться до самого сервера VPN, находится вне туннеля, и противник, контролирующий этот адрес, может воспользоваться исключением.

TunnelVision — отдельный отчёт о бесклассовых статических маршрутах, которые выдаёт DHCP. Вредоносный сервер DHCP может передать конечному устройству маршруты, меняющие путь трафика, включая путь к серверу VPN. Отчёт признаёт более раннюю работу о связанных эффектах маршрутизации, что напоминает: базовый механизм старше названия.

CaseException it abuses
TunnelCrack local networkTraffic classified as local bypasses the tunnel
TunnelCrack server addressThe route to the VPN server sits outside the tunnel
TunnelVisionDHCP option 121 installs routes that redirect traffic

Держите названия привязанными к их механизмам. Применять исправление для одного потому, что другой в новостях, — это способ, которым проверка создаёт движение без охвата.

Второй шаг: посмотрите на исключение локального доступа

Большинство клиентов исключают трафик локальной сети, чтобы принтеры, трансляция экрана и общий доступ к файлам работали, пока туннель включён. Это исключение — политическое решение с ценой для безопасности: противник в той же сети может представиться локальным хостом, и трафик, который до него доходит, никогда не входил в туннель.

Спросите, нужно ли развёрнутому профилю это исключение вообще. Удалённая рабочая сила, которая никогда не использует локальное обнаружение, часто может его отключить, а до оставшихся локальных служб можно добраться документированным путём. Там, где исключение необходимо, укажите, какие назначения оно покрывает, вместо описания его как локального трафика.

Проверка — это вопрос конфигурации, а не перехват пакетов. Прочитайте настройку профиля и документацию клиента для той сборки, которую развёртываете, потому что значение по умолчанию различается между продуктами и между версиями одного продукта. Запишите ответ рядом с профилем, чтобы следующему проверяющему не приходилось выводить его из поведения. Исключение, которое никто не задокументировал, — это исключение, которое никто не проверяет.

Третий шаг: посмотрите, как узнаётся адрес сервера

Клиент должен достичь сервера VPN до того, как появится хоть какой-то туннель, поэтому это назначение по замыслу маршрутизируется вне туннеля. Если адрес узнаётся из имени, этап разрешения является частью пути доверия, и противник, способный ответить на этот запрос, может направить клиент на хост, который он контролирует.

Закрепление адреса, использование проверенного сертификата с правильным именем и отказ от возврата к непроверенному серверу — всё это снижает риск. Ни одно из них не устраняет необходимость достичь сервера вне туннеля; они меняют, кто может отвечать за этот адрес.

resolvectl query vpn.lab.example
ip route get 198.51.100.24
ip rule show

Поиск маршрута показывает интерфейс, который клиент использовал бы для адреса сервера, и это исключение в конкретной форме. Если этот поиск возвращает интерфейс туннеля, клиент вообще не может установить туннель, поэтому внешний маршрут ожидаем, и вопрос лишь в том, как выбирается его назначение.

Четвёртый шаг: посмотрите на маршруты, которые выдаёт DHCP

Бесклассовые статические маршруты позволяют серверу DHCP раздавать записи таблицы маршрутизации, и конечное устройство обычно принимает их, не спрашивая. В сети, где противник может ответить на DHCP быстрее законного сервера, эти записи могут перенаправить трафик, который пользователь считает находящимся внутри туннеля.

Сравните маршруты на конечном устройстве с маршрутами, которые ожидаете. Маршрут по умолчанию или широкий префикс, указывающий на локальный шлюз, пока туннель включён, — это признак, который стоит расследовать, и он виден без какого-либо трафика атаки.

ip route show table all
ip route get 203.0.113.55
nmcli -g ipv4.ignore-auto-routes con show "Wired connection 1"

Последняя настройка — это управление на стороне конечного устройства, которое многие клиенты и платформы предоставляют в той или иной форме: игнорировать маршруты, выдаваемые сетью. Отключение автоматического приёма маршрутов — компромисс, потому что оно отключает и законную раздельную маршрутизацию от корпоративного сервера DHCP, поэтому решайте это по классу сети, а не глобально.

Пятый шаг: отделите уведомление от текущей сборки

Опубликованная атака описывает поведение, наблюдавшееся на определённых версиях клиента в определённое время. Она не доказывает, что ноутбук перед вами затронут, и не доказывает, что он исправлен. Оба утверждения требуют фактического номера сборки и текущего уведомления поставщика.

Запишите версию клиента, платформу, настройки профиля, которые управляют исключениями выше, и дату проверки. Эта запись стареет честно, а заметка о том, что VPN пропатчили из-за TunnelCrack, стареет нечестно. Перечитывайте её при каждом обновлении клиента, потому что значение профиля по умолчанию может измениться под версией, которую вы не трогали.

Когда вы действительно проверяете, используйте одобренный план против собственного конечного устройства и безвредного назначения. Воспроизведение атаки против других пользователей в общей сети — это не тест, а отключение проверки узлов или шифрования приложения для облегчения наблюдения убирает защиту, которую вы пытались измерить.

Наконец, держите в поле зрения защиту на уровне приложения. Исключение маршрутизации может раскрыть трафик, который туннель нёс бы, а TLS приложения всё ещё защищает этот трафик от конца до конца. Два слоя отказывают независимо, поэтому подключённый канал управления не является доказательством того, что каждый поток пошёл по заданному пути.

Похожие статьи