Zavedena nová technika pro skrytou identifikaci systému a prohlížeče

Skupina výzkumníků z Technické univerzity v Grazu (Rakousko), dříve známých vývojem útočných metod MDS, NetSpectre и Vrhací kladivo, nezakryté informace o nové technice analýzy třetí strany, která umožňuje určit přesnou verzi prohlížeče, použitý operační systém, architekturu CPU a použití doplňků pro boj se skrytou identifikací.

K určení těchto parametrů stačí v prohlížeči spustit kód JavaScript připravený výzkumníky. V praxi lze metodu využít nejen jako doplňkový zdroj pro nepřímou identifikaci uživatele, ale také pro stanovení parametrů systémového prostředí pro cílené použití exploitů s přihlédnutím k OS, architektuře a prohlížeči. Metoda je také účinná při použití prohlížečů se skrytými mechanismy blokování identifikace, jako je Tor Browser. Prototyp zdrojového kódu s implementací metody zveřejněno pod licencí MIT.

Určení se provádí na základě alokace vzorů stavu vlastností charakteristických pro různé prohlížeče v JavaScriptu a charakteristik doby provádění operací v závislosti na vlastnostech JIT, CPU a mechanismů alokace paměti. Definování vlastností se provádí vygenerováním seznamu všech objektů dostupných z JavaScriptu. Jak se ukázalo, počet objektů přímo koreluje s enginem prohlížeče a jeho verzí.

function getProperties(o) {
varresult = [];
while (o !== null) {
vysledek = vysledek.concat(Reflect.ownKeys(o));
o = Object.getPrototypeOf(o);
}
vrátit výsledek;
}

Například pro Firefox je v dokumentaci deklarována podpora vlastností 2247, zatímco skutečný počet určitých vlastností, s přihlédnutím k nezdokumentovaným, je 15709 (v prohlížeči Tor - 15639), u Chrome je deklarováno 2698 vlastností, ale 13570 jsou skutečně nabízeny (v Chrome pro Android - 13119) . Počet a hodnoty vlastností se liší od verze k verzi prohlížeče a v různých operačních systémech.

Hodnoty a přítomnost určitých vlastností lze použít k určení typu OS. Například v Kubuntu je vlastnost window.innerWidth nastavena na 1000 a ve Windows 10 je nastavena na 1001. Na Windows je vlastnost window.navigator.activeVRDisplays dostupná, ale na Linuxu není. Pro Android je k dispozici mnoho specifických hovorů, ale není zde žádné okno.SharedWorker. K identifikaci operačního systému se také navrhuje použít analýzu parametrů WebGL, jejichž stav závisí na ovladačích. Volání WEBGL_debug_renderer_infoextension navíc umožňuje získat informace o vykreslovacím jádru OpenGL, které je pro každý operační systém jiné.

Pro určení CPU se používá posouzení rozdílů v době provádění různých typických bloků kódu, jejichž zpracování závisí na architektuře instrukční sady s přihlédnutím k chování JIT (určuje se, kolik registrů CPU bude zapojen a v jakých případech bude JIT generovat účinný kód s optimalizacemi a zahrnujícími rozšířené instrukce, a kdy ne). Pro určení typu systému alokace paměti a operačního systému se měří také rozdíl v čase alokace paměti pro různé struktury, což lze použít k posouzení velikosti paměťových bloků.

Parametry určené během provádění skriptu jsou porovnávány s referenčními hodnotami typickými pro předem testovaná prostředí. Vyvinutá technika umožnila během testu přesně určit 40 různých testovacích prostředí, určit verze používaných prohlížečů, výrobce CPU, použitý operační systém a zda běžel na skutečném hardwaru nebo ve virtuálním stroji.

Samostatně je zmíněna možnost definovat doplňky prohlížeče a dokonce i individuální nastavení doplňků, včetně doplňků určených k blokování skrytých metod identifikace nebo aktivity soukromého prohlížení. V kontextu navržené metody se takové doplnění stávají dalším zdrojem dat pro identifikaci. Přírůstky se určují na základě posouzení narušení parametrů původního prostředí způsobených přírůstky.

Mezi dalšími identifikačními metodami je možné zaznamenat zohlednění takových nepřímých údajů jako rozlišení obrazovky, seznam podporovaných typů MIME, možnosti specifické pro záhlaví (HTTP / 2 и HTTPS), analýza zavedených pluginy a fontydostupnost určitých webových rozhraní API specifických pro grafické karty Rysy vykreslování pomocí WebGL a Plátno, manipulace s CSS, analýza funkcí práce s myš и klávesnice.

Zdroj: opennet.ru

Přidat komentář