Podle zjištění služby FingerprintJS, která se kromě jiného zabývá „snímáním otisků prstů“ webových prohlížečů, může chyba v prohlížeči Safari 15 způsobit únik informací o aktivitě při prohlížení a také odhalit některé osobní údaje spojené s účtem Google. Zranitelnost vyplývá z problému s implementací frameworku IndexedDB – aplikačního programového rozhraní (API), používaného k ukládání dat v mnoha prohlížečích.
Jak vysvětluje FingerprintJS, IndexedDB dodržuje „zásadu stejného původu“, která omezuje interakci jednoho zdroje s daty, která byla shromážděna jinými zdroji. Zjednodušeně řečeno jde o to, že k určitým datům může přistupovat pouze webová stránka, která tato data vygenerovala. Pokud například na jedné kartě otevřete svůj e-mailový účet a poté na jiné kartě otevřete škodlivou webovou stránku, pak „zásada stejného původu“ zabrání škodlivé stránce zobrazit váš e-mail a zasahovat do něj.
Chyba v Safari 15
Odborníci zjistili, že rozhraní API IndexedDB v prohlížeči Safari 15 ve skutečnosti porušuje „zásadu stejného původu“. Při interakci webové stránky s databází se „ve všech ostatních aktivních rámcích, kartách a oknech v rámci stejné relace prohlížeče vytvoří nová (prázdná) databáze se stejným názvem“.
V praxi to znamená, že webové stránky mohou vidět názvy ostatních databází vytvořených na jiných webech, které mohou obsahovat údaje specifické pro identitu uživatele. Weby, používající účet Google, jako je YouTube, Kalendář Google, Gmail či Google Keep, vytvářejí databáze s jedinečným ID uživatele Google v názvu. Znalost uživatelského ID umožňuje přístup k veřejně dostupným informacím, jako je například profilová fotografie, kterou může chyba v prohlížeči Safari odhalit jiným webovým stránkám.
Chyba ohrožuje pouze názvy databází, nikoliv jejich obsah. I tak to však může stačit k tomu, aby provozovatel webu získal uživatelské jméno účtu Google. Může také zneužít historii navštívených stránek k sestavení základního profilu pro cílení reklamy.
Vyzkoušejte si demo
FingerprintJS vytvořil ukázkové demo, které si můžete vyzkoušet, pokud máte na Macu, iPhonu nebo iPadu prohlížeč Safari 15 nebo vyšší. Demo využívá chybu IndexedDB k identifikaci otevřených (nebo nedávno otevřených) webových stránek a ukazuje, jak weby, které chybu zneužívají, mohou získat informace z uživatelského identifikátoru. V současné době detekuje pouze 30 populárních webů, které jsou touto chybou postižené – seznam zahrnuje například Instagram, Netflix, Twitter, Xbox, ale pravděpodobně se týká mnohem více stránek.
Bohužel není mnoho možností, jak se tomuto problému vyhnout, protože chyba ovlivňuje i režim soukromého prohlížení. V systému macOS můžete použít jiný prohlížeč, nicméně kvůli bezpečnostní politice Apple musejí všechny alternativní prohlížeče pro iOS používat stejné renderovací jádro jako prohlížeč Safari, takže se jich uvedená chyba týká také. Jedinou možností jsou drastická opatření, jako je zablokování všech JavaScriptů a jejich povolení pouze na důvěryhodných stránkách.
FingerprintJS nahlásil chybu do WebKit Bug Trackeru již 28. listopadu loňského roku, ale zatím nebyla vydána žádná aktualizace Safari, která by ji vyřešila. Několik zahraničních zpravodajských webů požádalo Apple o komentář, nicméně dosud se nedočkaly žádné reakce.