Określenie sesji OpenVPN w ruchu tranzytowym

Grupa badawcza z Uniwersytetu Michigan opublikowała wyniki badań dotyczących możliwości identyfikacji (VPN Fingerprinting) połączeń z serwerami opartymi na OpenVPN podczas monitorowania ruchu tranzytowego. Ostatecznie zidentyfikowano trzy metody identyfikacji protokołu OpenVPN wśród innych pakietów sieciowych, które mogą być używane w systemach inspekcji ruchu w celu blokowania wirtualnych sieci opartych na OpenVPN.

Testowanie zaproponowanych metod w sieci dostawcy internetowego Merit, który ma ponad milion użytkowników, wykazało możliwość identyfikacji 85% sesji OpenVPN przy niewielkim poziomie fałszywych alarmów. W celu przeprowadzenia testów przygotowano narzędzie, które najpierw w trybie pasywnym na bieżąco identyfikowało ruch OpenVPN, a następnie weryfikowało poprawność wyników poprzez aktywne sprawdzenie serwera. Na stworzonym przez badaczy analizatorze odzwierciedlono strumień ruchu o intensywności około 20 Gbps.

Określenie sesji OpenVPN w ruchu tranzytowym

W trakcie eksperymentu analizator pomyślnie zidentyfikował 1718 z 2000 testowych połączeń OpenVPN ustanowionych przez podstawionego klienta, na którym wykorzystano 40 różnych typowych konfiguracji OpenVPN (metoda pomyślnie zadziałała dla 39 z 40 konfiguracji). Dodatkowo, w ciągu ośmiu dni trwania eksperymentu, w ruchu tranzytowym zidentyfikowano 3638 sesji OpenVPN, z których 3245 potwierdzono. Zauważono, że górna granica fałszywych alarmów w proponowanej metodzie jest o trzy rządów niższa niż w wcześniej proponowanych metodach opartych na zastosowaniu uczenia maszynowego.

Osobno oceniono działanie metod ochrony przed śledzeniem ruchu OpenVPN w komercyjnych serwisach — z 41 przetestowanych VPN-serwisów wykorzystujących metody ukrywania ruchu OpenVPN, udało się zidentyfikować ruch w 34 przypadkach. Serwisy, które nie zostały wykryte, oprócz OpenVPN, stosowały dodatkowe warstwy ukrycia ruchu (na przykład przez tunel dodatkowego szyfrowania). W większości z powodzeniem zidentyfikowanych serwisów stosowano zniekształcenie ruchu przy użyciu operacji XOR, dodatkowe warstwy obfuskacji bez odpowiedniego losowego uzupełnienia ruchu lub istnienie nieobfuskowanych usług OpenVPN na tym samym serwerze.

Metody identyfikacji opierają się na powiązaniu ze specyficznymi dla OpenVPN szablonami w niezaszyfrowanych nagłówkach pakietów, rozmiarze pakietów ACK oraz odpowiedziach serwera. W pierwszym przypadku, do identyfikacji na etapie negocjacji połączenia można wykorzystać powiązanie z polem „opcode” w nagłówku pakietów, które przyjmuje stały zakres wartości i zmienia się w określony sposób w zależności od etapu nawiązywania połączenia. Identyfikacja polega na wykryciu określonej sekwencji zmian opcode w pierwszych N pakietach strumienia.

Drugi sposób opiera się na tym, że pakiety ACK są stosowane w OpenVPN tylko podczas etapu negocjacji połączenia i mają specyficzny rozmiar. Identyfikacja polega na tym, że pakiety ACK o zadanym rozmiarze występują tylko w określonych częściach sesji (na przykład w przypadku używania OpenVPN pierwszy pakiet ACK jest zazwyczaj trzecim pakietem z danymi przesyłanymi w sesji).

Określenie sesji OpenVPN w ruchu tranzytowym

Trzecia metoda polega na aktywnej weryfikacji i jest uzależniona od tego, że w odpowiedzi na żądanie zresetowania połączenia serwer OpenVPN wysyła określony pakiet RST (weryfikacja nie działa w trybie „tls-auth”, ponieważ serwer OpenVPN w tym trybie ignoruje żądania od klientów, którzy nie są uwierzytelniani przez TLS).

Określenie sesji OpenVPN w ruchu tranzytowym


Źródło: opennet.ru
Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster