Чем опасны публичные сети и почему VPN Не поможет


Недавно команда Leviathan security обнаружила новую технологию, которая обходит инкапсуляцию VPN. Злоумышленник может использовать её для принудительного вывода трафика целевого пользователя из VPN-туннеля с помощью встроенных функций DHCP. В результате пользователь передаёт не зашифрованные VPN пакеты, и злоумышленник может прослушивать его трафик. Для обозначения этого явления выбран термин decloaking. Важно отметить, что канал сохраняется под управлением VPN, поэтому аварийные выключатели kill switch не срабатывают, и пользователи отображаются подключенными к VPN.

Нет света в конце туннеля

Описанная технология, возможно, была доступна еще в 2002 году и вполне могла быть использована злоумышленниками. 

Leviathan security нашли способ защиты от этой технологии, а также исправление, существующее в операционных системах на базе Linux. Однако это исправление предлагает побочный канал, который может быть использован как для защиты от DoS-атак, так и для деанонимизации пункта назначения трафика через его анализ. Это не всегда безопасно.

Решить проблему через простое удаление поддержки функции DHCP нельзя, поскольку это может привести к нарушению подключения к интернету. Лучшая на данный момент рекомендация провайдерам VPN: реализовать сетевые пространства имен в поддерживающих их операционных системах, аналогично методу, описанному в документации WireGuard. Сетевые пространства имен — это функция Linux, которая позволяет сегментировать интерфейсы и таблицы маршрутизации, изолируя их от контроля локальной сети. 


Decloaking-атаки



При каких условиях может произойти раскрытие VPN-трафика

  • Целевой хост должен принять выделенный DHCP IP-адрес от сервера, контролируемого злоумышленником.
  • DHCP-клиент целевого хоста должен реализовать опцию DHCP 121.

Есть способы, с помощью которых злоумышленник, находящийся в одной сети с целевым пользователем, может стать его DHCP-сервером:

  • Неавторизованный DHCP-сервер использует атаку DHCP starvation против настоящего DHCP, а затем отвечает на запросы новых клиентов. Мы смогли воспроизвести это в лабораторных условиях.
  • Неавторизованный DHCP-сервер стремится ответить на широковещательные сообщения DHCPDISCOVER, чтобы злоупотребить обычным поведением DHCP-клиентов, когда они принимают первый предложенный им выделенный IP-адрес.
  • Подмена ARP для перехвата трафика между настоящим DHCP-сервером и клиентом с последующим ожиданием, пока клиент продлит аренду адреса.

Проведение атаки

Техника Leviathan security заключается в том, чтобы запустить DHCP-сервер в той же сети, что и целевой пользователь VPN, и настроить конфигурацию DHCP на использование себя в качестве шлюза. Когда трафик попадает на их шлюз, Leviathan security использует правила переадресации трафика на DHCP-сервере, чтобы передать трафик на легитимный шлюз, одновременно его отслеживая.

Для установки маршрута в таблице маршрутизации пользователя VPN Leviathan security использует опцию DHCP 121. Маршрут, который они задают, является произвольным, и при необходимости можно установить несколько маршрутов. Задавая более конкретные маршруты, чем используемый  в большинстве VPN диапазон /0 CIDR, можно создавать правила маршрутизации с более высоким приоритетом, чем маршруты для виртуального интерфейса, создаваемого VPN. Leviathan security может установить несколько маршрутов /1, чтобы воссоздать правило 0.0.0.0/0 для всего трафика, установленное большинством VPN.

Указание определённого маршрута также означает, что сетевой трафик будет отправляться через тот же интерфейс, что и DHCP-сервер, а не через виртуальный сетевой интерфейс. Эта предполагаемая функция четко не указана в RFC. Таким образом, для заданных маршрутов трафик никогда не шифруется виртуальным интерфейсом VPN, вместо этого он передаётся сетевым интерфейсом, который взаимодействует с DHCP-сервером. В итоге злоумышленник может выбрать, какие IP-адреса будут проходить через туннель, а какие — через сетевой интерфейс, обращаясь к его DHCP-серверу.

Рисунок 7. Вредоносный маршрут DHCP 121, из-за которого трафик никогда не шифруется процессом VPN.

Вредоносный маршрут DHCP с опцией 121, из-за которого трафик никогда не шифруется VPN.

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

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

Доказательство концепции

Воспроизведены следующие сценарии:

  • Злоумышленник компрометирует DHCP-сервер/точку доступа.

  • Администратор-преступник сам владеет инфраструктурой и настраивает ее со злым умыслом.

  • Злоумышленник устанавливает двойную беспроводную точку доступа в публичном месте, например в кафе или корпоративном офисе.

  • Когда Leviathan security выпустит свой инструмент ArcaneTrickster, лабораторию также можно будет использовать для имитации действий злоумышленника, который имеет соседний хост в сети и не занимает в этой сети привилегированного положения.

Как пофиксить

Сетевые пространства имен

Использование сетевых пространств имен в Linux может всё полностью исправить. Однако это редко реализуется.

В документации WireGuard показано, как можно использовать пространство имен для всех приложений с трафиком, который должен использовать VPN, перед отправкой его в другое пространство имен, содержащее физический интерфейс. Однако, похоже, это специфичный для Linux функционал, и неясно, существует ли аналогичное решение для Windows, MacOS или других операционных систем с такой же степенью надежности.

Минимизация рисков

Правила брандмауэра

Leviathan security наблюдали, как провайдеры VPN запрещали весь входящий и исходящий трафик на физический интерфейс с помощью правил брандмауэра. Исключение необходимо было сделать  для IP-адресов DHCP- и VPN-серверов, поскольку они необходимы для того, чтобы сохранять подключение к локальной сети и VPN-серверу. Глубокая проверка пакетов также может разрешить только протоколы DHCP и VPN, но это, скорее всего, приведет к снижению производительности.

Проблемы с минимизацией рисков через правила брандмауэра

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

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

Особенности побочного канала:

  • Трафик можно проверить по заранее составленному списку.

  • Трафик может быть выборочно заблокирован механизмами цензуры.

  • Злоумышленник может использовать запрет в пространстве Ip-адресов с помощью двоичного поиска для определения всех текущих соединений за логарифмическое время.

Игнорировать опцию 121

Еще одно возможное решение — игнорирование опции 121 при включенном VPN. В Android вообще не реализована поддержка опции 121 DHCP и это никак не влияет на работу. Недостатком является то, что опция 121 существует не просто так, и игнорирование этих маршрутов может привести к нарушению сетевого соединения (об этом часто говорят, когда просят реализовать эту опцию на Android).  Если это средство защиты будет реализовано, оно должно быть обязательным, поскольку злоумышленники могут просто запретить доступ к сети, пока VPN или пользователь не включит опцию 121.

Используйте Hotspot или виртуальную машину

Hotspot — это временные сети Wi-Fi, управляемые устройством сотовой связи. Они создают защищенную паролем локальную сеть с автоматическим преобразованием сетевых адресов. Поскольку эта сеть полностью контролируется устройством сотовой связи и требует пароля, злоумышленник не получит доступа к локальной сети. Виртуальная машина будет работать аналогичным образом, если её сетевой адаптер не находится в режиме моста.

Если вам нужна абсолютная конфиденциальность трафика, не используйте ненадёжные сети.

Влияние на разные сферы деятельности

Является ли TunnelVision уязвимостью?

Спорно. TunnelVision не опирается на нарушение каких-либо свойств безопасности базовых технологий. С нашей точки зрения, TunnelVision — это то, как должны работать DHCP, таблицы маршрутизации и VPN.

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

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

Какие операционные системы затрагивает

В ходе тестирования Leviathan security заметили, что это затрагивает любую операционную систему, которая реализует DHCP-клиент в соответствии со спецификацией RFC и поддерживает маршруты DHCP-опции 121. Сюда входят Windows, Linux, iOS и MacOS. Примечательно, что это не касается Android, поскольку он не поддерживает опцию DHCP 121.

Каких провайдеров VPN затрагивает и какие протоколы VPN

Leviathan security обнаружили, что уязвимы те VPN, которые для защиты трафика хоста полагаются исключительно на правила маршрутизации. Те, кто размещает свои собственные VPN-серверы (например, системные администраторы) и не допиливает настройки VPN-клиентов, вероятно, также будут уязвимы. Leviathan security наблюдали меры по минимизации рисков со стороны некоторых провайдеров VPN, которые снижают трафик на интерфейсы, не поддерживающие VPN, с помощью правил брандмауэра. Возможно, существуют и другие методы, с которыми мы не столкнулись во время тестирования.

Leviathan security наблюдали одинаковое поведение в каждой протестированной нами операционной системе, за исключением одной. Более того, надежность алгоритма шифрования, который использует VPN, не имеет значения.  Эффект TunnelVision не зависит от базового протокола VPN (например, WireGuard, OpenVPN или IPsec), поскольку он перенастраивает сетевой стек операционной системы, от которого зависит VPN.

Заключение

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

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

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

Женщина-инженер тестирует ноутбук в промышленной средеКомпании, которые контролируют свои собственные сети или имеют межсетевые VPN, должны проверить используемые ими коммутаторы и включить такие функции, как отслеживание DHCP и защиту ARP. Эта защита уровня 2 помогает предотвратить несанкционированные DHCP-серверы, однако не устраняет сценарий несанкционированного администратора. Кроме того, внедрение HTTPS или других протоколов с шифрованием для внутренних ресурсов предотвратит утечку данных от пользователей VPN, подключающихся из ненадежных сетей.

Поставщики VPN могут добавлять клиентам функции для настройки правил брандмауэра, которые перекидывают исходящие пакеты на сетевые интерфейсы. Однако такая настройка будет означать, что пользователь VPN будет изолирован от ресурсов локальной сети. Если VPN-клиент предназначен для Linux и представляет собой полный туннель, для изоляции используются сетевые пространства имен. 


Полезный материал?
1
0
автор: Олег
опубликовано: 20.05.2024
Читайте нас: 
Последние статьи
Вверх!