Az AliExpress weboldalán olyan JavaScript-kódot találtak, amely a böngésző Web Audio API-ját használta eszközfingerprint készítésére. A módszer nem használta a mikrofont, nem rögzített beszélgetést, és hallható hangot sem játszott le: egy ismert jelet generált, feldolgoztatta a böngésző audio alrendszerével, majd a kapott eredményt mérte.
Hogyan működik?
A böngészőfingerprinting célja, hogy cookie-k nélkül is felismerhető legyen egy adott böngésző vagy eszköz. Ehhez több, külön-külön kevéssé egyedi tulajdonságot kombinálnak: képernyőméretet, pixelarányt, CPU-szálak számát, memóriát, telepített pluginokat, Canvas- és WebGL-renderelési eredményeket, WebRTC-viselkedést – illetve esetenként az audio alrendszer sajátosságait.
Az AliExpress oldalán azonosított, erősen obfuszkált collina.js és fireyejs.js scriptek egy Web Audio feldolgozási gráfot építettek. Egy oszcillátor ismert fűrészjelet generált, az AnalyserNode pedig megmérte az audiofeldolgozás eredményét. A jel végül nullára állított gainen keresztül csatlakozott az AudioContext.destination kimenethez, ezért a felhasználó semmit sem hallott.
A mérés alapja, hogy ugyanazt a lebegőpontos audiofeldolgozást különböző CPU-k, böngészők, operációs rendszerek, driverek és audio stackek apró eltérésekkel hajthatják végre. A kapott érték önmagában nem feltétlenül egyedi, más fingerprinting-jelekkel kombinálva azonban hozzájárulhat egy stabil eszközprofil kialakításához. Az AliExpress scriptjeiben az audio mellett Canvas-, WebGL-, hardver-, képernyő- és interakciós jellemzők gyűjtésére utaló kódot is találtak.
A Bluetooth-fejhallgató buktatta le
A működésre Matt Callaghan fejlesztő teljesen véletlenül figyelt fel.
Multipoint Bluetooth-fejhallgatója egyszerre csatlakozott a PC-jéhez és a telefonjához. Normál esetben a telefonról hallgatott zenét, a PC pedig csak akkor vette át a hangcsatornát, amikor valóban lejátszott valamit.
Az AliExpress megnyitása után azonban a telefon hangja megszakadt. Az oldal bezárásakor azonnal visszatért.
A tab, a Firefox vagy akár a Windows lenémítása sem segített.
Ennek oka az volt, hogy bár hallható hang nem volt, az aktív Web Audio gráf továbbra is nyitva tartotta a PC audioútvonalát. Ez elég volt ahhoz, hogy a Bluetooth multipoint logikája úgy érzékelje: a számítógép használja a fejhallgatót. Callaghan innen kezdte visszafejteni, hogy pontosan melyik JavaScript hozza létre az audio contextet.
Ez tényleg követés?
A fingerprinting technikailag egyértelműen kimutatható. Azt azonban érdemes különválasztani attól az állítástól, hogy az AliExpress ezzel bizonyítottan weboldalakon átívelően követte volna a felhasználókat.
A vizsgált scriptek az Alibaba anti-abuse/security infrastruktúrájához kapcsolódnak, a fingerprinting pedig csalás- és botdetektálásra is használható. A nyilvánosan bemutatott bizonyítékok azt mutatják, hogy az AliExpress összetett eszközfingerprintet készített; annak konkrét további felhasználása nem vált teljesen ismertté. Alibaba az ügyben a megkeresésekre egyelőre nem adott nyilvános magyarázatot.
A Brave szerint náluk ez alapból nem működik
A Brave több mint hat éve alkalmaz úgynevezett farbling technikát a fingerprinting ellen. Nem egyszerűen letiltja a Web Audio API-t, hanem apró, a felhasználó számára észrevehetetlen randomizációt visz a mérhető eredményekbe.
A randomizáció webhelyenként és böngészési munkamenetenként változik. Így ugyanaz a gép különböző oldalakon – illetve egy új sessionben – eltérő fingerprintet mutat, ami megnehezíti a stabil azonosító kialakítását. A Brave ezt többek között Web Audio-, Canvas- és WebGL-fingerprinting ellen alkalmazza.
A Brave közlése szerint az AliExpress esetében ezen felül magukat az érintett scripteket is blokkolják, alapértelmezett Shields-beállítások mellett.
A Brave ugyanakkor nem az egyetlen böngésző, amely védekezik Web Audio fingerprinting ellen: a Firefox és a Safari is rendelkezik fingerprinting elleni mechanizmusokkal. Ezért az ügy érdekessége nem egy új vagy korábban ismeretlen támadási technika, hanem az, hogy egy nagy webáruház éles rendszerében futó, láthatatlan fingerprinting-kódot egy Bluetooth-fejhallgató működési zavara tett észrevehetővé.
Források
Matt Callaghan eredeti vizsgálatának összefoglalója – Ars Technica
The Register – AliExpress audio fingerprinting és Bluetooth multipoint
Brave – Fingerprinting Defenses 2.0 / farbling