Атака TunnelVision позволяет направлять трафик за пределы VPN-туннеля, что дает злоумышленникам возможность прослушивать незашифрованный трафик, при этом сохраняя видимость защищенного VPN-соединения.
Проблема подробно описана в отчете компании Leviathan Security, к которому прилагается и proof-of-concept эксплоит. Атака строится на злоупотреблении опцией 121 в DHCP, которая позволяет настраивать бесклассовые статические маршруты в системе клиента.
Так, злоумышленники поднимают собственный DHCP-сервер, который изменяет таблицы маршрутизации таким образом, чтобы весь VPN-трафик направлялся прямо в локальную сеть или на вредоносный шлюз, вообще не попадая в зашифрованный VPN-туннель.
«Наш метод заключается в запуске DHCP-сервера в той же сети, где находится целевой VPN-пользователь, а также в настройке конфигурации DHCP на использование себя в качестве шлюза, — рассказывают исследователи. — Когда трафик попадает на наш шлюз, мы используем правила переадресации трафика на DHCP-сервере для передачи трафика на легитимный шлюз, за которым наблюдаем».
Так, суть проблемы заключается в отсутствии в DHCP механизма аутентификации для входящих сообщений, которые могут влиять на маршруты. Уязвимости был присвоен идентификатор CVE-2024-3661.
Исследователи отмечают, что проблема доступна для эксплуатации как минимум с 2002 года, однако случаев ее активного использования хакерами не выявлено.
Leviathan Security уведомила о проблеме многих производителей, а также специалистов Агентства по кибербезопасности и защите инфраструктуры США (CISA), и Фонда электронных рубежей (Electronic Frontier Foundation, EFF).
Уязвимость TunnelVision затрагивает Windows, Linux, macOS и iOS. Поскольку Android не поддерживает опцию 121 DHCP, он является единственной популярной ОС, не подверженной подобным атакам.
TunnelVision в основном представляет опасность для пользователей, подключивших свое устройство к сети, которая уже контролируется злоумышленником или в которой тот присутствует. Так, возможные сценарии атак включают публичные сети Wi-Fi, например, в кафе, отелях и аэропортах.
При этом VPN на целевом устройстве должен быть уязвим для манипуляций с маршрутизацией, что, по словам специалистов, актуально для большинства VPN-клиентов, использующих правила маршрутизации на уровне системы, без защиты от утечек. Кроме того, на целевом устройстве должна быть включена автоматическая настройка DHCP, чтобы вредоносная конфигурация DHCP применялась при подключении к сети. Однако это тоже не редкость.
Специалисты предлагают следующие способы защиты от TunnelVision:
- использовать сетевые namespace в Linux для изоляции сетевых интерфейсов и таблиц маршрутизации от остальной системы, чтобы предотвратить влияние неавторизованных конфигураций DHCP на VPN-трафик;
- настройка VPN-клиентов на запрет всего входящего и исходящего трафика, который не использует VPN (исключения должны ограничиваться строго необходимыми соединениями DHCP и VPN-сервера);
- настройка системы на игнорирование опции 121 DHCP при подключении к VPN, что поможет предотвратить применение вредоносных инструкций маршрутизации, хотя в определенных конфигурациях это может привести к ошибкам;
- подключение через персональные хот-споты или виртуальные машины, что поможет изолировать DHCP от основного сетевого интерфейса хост-системы;
- избегать подключения к недоверенным сетям, так как они являются основной средой для подобных атак.
Также VPN-провайдерам рекомендуется доработать свое клиентское ПО для реализации собственных обработчиков DHCP или внедрить дополнительные проверки безопасности, которые будут блокировать применение опасных конфигураций DHCP.