Browser-Tracking per Web Audio: Das verborgene Tonstudio

vor 1 Woche 3

Auch bei dem kürzlich bekannt gewordenen Fall, dass AliExpress Nutzer offenbar mittels einer Audio-Schnittstelle identifiziert, handelt es sich um sogenanntes Browser Fingerprinting. Bei diesem sehr weit verbreiteten Verfahren liest ein Skript technische Eigenschaften des Browsers sowie des Rechners aus. Dazu zählen die installierte Browserversion, das Betriebssystem, die Bildschirmauflösung, verfügbare Schriftarten, installierte Plug-ins, die Zeitzone, Spracheinstellungen und sogar hardwarespezifische Eigenschaften der Grafikkarte.

Aus solchen Datenpunkten lässt sich ein einzigartiger Fingerabdruck ermitteln, der mit hoher Wahrscheinlichkeit einen bestimmten Browser auf einem bestimmten Gerät und damit indirekt den Nutzer identifiziert. Auf diese Weise können Werbetreibende verfolgen, für welche Websites und Inhalte sich Nutzer interessieren und ihnen besser darauf zugeschnittene Anzeigen präsentieren.

Auf der Website von Tom Ritter, Security Engineer bei Mozilla, kann jeder den Quellcode der Tracking-Skripte inspizieren und den Wert für den Fingerabdruck seines Systems ermitteln lassen.

Browser Fingerprinting kann aber zum Beispiel auch zur Betrugserkennung eingesetzt werden. Matt Callaghan, der die zwei Browser-Fingerprinting-Skripte von Alibaba gefunden hat, hält das durchaus für möglich. Tom Ritter, Security Engineer bei Mozilla, hat die zwei Skripte auf einer Website eingebaut. Dort kann jeder ihren Quellcode inspizieren und den Wert für den Fingerabdruck seines Systems ermitteln lassen.

Die Skripte von AliExpress machen sich zunutze, dass jeder Browser seit Jahren ein kleines virtuelles Tonstudio eingebaut hat, das Web Audio API. Eine Webseite kann darin per JavaScript Bausteine aufstellen und mit virtuellen Kabeln verbinden, so wie man in einem echten Studio Geräte zusammensteckt: hier ein Tongenerator, dort ein Messgerät, dahinter ein Lautstärkeregler, am Ende die Buchse zu den Boxen. Diese Zusammenschaltung nennt man den Audiographen. Gedacht ist das für Spiele, Online-Konferenzen oder Musikanwendungen – dafür braucht es keine Erlaubnis des Nutzers, sonst müsste jede zweite Seite nachfragen.

Ein Beispiel für ein virtuelles Tonstudio im Browser. (Quelle: W3C, https://www.w3.org/TR/webaudio-1.0/)

Genau so ein Studio hat AliExpress aufgebaut, und zwar gleich zweimal. Verantwortlich waren zwei JavaScript-Dateien namens collina.js und fireyejs.js. Sie waren obfuskiert, also absichtlich unleserlich gemacht: Variablennamen durch Buchstabensalat ersetzt, Code verschachtelt, damit niemand auf den ersten Blick erkennt, was da passiert.

Die Kette, die diese Skripte aufgebaut haben, besteht aus fünf Bausteinen. Den Anfang macht ein Tongenerator, der eine Sägezahnwelle erzeugt – eine schroffe, obertonreiche Wellenform, die sich als Testsignal eignet, weil sie die Rechenwege im Browser ordentlich beansprucht. Dahinter steht ein Analysebaustein, der laufend anzeigt, wie sich das Signal auf die Frequenzen verteilt, vergleichbar mit der Pegelanzeige an einer Stereoanlage.

An einem weiteren Baustein kann JavaScript die einzelnen Messwerte direkt abgreifen und in Zahlen weiterverarbeiten. Danach folgt ein Lautstärkeregler, der auf null steht – ab hier ist das Signal also nicht mehr hörbar. Was das Skript messen wollte, hatte es nach dem dritten Baustein komplett: Die Zahlen, aus denen der Fingerabdruck berechnet wird, entstehen beim Rechnen im Browser, nicht beim Abspielen.

Ganz am Ende steckt aber noch das virtuelle Kabel in der Buchse zur Soundkarte. Und das hat Folgen, obwohl kein Ton zu hören ist: Betriebssystem und Bluetooth-Stack sehen nur, dass eine Verbindung zur Tonausgabe offen ist, nicht ob dort tatsächlich etwas klingt. Für sie galt also: „Der PC spielt gerade Musik“. Multipoint-Kopfhörer, die zwischen Rechner und Handy hin- und herschalten, geben in so einem Fall dem angeblich aktiven Gerät den Vorzug – und blieben deshalb am PC hängen. Stummschalten half nicht, denn ein Mute-Knopf regelt die Lautstärke nur herunter, zieht das Kabel aber nicht heraus.

Ob Schlamperei oder Absicht: Ohne dieses überflüssige „Kabel“ hätte die Messung keinerlei Spur hinterlassen, und niemand hätte je Anlass gehabt, im Quellcode nachzusehen. Ein Fingerabdruckverfahren, das seit Jahren völlig geräuschlos läuft, ist ausgerechnet über ein Paar Bluetooth-Kopfhörer gestolpert.

Wie kann man sich nun gegen diese Skripte wehren? Am gezieltesten wirken schmale uBlock-Origin-Regeln auf die beiden Skriptpfade, die Callaghan auf seiner Website vorstellt. Allerdings versioniert Alibaba diese Pfade, und blockierte Anti-Abuse-Logik kann zusätzliche CAPTCHAs oder Probleme bei Login und Checkout provozieren. Breiter und wartungsfreier schützen Browser, die die Rückgabewerte verrauschen, etwa Brave oder Safari.

(jo)

Gesamten Artikel lesen