Группа специалистов Мичиганского университета опубликовала результаты исследования , выявившего три метода идентификации ” data-html=”true” data-original-title=”VPN” >VPN-соединений, устанавливаемых с использованием протокола OpenVPN. Разработанные методы могут применяться в системах мониторинга и инспектирования трафика для обнаружения и блокирования виртуальных частных сетей на базе OpenVPN.
В ходе тестирования в сети интернет-провайдера Merit, насчитывающей свыше миллиона пользователей, предложенные способы идентификации смогли выявить 85% OpenVPN-сеансов при минимальном уровне ложных срабатываний. Для проверки была подготовлена утилита, первоначально в пассивном режиме определявшая OpenVPN-трафик, а затем проводившая активное тестирование сервера для подтверждения результатов. Созданный анализатор тестировался на зеркалированном потоке интенсивностью около 20 Гбит/с.
В рамках эксперимента анализатор успешно идентифицировал 1718 из 2000 тестовых OpenVPN-соединений, установленных имитированным клиентом с использованием 40 различных типовых конфигураций (метод сработал для 39 из 40 конфигураций). За восемь дней в транзитном трафике было выявлено 3638 OpenVPN-сеансов, из которых 3245 были подтверждены. Количество ложных срабатываний оказалось на три порядка ниже, чем у ранее предлагавшихся методов на основе машинного обучения.
Также исследователи проверили эффективность коммерческих VPN-сервисов в части сокрытия OpenVPN-трафика. Из 41 протестированного сервиса, применяющего обфускацию, трафик был обнаружен в 34 случаях. Сервисы, трафик которых не удалось идентифицировать, помимо OpenVPN использовали дополнительное туннелирование через шифрованные соединения. В большинстве успешно определенных сервисов применялось маскирование трафика посредством XOR-операций, недостаточное случайное дополнение обфусцированного трафика или наличие необфусцированных OpenVPN-служб на тех же серверах.
Установление сеанса OpenVPN (режим TLS)
Задействованные методы идентификации OpenVPN основаны на привязке к специфичным для протокола шаблонам в заголовках незашифрованных пакетов, размеру ACK-пакетов и ответам сервера. Первый метод связан с полем “opcode” в пакетном заголовке, принимающем ограниченный диапазон значений с определенной последовательностью изменений на разных этапах установки соединения. Второй метод использует факт, что ACK-пакеты специфичного размера в OpenVPN встречаются только на стадии согласования. Третий метод представляет активную проверку, основанную на отправке запросов сбрасывания сессии, на которые сервер OpenVPN отвечает определёнными RST-пакетами.