E-mail senden E-Mail Adresse kopieren

2022-12-14
Annabelle Theobald

Unter dem Radar

„Obwohl die Web-Angriffstechnik DOM Clobbering schon seit dem Jahr 2010 bekannt ist, wurde ihr bislang viel zu wenig Beachtung geschenkt“, sagt CISPA-Forscher Soheil Khodayari. Der 27-Jährige erklärt, was genau sich hinter der Attacke verbirgt und warum bestehende Web-Sicherheitsmaßnahmen gegen DOM Clobbering zu wenig ausrichten können. Sein Paper “It's (DOM) Clobbering Time: Attack Techniques, Prevalence, and Defenses“ stellt er auch auf dem renommierten IEEE Symposium on Security and Privacy 2023 vor.

Es sieht aus wie harmloses HTML-Markup, das einem Browser sagt, wie ein Inhalt auf einer Webseite aussieht; zum Beispiel, wo ein Button hinkommt, welcher Text gefettet sein soll, was eine Überschrift ist. In Wahrheit kann sich dahinter der Versuch von Angreifer:innen verbergen, einen Browser beliebigen JavaScript-Code ausführen zu lassen. „Das zu erreichen, ist für Angreifer:innen so etwas wie der heilige Gral der Webseitenangriffe. Vom Kapern eines Social-Media-Accounts bis zur Übernahme eines Online-Bank-Kontos ist damit fast alles möglich“, erklärt Khodayari.

Die willkürliche Ausführung von JavaScript-Code auf Seiten des Clients, also zum Beispiel im Browser von Nutzer:innen, ist laut dem Forscher schon seit den Anfängen des Webs eine der kritischsten Sicherheitsbedrohungen überhaupt. „Traditionell erreichen Angreifer:innen dieses Ziel, indem sie schädlichen JavaScript-Code in verwundbare Webseiten injizieren. Solche Angriffe, dazu gehört zum Beispiel Cross Site Scripting, sind gut untersucht und dagegen gibt es mittlerweile einige Sicherheitsmaßnahmen“, sagt Khodayari. Längst nicht so gut untersucht, aber genauso gefährlich, sind DOM-Clobbering-Attacken. Bei dieser Angriffsart wird nicht direkt Schadcode eingeschleust, sondern sozusagen die Hintertür genutzt: das für die Attacke namensgebende DOM.

Die Abkürzung DOM steht für „Document Object Model“. Dabei handelt es sich um eine Programmierschnittstelle, die Web-Entwickler:innen das Bearbeiten der verschiedenen Komponenten einer Webseite erleichtert. Das DOM stellt HTML-Dokumente in einer Baumstruktur dar und sorgt dafür, dass Programmiersprachen wie JavaScript mit der Seite und ihren Elementen interagieren können, erklärt Khodayari. „Das Problem ist, dass es Namenskollisionen zwischen JavaScript-Variablen und HTML-Markups gibt. Angreifer:innen können diesen Umstand ausnutzen und mit HTML-Markups JavaScript-Variablen überschreiben und damit den Browser alle möglichen Aufgaben ausführen lassen.“

Khodayari, der in der Gruppe von CISPA-Faculty Dr. Giancarlo Pellegrino forscht, hat erstmals untersucht, wie viele Markups es gibt, die so missbraucht werden können und wie viele Webseiten entsprechende Schwachstellen aufweisen. „Wir waren überrascht vom Ausmaß des Problems: Unsere Auswertung zeigt, dass die Angriffsfläche sehr groß ist. In den Top-5000-Webseiten haben wir rund 9500 anfällige Datenflüsse auf 491 betroffenen Webseiten gefunden, darunter sind beliebte Seiten wie Fandom, Trello, Vimeo, TripAdvisor, WikiBooks oder GitHub, die über die traditionellen Angriffswege nicht angreifbar sind.“

Insgesamt hat der Forscher über 24,6 Milliarden Zeilen JavaScript-Code in 18,3 Millionen Skripte und 205600 Webpages auf verwundbare Datenflüsse analysiert. „Um das zu schaffen, habe ich das Analysetool TheThing entwickelt.“ Damit das Tool weiß, wonach es suchen muss, hat der CISPA-Forscher im ersten Schritt Forschungsliteratur gewälzt und dann automatisiert potenziell manipulative Markups entwickelt und getestet, wie 19 verschiedene mobile sowie Desktop-Browser damit umgehen. „Am Ende haben wir mehr als 31400 verschiedene HTML-Markups entdeckt, die JavaScript-Variablen mittels verschiedener Techniken in mindestens einem der getesteten Browser unerwartet überschreiben können. Vor unserer Untersuchung waren nur rund 500 solche Markups bekannt.“

Doch was lässt sich gegen DOM-Clobbering-Attacken tun? „Es wird schon lange diskutiert, den Mechanismus im Browser abzustellen, der das Überschreiben von JavaScript-Variablen durch HTML-Markups überhaupt erst möglich macht. Das Problem ist, dass dann mehr als 10 Prozent aller Webpages kaputtgehen würde. Das ist schon lange die Aussage von Google und hat sich in unserer Untersuchung auch bestätigt. Schlimmer noch: Wir haben gesehen, dass die 10 Prozent aller betroffenen Webpages zu 50 Prozent der Top-Webseiten gehören. Der Schaden wäre immens.“ Bestehende Sicherheitsmechanismen wie eine Content-Security Policy (CSP) oder sogenannte Sanitizer, die HTML-Dokumente von unsicheren Elementen befreien sollen, sind uneffektiv und ineffizient gegen DOM-Clobbering-Attacken.

Sind wir DOM Clobbering also hilflos ausgeliefert? „Nein. Wir können sehr wohl etwas tun“, sagt Khodayari. „Unser Tool TheThing steht Webseitenbetreiber:innen und Entwickler:innen zur Verfügung und kann ihnen zeigen, wo ihre Seiten Schwachstellen haben. Zudem hilft TheThing Wissenschaftler:innen enorm bei der weiteren Forschung auf diesem Gebiet. Außerdem haben wir den von unserem Tool entdeckten anfälligen Code genau angeschaut, häufige Fehler von Entwickler:innen identifiziert und für sie eine Liste von sicheren Codierungsmustern sowie Richtlinien erstellt. Wir haben außerdem einen Patch für den bekannten HTML-Sanitizer DOMPurify eingereicht, um einen strikten Schutz vor DOM-Clobbering (durch Namespace-Isolierung) durchzusetzen. Ein weiterer hilfreicher Schritt könnte eine Anpassung des Sicherheitsmechanismus CSP sein. Hierzu sind wir mit dem World-Wide-Web-Consortium (W3C) im Austausch. Es bleibt aber noch einiges zu tun.“

Ein ausführliches Wiki zur Attacke, das Tool TheThing und einen automatisierten Browser-Check gibt es unter: https://domclob.xyz/