Основная цель VPN — зашифровать ваше интернет-соединение, защитив информацию от перехвата, просмотра и изменения. Этим пользуются компании для обеспечения безопасной дистанционной работы или для организации связи между филиалами. В быту же VPN помогает защитить конфиденциальность и получить доступ к контенту из определенного региона. Недавно разглашенные уязвимости TunnelCrack позволяют нарушить работу VPN, частично лишая пользователей защиты. Проблема касается большинства корпоративных и бытовых VPN. Как это возможно и что делать для защиты?
В чем суть TunnelCrack
Если подключиться к зловредной точке доступа Wi-Fi или злонамеренному провайдеру Интернета, он может выдать компьютеру или телефону такие настройки, что часть трафика приложений пойдет в незашифрованном виде мимо VPN-туннеля и будет доступна для анализа и изменений. Атака работает вне зависимости от того, какой конкретно VPN-протокол используется для соединения. Но перенаправить весь трафик таким образом затруднительно, так что атакующему придется выбрать какой-то конкретный список интересующих его сайтов и серверов, за общением с которыми он хочет подсматривать.
В атаке эксплуатируется настройка исключений, которая предусмотрена во всех клиентах VPN. Каждое исключение направляет часть трафика мимо зашифрованного VPN-канала. Эта функция действительно нужна как минимум в двух случаях.
Во-первых, чтобы не пускать в VPN-туннель трафик между локальными устройствами. Если ваш компьютер транслирует изображение на ваш же телевизор по локальной сети, делать это через VPN не нужно.
Во-вторых, мимо VPN-туннеля должен направляться уже зашифрованный VPN-клиентом трафик, предназначенный для VPN-сервера. Это тоже логично — если направить его в туннель, он будет повторно зашифрован и все пойдет по второму кругу.
Атака на первое исключение названа авторами LocalNet (CVE-2023-36672 и CVE-2023-35838). «Злой» маршрутизатор (например точка доступа Wi-Fi) выдает жертве неверные настройки сети (таблицы маршрутизации) таким образом, что интересующие атакующих публичные IP-адреса представлены как часть локальной сети. В итоге общение жертвы с этими адресами попадает под исключения и идет в обход туннеля VPN.
Атака на второе исключение — ServerIP (CVE-2023-36673 и CVE-2023-36671). Клиенты как правило обращаются к легитимному VPN-серверу при помощи доменного имени. Атакующий манипулирует своим DNS-сервером, к которому подключается жертва, и возвращает неверный IP VPN-сервера, совпадающий с IP интересующих его целевых ресурсов. При этом VPN-трафик атакующий должен перенаправлять на настоящий VPN-сервер, а поступающий параллельно незашифрованный трафик к целевым IP может менять или анализировать.
Какие сервисы VPN уязвимы к атаке TunnelCrack?
Исследователи заявляют, что все протестированные ими сервисы VPN уязвимы к атаке хотя бы на одной из популярных платформ (Android, iOS, Linux, macOS, Windows). Это заявление подтверждается списком производителей, которые официально заявили об исправлении уязвимостей. Так, Cisco исправила уязвимости в своем корпоративном клиенте VPN Anyconnect (он же Secure Mobility Client). Среди «бытовых» VPN об исправлении заявили около полудюжины крупных игроков, включая Mozilla VPN и Cloudflare WARP.
Интересно, что на разных ОС у приложения VPN есть разный уровень доступа к настройкам. Из-за этого 100% VPN на iOS и macOS оказались уязвимы, в то время как для Android проблема проявилась лишь в четверти приложений. Более того, под Android начиная с 12 версии провести атаку невозможно. На macOS атака возможна на подавляющем большинстве VPN-клиентов, а в случае с Windows проблема актуальна для двух VPN из трех.
Кстати, стандартный клиент VPN, встроенный в Windows, уязвим к этим атакам, и на момент подготовки этого поста Microsoft не планировала выпуск патчей.
Что делать пользователям VPN-сервисов
- Проверьте свой сервис VPN на обновления. Изучите официальный сайт, сделайте запрос в техподдержку. Возможно, ваш поставщик уже обновил свои приложения и настройки. Тогда для решения проблемы может быть достаточно установить обновление. Учтите, что для iOS обновления может и не быть из-за ограничений конфигурации VPN со стороны Apple.
- Для сервисов, основанных на чистом OpenVPN (таких много), возможно применение любого OpenVPN-клиента, в котором устранены уязвимости. Авторы исследования рекомендуют Windscribe.
- В настройках сервиса VPN проверьте исключения. Если там есть опция «пропускать локальный трафик без VPN» или «разрешить доступ к локальной сети», ее нужно отключить. Иными словами, весь трафик должен идти через VPN. У такой настройки есть очевидный недостаток: будет невозможно зайти с компьютера на локальный NAS или управлять по Wi-Fi умной техникой по локальной сети — это получится сделать только через облачные сервисы. В идеале настройка про запрет локального трафика должна применяться только в публичных сетях, вне дома. Но такие тонкие настройки с их разделением по разным сетям встречаются в VPN-клиентах далеко не всегда.
- Настройте безопасный DNS, если не сделали этого ранее. Эта мера не только усложняет атаку ServerIP, но и в целом повышает безопасность работы в сети. Безопасный DNS хорошо дополняет VPN, эти две меры нужно использовать совместно.
Что делать администраторам корпоративных VPN
- Уточните, подвержены ли ваши VPN-клиенты этой уязвимости. Сценарий ручного тестирования описан авторами исследования на GitHub. Необходимо проверить все используемые в организации версии VPN-клиентов для всех актуальных платформ.
- Запросите обновления уязвимых клиентских приложений у поставщика вашего корпоративного VPN. Их оперативно выпустили, например, в Cisco. Учтите, что обновлений для iOS может и не быть из-за ограничений конфигурации Apple.
- Проверьте стандартную конфигурацию VPN-клиента на всех компьютерах. Часто настройка по умолчанию — блокировать локальный доступ к сети. В этом случае атака будет невозможна.
- Если локальный доступ «мимо VPN» нужно сохранить, например обеспечить доступ к принтеру по локальной сети у сотрудника дома, создайте ограничивающие правила на локальном межсетевом экране каждого компьютера, чтобы разрешить только определенные активности из фиксированного списка.
- Используйте инструменты защищенного DNS, которые часто входят в комплексную систему сетевой безопасности для организаций, но также могут быть приобретены отдельно.