Google: Eine Regex gegen die Domain-Validierung
Ein Hacker überlistet die Domain-Validierung von Google dank einer kaputten Regex. Die stammt offenbar aus einem IETF-Standard.

Der Sicherheitsforscher und Hacker David Schütz beschreibt in seinem Blog recht ausführlich eine von ihm gefundene Sicherheitslücke in der Domain-Validierung von Google-Diensten. Wie Schütz schreibt, habe er die Lücke mit kleinem Beispielcode ausnutzen können. Der Forscher hätte darüber zum Beispiel den API-Key für Google-Cloud-Dienste eines Opfers erhalten können - nur durch den Klick auf einen Link.
Schütz ist aufgefallen, dass bestimmte API-Funktionen des Dienstes über eine eigene App in einem Iframe ausgeführt werden. Der Hacker wollte diese App schließlich auf seiner eigenen Webseite einbetten und so die zwischen App und Dienst übertragenen Daten abgreifen. Das gelang letztlich auch durch eine Sicherheitslücke, die Schütz über viele verschiedene Schritte aufgefunden hat.
Ursache für den Fehler ist wie erwähnt eine fehlerhafte Domain-Validierung seitens Google, die durch einen ebenfalls fehlerhaften regulären Ausdruck (Regex) ausgelöst wird. Konkret wird dabei das Zeichen \ als Ende des Authority-Teils einer Domain vom Browser akzeptiert. In der Regex zur Domain-Validierung in der App selbst fehlt dies jedoch, so dass Schütz seine eigene Domain einer weiteren Domain voranstellen konnte, die Google über eine Whitelist akzeptiert.
Der Hacker hat herausgefunden, dass der Fehler nicht nur in der Google-Cloud-API auftritt, sondern darüber hinaus auch in vielen weiteren Google-Diensten genutzt wird. Das Unternehmen hat den Fehler bestätigt, Schütz für das Melden mit einer Bug-Bounty honoriert und den Fehler letztlich in seiner Javascript-Bibliothek behoben.
Lücke aus Internetstandard
Interessant daran ist darüber hinaus, dass die Javascript-Bibliothek Open Source ist und zumindest auf Github offenbar von einer Vielzahl weiterer Projekte genutzt wird. Sofern diese ihre Abhängigkeit nicht aktualisieren, könnten diese Projekte also von ähnlichen Problemen betroffen sein.
Hinzu kommt, dass der Fehler offenbar auf den IETF-Standard RFC 3986 zurückzuführen ist, worauf Nutzer etwa in der Diskussion auf Hackernews hinweisen. Im Anhang der dort spezifizierten URI-Syntax findet sich eine beispielhafte Regex, der ebenfalls das Zeichen \ fehlt, um den Authority-Teil der URI zu beenden. Auch deshalb ist davon auszugehen, dass der von Schütz beschriebene Fehler auch bei anderen Diensten auftreten könnte.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Regex ja, aber Kreuzworträtsel sind so das letzte was ich mache :D Schade, grundsätzloch...
Welchen über welches Regex sprichts Du? Es gibt Implementierungen, mit denen man fast...