Вызначэнне сеансаў 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

Дадаць каментар