Nach der Analyse von Socket-Forscher Kush Pandya übergeben die aktuellen Builds der Version 85.x das Token direkt in der URL: „Die derzeitigen Builds (v85.x) leiten das Token inline als Abfrageparameter &auth= bei einer Umleitung auf Netzwerkebene an den Proxy des Betreibers weiter", so Pandya. Betroffen sei jeder Kanal, den ein Nutzer ansieht – mit einer Ausnahme.

Denn die Erweiterung enthält eine fest einprogrammierte Liste von zehn Twitch-Kanälen, für die die Weiterleitung unterbleibt. Es handelt sich überwiegend um russischsprachige Streamer mit jeweils mehreren Tausend Followern. „Für jeden Kanal außerhalb dieser Liste wird das aktive Token des Nutzers an den Proxy weitergeleitet", erklärte Pandya.

Technisch bettet das Add-on Code ein, der das Twitch-OAuth-Token ausliest und an die Proxy-Infrastruktur schickt, über die die Anfragen an „usher.ttvnw[.]net" laufen. Weil das Token im Abfrageteil der URL steht, landet es im Klartext in den Anfrageprotokollen des Proxyservers. Mit dem Token lassen sich Chat, Whispers – also private Nachrichten – und Kontoeinstellungen erreichen. Ältere Varianten gingen laut Socket noch weiter: „Frühere v4.x-Builds (etwa Version 4.8) schickten das Token per POST an einen eigenen set-token-Endpunkt auf dem Host des Betreibers, mit Ausweichzielen auf deno.dev und deno.net."

Anzeige

Hinter der Infrastruktur steht nach Darstellung von Socket ein kommerzieller Bot-Dienst für Twitch, Kick und VK Live, der über weitreichende Twitch-Host-Berechtigungen verfügt und aktive, authentifizierte Sitzungen über eigene Server leitet. JeetBot selbst wirbt mit Sprachsynthese für Nachrichten, automatischer Übersetzung und weiteren Funktionen und gibt an, über 26.000 aktive Streamer zu bedienen und eine Milliarde Nachrichten verarbeitet zu haben. Im Fußbereich der Website wird als Betreiber ein auf Zypern ansässiger Entwickler namens Aleksandr Popov genannt, der das Projekt in seinem LinkedIn-Profil als privates Nebenprojekt bezeichnet.

Inzwischen hat der Entwickler reagiert. Ein Hinweis auf der JeetBot-Dokumentationsseite räumt ein: „In der bisherigen Umsetzung sendete die Erweiterung das Twitch-OAuth-Token des Nutzers an unsere Proxyserver, um Stream-Playlists abzurufen. Ein OAuth-Token ist ein Zugangsnachweis und muss geschützt werden." Version 85.8.7 hole die Playlists anders ab, das Token werde nicht mehr an die Proxys übertragen. Für Chrome befinde sich eine entsprechende Fassung noch in der Prüfung.

Nutzer sollen die installierte Version prüfen und auf 85.8.7 oder neuer aktualisieren; ältere Installationen übertragen das Token bis zum Update weiterhin. Steht kein Update bereit, empfiehlt die Dokumentation, die Erweiterung vorübergehend zu deaktivieren. Zugleich warnt der Entwickler, dass weder ein Update noch die Deaktivierung bereits übertragene Token zurückzieht.

Socket fasst die Lage so zusammen: „Rund 31.000 Nutzer in Chrome und Firefox leiten ihre aktiven Twitch-OAuth-Sitzungstoken durch eine vom Betreiber kontrollierte Proxy-Infrastruktur." The Hacker News hat sowohl Socket als auch den Entwickler um eine Stellungnahme gebeten.