Wykrywanie sesji OpenVPN w ruchu tranzytowym

Grupa badaczy z Uniwersytetu Michigan opublikowała wyniki badania dotyczącego możliwości identyfikacji (VPN Fingerprinting) połączeń z serwerami opartymi na OpenVPN podczas monitorowania ruchu tranzytowego. W rezultacie zidentyfikowano trzy metody identyfikacji protokołu OpenVPN wśród innych pakietów sieciowych, które można wykorzystać w systemach kontroli ruchu do blokowania sieci wirtualnych opartych na OpenVPN.

Testowanie proponowanych metod w sieci dostawcy Internetu Merit, który ma ponad milion użytkowników, wykazało możliwość zidentyfikowania 85% sesji OpenVPN przy niskim poziomie fałszywych alarmów. Do testów przygotowano zestaw narzędzi, który najpierw w trybie pasywnym wykrywał ruch OpenVPN na bieżąco, a następnie weryfikował poprawność wyniku poprzez aktywną kontrolę serwera. Strumień ruchu o natężeniu około 20 Gb/s został odzwierciedlony w stworzonym przez badaczy analizatorze.

Wykrywanie sesji OpenVPN w ruchu tranzytowym

Podczas eksperymentu analizatorowi udało się zidentyfikować 1718 z 2000 testowych połączeń OpenVPN nawiązanych przez fałszywego klienta, który wykorzystywał 40 różnych typowych konfiguracji OpenVPN (metoda zadziałała pomyślnie w przypadku 39 z 40 konfiguracji). Ponadto w ciągu ośmiu dni eksperymentu w ruchu tranzytowym zidentyfikowano 3638 sesji OpenVPN, z czego potwierdzono 3245 sesji. Należy zauważyć, że górna granica wyników fałszywie dodatnich w proponowanej metodzie jest o trzy rzędy wielkości niższa niż w dotychczas proponowanych metodach opartych na wykorzystaniu uczenia maszynowego.

Odrębnie oceniono skuteczność metod ochrony śledzenia ruchu OpenVPN w usługach komercyjnych – spośród 41 przetestowanych usług VPN wykorzystujących metody ukrywania ruchu OpenVPN ruch zidentyfikowano w 34 przypadkach. Usługi, których nie udało się wykryć, oprócz OpenVPN wykorzystywały dodatkowe warstwy w celu ukrycia ruchu (na przykład przekazywanie ruchu OpenVPN przez dodatkowy zaszyfrowany tunel). Większość pomyślnie zidentyfikowanych usług wykorzystywała zniekształcenia ruchu XOR, dodatkowe warstwy zaciemniania bez odpowiedniego dopełniania ruchu losowego lub obecność niezaciemnionych usług OpenVPN na tym samym serwerze.

Stosowane metody identyfikacji opierają się na powiązaniu ze wzorcami specyficznymi dla OpenVPN w niezaszyfrowanych nagłówkach pakietów, rozmiarach pakietów ACK i odpowiedziach serwera. W pierwszym przypadku powiązanie z polem „opcode” w nagłówku pakietu może służyć jako obiekt do identyfikacji na etapie negocjacji połączenia, które przyjmuje ustalony zakres wartości i zmienia się w określony sposób w zależności od połączenia etap konfiguracji. Identyfikacja sprowadza się do zidentyfikowania określonej sekwencji zmian opcode w pierwszych N-pakietach przepływu.

Druga metoda polega na tym, że pakiety ACK wykorzystywane są w OpenVPN dopiero na etapie negocjacji połączenia i jednocześnie mają określony rozmiar. Identyfikacja polega na tym, że pakiety ACK o danej wielkości występują tylko w określonych fragmentach sesji (przykładowo przy korzystaniu z OpenVPN pierwszy pakiet ACK jest zazwyczaj trzecim pakietem danych wysyłanym w sesji).

Wykrywanie sesji OpenVPN w ruchu tranzytowym

Trzecia metoda to kontrola aktywna i polega na tym, że w odpowiedzi na żądanie resetu połączenia serwer OpenVPN wysyła określony pakiet RST (sprawdzenie nie działa w trybie „tls-auth”, gdyż serwer OpenVPN ignoruje żądania od klientów nieuwierzytelnionych przez TLS).

Wykrywanie sesji OpenVPN w ruchu tranzytowym


Źródło: opennet.ru

Dodaj komentarz