Opublikowano narzędzie do identyfikacji dodatków zainstalowanych w Chrome

Opublikowano narzędzie do implementacji metody identyfikacji dodatków zainstalowanych w przeglądarce Chrome. Otrzymana lista dodatków może być wykorzystana do zwiększenia dokładności pasywnej identyfikacji konkretnej instancji przeglądarki, w połączeniu z innymi pośrednimi wskazówkami, takimi jak rozdzielczość ekranu, cechy WebGL, listy zainstalowanych wtyczek i czcionek. Proponowana implementacja sprawdza instalację ponad 1000 dodatków. Dla przetestowania swojego systemu zaproponowano online demonstrację.

Identyfikacja dodatków odbywa się poprzez analizę zasobów udostępnianych przez dodatki, dostępnych dla zewnętrznych zapytań. Zazwyczaj dodatki zawierają różne pliki towarzyszące, takie jak obrazy, które są określane w manifeście dodatku właściwością web_accessible_resources. W pierwszej wersji manifestu Chrome dostęp do zasobów nie był ograniczony i każda strona mogła załadować dostarczane zasoby. W drugiej wersji manifestu dostęp do takich zasobów domyślnie został umożliwiony tylko dla samego dodatku. W trzeciej wersji manifestu wprowadzono możliwość określenia, które zasoby mogą być udostępniane jakim dodatkom, domenom i stronom.

Strony internetowe mogą żądać zasobów dostarczanych przez dodatek za pomocą metody fetch (na przykład „fetch(‘chrome-extension://okb….nd5/test.png’)”), a zwrócenie wartości „false” zwykle wskazuje, że dodatek nie jest zainstalowany. Aby zablokować identyfikację dodatku na podstawie dostępności zasobów, niektóre dodatki generują token weryfikacyjny, który jest wymagany do uzyskania dostępu do zasobu. Wywołanie fetch bez podania tokena zawsze kończy się niepowodzeniem.

Okazało się, że zabezpieczenia dostępu do zasobów dodatków można obejść, oceniając czas wykonania operacji. Mimo że fetch przy zapytaniu bez tokena zawsze zwraca błąd, czas wykonania operacji przy obecności i braku dodatku różni się — jeśli dodatek jest obecny, to zapytanie wymaga więcej czasu niż gdy dodatek nie jest zainstalowany. Oceniając czas reakcji, można dość dokładnie określić obecność dodatku.

Niektóre dodatki, które nie mają dostępu do zewnętrznych zasobów, można zidentyfikować po dodatkowych właściwościach. Na przykład dodatek MetaMask można zidentyfikować poprzez ocenę właściwości window.ethereum (jeśli dodatek nie jest zainstalowany, „typeof window.ethereum” zwróci wartość „undefined”).

Ź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