Визначення сеансів OpenVPN у транзитному трафіку

Група дослідників з університету Мічігану опублікувала результати дослідження можливості ідентифікації (VPN Fingerprinting) з'єднань до серверів на базі OpenVPN при моніторингу транзитного трафіку. У результаті було виявлено три способи ідентифікації протоколу OpenVPN серед інших мережевих пакетів, які можуть використовуватися в системах інспектування трафіку блокування віртуальних мереж на базі OpenVPN.

Тестування запропонованих методів у мережі інтернет-провайдера Merit, що налічує понад мільйон користувачів, показало можливість ідентифікації 85% OpenVPN-сеансів за незначного рівня помилкових спрацьовувань. Для перевірки був підготовлений інструментарій, який спочатку пасивно на льоту визначав трафік OpenVPN, а потім засвідчується в коректності результату через активну перевірку сервера. На створений дослідниками аналізатор був відображений потік трафіку, інтерсивністю приблизно 20 Gbps.

Визначення сеансів OpenVPN у транзитному трафіку

В ході експерименту аналізатор зміг успішно визначити 1718 із 2000 тестових OpenVPN-з'єднань, встановлених підставним клієнтом, на якому було використано 40 різних типових конфігурацій OpenVPN (метод успішно спрацював для 39 із 40 конфігурацій). Крім того, за вісім днів проведення експерименту в транзитному трафіку було виявлено 3638 сеансів OpenVPN, з яких було підтверджено 3245 сеансів. Зазначається, що верхня межа хибних спрацьовувань у запропонованому методі на три порядки нижче, ніж у методах, що раніше пропонувалися, заснованих на застосуванні машинного навчання.

Окремо було оцінено роботу методів захисту від відстеження трафіку OpenVPN у комерційних сервісах — із 41 протестованого VPN-сервісу, який використовує методи приховування трафіку OpenVPN, трафік вдалося ідентифікувати у 34 випадках. Сервіси, які не вдалося виявити, крім OpenVPN використовували додаткові шари для приховування трафіку (наприклад, прокидання OpenVPN-трафіку через додатковий шифрований тунель). Більшість успішно визначених сервісів використовували спотворення трафіку за допомогою операції XOR, додаткові шари обфускації без належного випадкового доповнення трафіку або наявність необфускованих OpenVPN-служб на тому ж сервері.

Задіяні способи ідентифікації ґрунтуються на прив'язці до специфічних для OpenVPN шаблонів у незашифрованих заголовках пакетів, розміру ACK-пакетів та відповіді сервера. У першому випадку як об'єкт для ідентифікації на стадії узгодження з'єднання може використовуватися прив'язка до поля «opcode» в заголовку пакетів, яке приймає фіксований діапазон значень і певним чином змінюється в залежності від стадії установки з'єднання. Ідентифікація зводиться у виявленні певної послідовності зміни opcode у перших N-пакетах потоку.

Другий спосіб полягає в тому, що ACK-пакети застосовуються в OpenVPN тільки на стадії узгодження з'єднання і при цьому мають специфічний розмір. Ідентифікація ґрунтується на тому, що ACK-пакети заданого розміру зустрічаються лише у певних частинах сеансу (наприклад, при використанні OpenVPN перший ACK-пакет зазвичай є третім пакетом даних, переданим у сеансі).

Визначення сеансів OpenVPN у транзитному трафіку

Третій метод є активною перевіркою та обумовлений тим, що у відповідь на запит скидання з'єднання сервер OpenVPN відправляє певний RST-пакет (перевірка не працює при використанні режиму «tls-auth», оскільки OpenVPN-сервер при ньому ігнорує запити від клієнтів, не автентифікованих через TLS).

Визначення сеансів OpenVPN у транзитному трафіку


Джерело: opennet.ru

Додати коментар або відгук