Badanie opublikowane na IMC 2024 zmieniło wykrywanie w powtarzalny eksperyment online: zamiast ufać temu, za co podaje się przeglądarka, zliczano właściwości obiektów niskiego poziomu i porównywano je z deklarowaną wersją. Metoda jest ciekawsza niż sam wniosek.
Wokół pytania, czy fingerprint przeglądarki można wykryć, krąży wiele twierdzeń, z których większość zatrzymuje się na samej konkluzji. Zamiast spierać się, kto wygrywa, warto zobaczyć, jak badacze zamienili to zagadnienie w powtarzalny eksperyment i jakimi miarami posłużyli się przy ocenie.
Badanie opublikowane na ACM Internet Measurement Conference (IMC) 2024 pod tytułem Browser Polygraph przeprowadzili naukowcy z Arizona State University, Boston University oraz Amazon; DOI pracy to 10.1145/3646547.3688455. Zamiast używać danych symulowanych w laboratorium, system wdrożono na 4,5 miesiąca w rzeczywistym środowisku produkcyjnym dużej firmy finansowej, obejmując 205 000 prawdziwych sesji użytkowników. Przetestowano dziesięć popularnych rozwiązań maskujących środowisko, a normalny ruch użytkowników posłużył jako grupa kontrolna.
Jak zbudowano eksperyment
Trzy decyzje projektowe pozwoliły zastosować wykrywanie do całego ruchu bez zakłócania działania biznesu.
Cechy musiały być tanie do odczytu. Detektor odczytuje tylko stały zestaw właściwości, a koszt pojedynczego uruchomienia mieści się w skali milisekund i KB. Dzięki temu można go stosować do całego ruchu bez próbkowania i bez zauważalnego wpływu na użytkownika.
Cechy musiały być stabilne. Nie wybrano parametrów, które użytkownik może zmienić, lecz struktury niskiego poziomu ustalane przez samą przeglądarkę. Każda wersja przeglądarki ma inny silnik JavaScript, a między wersjami występują drobne różnice w liczbie API oraz właściwości przypisanych do poszczególnych obiektów. W badaniu jako zakres porównawczy wykorzystano Chrome 110–Chrome 114: system zliczał właściwości 28 kluczowych obiektów i porównywał wynik z wersją deklarowaną przez przeglądarkę. Brak zgodności oznacza, że deklaracja i faktyczne zachowanie nie pochodzą z tego samego stosu technologicznego.
Etykiety musiały być wiarygodne. Każde testowane środowisko podłączano do tego samego ruchu produkcyjnego i oceniano według tych samych zasad, a grupą kontrolną było normalne zachowanie prawdziwych użytkowników. Wynik nie odpowiada więc na subiektywne pytanie, czy coś „wygląda prawdziwie”, lecz na to, czy dany ruch można odróżnić przy użyciu tych samych reguł.
Miary oceny, czy symulacja jest rzeczywista
Miary zastosowane w badaniu można podzielić na cztery kategorie.
- Spójność: czy deklarowana wersja przeglądarki pasuje do struktury jej obiektów niskiego poziomu? To najważniejsza i zarazem najtrudniejsza do podrobienia miara, ponieważ zmiana ciągu tekstowego nie zmienia automatycznie liczby obiektów i właściwości w silniku.
- Wskaźnik wykrycia: dla czterech rozwiązań przeprowadzono szczegółowe testy, a wskaźnik wykrycia wyniósł od 67% do 84%.
- Odchylenie od prawdziwych urządzeń: przy tych samych regułach zwykłe przeglądarki otrzymały wynik ryzyka 0, natomiast testowane rozwiązania osiągały średnio od 8,85 do 11,66. Wynik opisuje odległość od rzeczywistego rozkładu, a nie subiektywne podobieństwo.
- Rozróżnialność: czy testowany ruch można oddzielić od ruchu normalnego? Kategoria, której nie da się oddzielić, nie wykazuje w tej metodzie luki behawioralnej względem prawdziwych przeglądarek.
Spośród czterech miar pierwsza jest przyczyną, a trzy kolejne są jej skutkami.
Gdzie różnią się cztery kategorie wyników
Badanie podzieliło testowane rozwiązania na cztery kategorie według sposobu implementacji warstwy bazowej.
W pierwszej kategorii cechy niskiego poziomu nie pasują do żadnej znanej prawdziwej wersji przeglądarki, więc nie istnieje odpowiadający im silnik. Prosty skan ujawnia tę niespójność.
W drugiej kategorii środowisko ma prawdziwe cechy fingerprintu, ale przy zmianie tożsamości zmienia się tylko deklaracja na powierzchni, a bazowy silnik pozostaje bez zmian. Był to najczęstszy wzorzec w badaniu. Można to porównać do wizytówki z nową wersją, podczas gdy akcent nadal brzmi jak stary. Problemem nie jest jakość dostrojenia poszczególnych parametrów, lecz luka między deklaracją a zachowaniem; to z niej bierze się duża część wykryć.
W trzeciej kategorii bazowy silnik zmienia się wraz z tożsamością. Jeśli środowisko deklaruje określoną wersję, uruchamia silnik odpowiadający tej wersji, więc spójność zostaje zachowana i ten detektor nie potrafił odróżnić ruchu. Artykuł zaznacza też, że identyfikacja tej kategorii wymaga bardziej złożonych metod wykrywania.
Czwarta kategoria nie zmienia samej przeglądarki. Prawdziwa przeglądarka działa w maszynie wirtualnej, a następnie ładowana jest konfiguracja docelowa. Ponieważ przeglądarka jest rzeczywiście prawdziwa, detektor nie potrafi jej odróżnić, lecz koszt operacyjny jest wysoki i rozwiązanie trudno skalować.
Różnica między czterema kategoriami nie polega na liczbie parametrów, lecz na tym, czy deklaracja i zachowanie pochodzą z tej samej warstwy technicznej.
Praktyczne wskazówki przy wyborze rozwiązania środowiskowego
Punkt ciężkości wykrywania przesunął się z odczytu deklaracji na weryfikację zachowania, więc modyfikowalne parametry powierzchniowe dają coraz mniejszą przewagę. W praktycznej ocenie:
- Pytaj o warstwę bazową, nie o listę parametrów. Czy po zmianie deklarowanej wersji zmienia się również warstwa niskiego poziomu? Czy fingerprinty są automatycznie generowane jako rzeczywiste kombinacje, czy ręcznie składane z zestawu wartości?
- Porównuj środowiska między sobą. Jeśli wiele środowisk zwraca bardzo podobne cechy niskiego poziomu, izolacja nie jest pełna.
- Najpierw spójność, potem zróżnicowanie. Im więcej wewnętrznie sprzecznych cech jest dostrajanych, tym większa powierzchnia ekspozycji.
- Przejście ogólnej strony wykrywającej nie oznacza akceptacji przez platformę. Ostateczną weryfikację nadal warto przeprowadzić na małej ilości rzeczywistego ruchu.
Głównym zadaniem warstwy izolacji jest sprawienie, aby każde środowisko było niezależne i wewnętrznie spójne. Właśnie ten problem adresuje PurpleMark. Zarówno wykrywanie, jak i przeciwdziałanie wykrywaniu powinny być używane w granicach zgodności z obowiązującymi zasadami; prawdziwą wartością badania jest zapewnienie opartej na danych podstawy oceny, a nie tworzenie rankingu dobrych i złych produktów.


