IndexedDB adatszivárgási hiba a Safari 15-ben: így lehetsz benne érintett

Még tavaly november 28-án jelentettek egy hibát a WebKit, azaz a Safarit működtető böngészőmotor kódjában. A hiba fő aspektusa adatbiztonsági jellegű és meglehetősen súlyos. Röviden összefoglalva: ez a bug lehetővé teszi weboldalak számára, hogy hozzáférjenek érzékeny adatokhoz és különböző domének között kövessék az identitásunkat, mindezt pusztán egy megfelelően kialakított (rosszindulatú) weboldal meglátogatása által.

A sérülékenységet a Fingerprint.JS (egy böngésző-nyomkövető szolgáltatás) készítői észlelték, és annak komolyságát felismerve, blogjukon egy cikket is megjelentettek róla.

Ebben elmagyarázzák a hiba technikai mibenlétét. Mindeközben az Apple fejlesztői január 17-én elkezdtek dolgozni a hiba javításán, és a hibajegyet lezárták. Ennek ellenére a hiba – egy tényleges Safari-frissítés kiadásáig – továbbra is fennáll, érdemes tehát tudnunk róla. Azt, hogy ez a sebezhetőség meddig működik a böngészőnkben, ellenőrizhetjük a felfedezők által készített demóoldallal is.

De nézzük most meg közelebbről, miben is áll a probléma lényege! A modern böngészőkben, így a Safariban is, létezik egy API, ami az IndexedDB nevet viseli. Ez arra szolgál, hogy a weboldalak nagyobb mennyiségű, strukturált, bonyolult felépítésű adatot tárolhassanak és érhessenek el gyorsan, ami a működésükhöz szükséges. Ez tehát egy hagyományos adatbázis feladatait látja el – kisebb mennyiségű, tisztán szöveges adatok tárolására cookie-kat (“sütiket”) is lehetne használni.

Mint majdnem minden olyan böngészőbeli API, ami oldalanként külön-külön kell, hogy fusson, az IndexedDB is az úgynevezett “Same-Origin Policy” hatálya alá esik. Leegyszerűsítve, ez kimondja, hogy egy adott “origin”, azaz domén-protokoll-port hármas alatt működő oldal szkriptjei nem érhetik el egy másik origin adatait. (Ez alól létezhetnek kivételek.) Azaz ha a böngészőnkkel például a https://szifon.com oldalt látogathatjuk meg, akkor az nem halászhatja ki például a mail.google.com cím kezelése alatt álló, a böngészőben tárolt vagy onnan máshogyan elérhető adatokat.

A Mac-es Safari 15, illetve az iOS 15 és iPadOS 15 alatt futó Safari ezt a szabályt sértik meg. Amikor megnyitunk egy oldalt a Safariban, akkor az összes többi, az adott session-höz (“munkamenethez”) tartozó fülön és ablakban létrehozásra kerül egy azonos nevű, üres adatbázis. Ráadásul a böngészőnek tipikusan minden oldala és ablaka ugyanahhoz a session-höz tartozik, hacsak valamit nem teszünk kifejezetten ez ellen, például másik profilra vagy privát módra váltással.

De miért is probléma ez? Az adatbázisok nevei általában egyediek és weboldal-specifikusak, ráadásul a szkriptek néha magában a névben is elhelyeznek érzékeny információt. A YouTube és a Google Naptár például magát a Google fiók egyedi azonosítóját is beleveszi az adatbázis nevébe. Mivel az adott névvel keletkező adatbázis az összes másik (azonos munkameneten belüli) ablakban és fülön létrejön, ezért ennek a hibának a kihasználásához és a felhasználó pontos azonosításához nincs is szükség semmilyen különösebb interakcióra – az adatszivárogtatás már önmagában attól megtörténhet, hogy meglátogatunk egy rosszindulatú kódra mutató URL-t.

A Fingerprint.JS fejlesztői megvizsgálták az Alexa top 1000 listáját, és azon több mint 30 népszerű oldalt sebezhetőnek találtak. Ezen kívül azt is meg kell jegyeznünk, hogy a Safari privát módját is érinti a hiba, azt tehát nem tudjuk egyszerűen a privát módra váltással orvosolni. Felhasználóként igazából nem sokmindent tehetünk a sérülékenység elhárításáért, hacsak nem akarjuk alapértelmezésben letiltani az összes oldalon a JavaScriptet, ami manapság sajnos nem egy reális lehetőség.

Az egyetlen átfogó és biztos javítás abban áll, hogy az Apple kijavítja ezt a hibát a Safariban. Addig is, mint mindig, legyünk óvatosak, és mégcsak ne is nyissunk meg olyan oldalakat, amelyeknek a megbízhatóságához kételyek férhetnek.

Ezek még érdekelhetnek:


Népszerű hozzászólások

  1. vjan says:

    Ha az Apple lezárta a hibajegyet, miért nem frissíti a Safarit? Úgy tudom, most már egyenként is lehet frissíteni az Apple appokat, nem kell megvárni a következő iOS-t. Vagy rosszul tudom?

  2. ehh says:

    15.3 RC alatt úgy tűnik, javították

  3. Macen igen, iOS és iPadOS-en nem lehet külön…

A Szifon.com-on megváltozott a hozzászólás rendszer, ezentúl az alábbi gombra kattintva tudsz véleményt alkotni. Bővebben itt olvashatsz erről.

Kérdésed lenne? Megosztanál valamit a többi olvasóval? Használd az új közösségi portálunkat!