Група изследователи от Мичиганския университет публикуваха резултатите от проучване относно възможността за идентификация (VPN Fingerprinting) на връзки към OpenVPN сървъри при мониторинг на транзитния трафик. В резултат бяха открити три метода за идентификация на OpenVPN протокола сред други мрежови пакети, които могат да се използват в системи за инспекция на трафика за блокиране на виртуални мрежи, базирани на OpenVPN.
Тестването на предложените методи в интернет мрежата на провайдера Merit, който има над един милион потребители, показа възможността за идентификация на 85% от OpenVPN сесиите с незначителен брой фалшиви срабатывания. За проверката беше подготвен инструмент, който първоначално в пасивен режим в реално време идентифицира OpenVPN трафика, а след това удостоверява коректността на резултатите чрез активна проверка на сървъра. На анализа, създаден от изследователите, беше отразен поток с трафик с интензивност около 20 Gbps.

По време на експеримента анализаторът успя успешно да определи 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 изпраща определен RST-пакет (проверката не работи при използване на режима „tls-auth“, тъй като OpenVPN-сървърът при него игнорира заявки от клиенти, не автентикирани чрез TLS).

Източник: opennet.ru
