Wprowadzono nową technikę ukrytej identyfikacji systemu i przeglądarki

Grupa badaczy z Politechniki w Grazu (Austria), znana wcześniej z opracowywania metod ataku MDS, NetSpectre и Młot miotający, nieosłonięty Informacje o nowej technice analizy kanałów stron trzecich, która pozwala określić dokładną wersję przeglądarki, używanego systemu operacyjnego, architekturę procesora i wykorzystanie dodatków do walki z ukrytą identyfikacją.

Aby określić te parametry, wystarczy uruchomić w przeglądarce kod JavaScript przygotowany przez badaczy. W praktyce metodę można wykorzystać nie tylko jako dodatkowe źródło pośredniej identyfikacji użytkownika, ale także do określenia parametrów środowiska systemowego pod kątem celowego wykorzystania exploitów, biorąc pod uwagę system operacyjny, architekturę i przeglądarkę. Metoda jest również skuteczna w przypadku korzystania z przeglądarek, które implementują mechanizmy blokowania ukrytej identyfikacji, takich jak przeglądarka Tor. Prototyp kodu źródłowego wraz z implementacją metody opublikowane na licencji MIT.

Ustalenia dokonuje się na podstawie identyfikacji wzorców stanu właściwości w JavaScript charakterystycznych dla różnych przeglądarek oraz charakterystyki czasu wykonania operacji w zależności od charakterystyki mechanizmów JIT, CPU i alokacji pamięci. Definiowanie właściwości odbywa się poprzez wygenerowanie listy wszystkich obiektów dostępnych z JavaScript. Jak się okazało, liczba obiektów jest bezpośrednio powiązana z silnikiem przeglądarki i jej wersją.

funkcja getProperties(o) {
var wynik = [];
podczas gdy (o !== null) {
wynik = wynik.concat(Reflect.ownKeys(o));
o = Obiekt.getPrototypeOf(o);
}
zwróć wynik;
}

Przykładowo dla Firefoksa dokumentacja podaje obsługę 2247 właściwości, podczas gdy rzeczywista liczba zdefiniowanych właściwości, w tym nieudokumentowanych, to 15709 (w przeglądarce Tor - 15639), dla Chrome deklarowanych jest 2698 właściwości, ale w rzeczywistości oferowanych jest 13570 (w Chrome na Androida – 13119). Liczba i wartości właściwości różnią się w zależności od wersji przeglądarki i różnych systemów operacyjnych.

Wartości i obecność niektórych właściwości można wykorzystać do określenia typu systemu operacyjnego. Na przykład w Kubuntu właściwość window.innerWidth jest ustawiona na 1000, a w Windows 10 na 1001. Właściwość window.navigator.activeVRDisplays jest dostępna w systemie Windows, ale nie jest dostępna w systemie Linux. W systemie Android dostępnych jest wiele konkretnych wywołań, ale nie jest to możliwe w przypadku window.SharedWorker. Do identyfikacji systemu operacyjnego proponuje się także wykorzystanie analizy parametrów WebGL, których stan zależy od sterowników. Dodatkowo wywołanie WEBGL_debug_renderer_infoextension pozwala uzyskać informacje o silniku renderującym OpenGL, który jest inny dla każdego systemu operacyjnego.

Do określenia procesora wykorzystuje się ocenę różnic w czasie wykonania różnych typowych bloków kodu, których przetwarzanie zależy od architektury zestawu instrukcji, z uwzględnieniem zachowania JIT (określa się, ile rejestrów procesora zostanie wykorzystanych i w jakich przypadkach JIT wygeneruje wydajny kod z optymalizacjami i wykorzystaniem rozszerzonych instrukcji, a kiedy nie). Aby określić rodzaj systemu alokacji pamięci i systemu operacyjnego, mierzona jest również różnica w czasie alokacji pamięci dla różnych struktur, co można wykorzystać do oceny wielkości bloków pamięci.

Parametry określone podczas wykonywania skryptu porównywane są z wartościami referencyjnymi typowymi dla wcześniej testowanych środowisk. Opracowana technika pozwoliła podczas testu dokładnie zidentyfikować 40 różnych środowisk testowych, identyfikując wersje używanych przeglądarek, producenta procesora, używany system operacyjny oraz fakt, że działał on na prawdziwym sprzęcie lub na maszynie wirtualnej.

Osobno należy zauważyć, że możliwe jest zdefiniowanie dodatków do przeglądarki, a nawet indywidualnych ustawień dodatków, w tym dodatków zaprojektowanych w celu blokowania ukrytych metod identyfikacji lub aktywności w trybie przeglądania prywatnego. W kontekście proponowanej metody takie uzupełnienia stają się kolejnym źródłem danych do identyfikacji. Dodatki określa się poprzez ocenę zniekształceń parametrów pierwotnego środowiska wprowadzonych przez dodatki.

Inne metody identyfikacji obejmują uwzględnienie takich danych pośrednich jak rozdzielczość ekranu, lista obsługiwanych typów MIME, określone parametry w nagłówkach (HTTP / 2 и HTTPS), analiza zainstalowanych wtyczki i czcionki, dostępność niektórych interfejsów API sieci Web, specyficznych dla kart graficznych Cechy renderowanie przy użyciu WebGL i Brezentowy, manipulacja z CSS, analiza cech pracy z mysz и klawiatura.

Źródło: opennet.ru

Dodaj komentarz