Identifikace pomocí analýzy externích ovladačů protokolů v prohlížeči

Vývojáři knihovny fingerprintjs, která umožňuje generovat identifikátory prohlížeče v pasivním režimu na základě nepřímých znaků, jako je rozlišení obrazovky, funkce WebGL, seznamy nainstalovaných pluginů a písem, představili novou metodu identifikace založenou na posouzení typických nainstalovaných aplikací. na uživatele a prostřednictvím kontroly podpory dalších obslužných rutin protokolů v prohlížeči. Kód skriptu s implementací metody je publikován pod licencí MIT.

Kontrola se provádí na základě analýzy vazby handlerů na 32 populárních aplikací. Například určením přítomnosti obslužných programů schématu URL telegram://, slack:// a skype:// v prohlížeči můžete dojít k závěru, že systém má aplikace telegram, slack a skype, a použít tyto informace jako znak při generování systémového identifikátoru. Vzhledem k tomu, že seznam handlerů je stejný pro všechny prohlížeče v systému, identifikátor se při změně prohlížeče nemění a lze jej použít v prohlížečích Chrome, Firefox, Safari, Brave, Yandex Browser, Edge a dokonce i Tor Browser.

Metoda umožňuje generovat 32bitové identifikátory, tzn. jednotlivě neumožňuje dosažení velké přesnosti, ale má smysl jako doplňková funkce v kombinaci s dalšími parametry. Znatelnou nevýhodou metody je viditelnost identifikačního pokusu pro uživatele - při generování identifikátoru na navrhované demo stránce se v pravém dolním rohu otevře malé, ale jasně znatelné okno, ve kterém handleři poměrně dlouho rolují. Tato nevýhoda se neprojevuje v Tor Browseru, ve kterém lze identifikátor nepozorovaně vypočítat.

Za účelem zjištění přítomnosti aplikace se skript pokusí otevřít odkaz spojený s externí obslužnou rutinou ve vyskakovacím okně, načež prohlížeč zobrazí dialogové okno s výzvou k otevření obsahu v přidružené aplikaci, pokud je kontrolovaná aplikace přítomen nebo zobrazí chybovou stránku, pokud aplikace není v systému. Prostřednictvím sekvenčního vyhledávání typických externích obslužných programů a analýzy chybových návratů lze dojít k závěru, že systém obsahuje testované programy.

V Chrome 90 pro Linux metoda nefungovala a prohlížeč zobrazil standardní dialog pro potvrzení operace pro všechny pokusy o kontrolu handleru (v Chrome pro Windows a macOS metoda funguje). Ve Firefoxu 88 pro Linux jak v normálním režimu, tak v režimu inkognito skript detekoval přítomnost nainstalovaných dalších aplikací ze seznamu a přesnost identifikace byla odhadnuta na 99.87 % (35 podobných shod z 26 tisíc provedených testů). V prohlížeči Tor běžícím na stejném systému byl vygenerován identifikátor, který odpovídal testu ve Firefoxu.

Zajímavé je, že dodatečná ochrana v Tor Browseru hrála krutý vtip a proměnila se v příležitost provést identifikaci bez povšimnutí uživatele. Kvůli deaktivaci potvrzovacích dialogů pro použití externích handlerů v Tor Browseru se ukázalo, že požadavky na ověření lze otevřít v iframe a ne ve vyskakovacím okně (pro oddělení přítomnosti a nepřítomnosti handlerů platí pravidla stejného původu blokovat přístup ke stránkám s chybami a povolit přístup k about:prázdným stránkám). Kvůli ochraně proti povodním trvá kontrola v prohlížeči Tor znatelně déle (10 sekund na aplikaci).

Zdroj: opennet.ru

Přidat komentář