E-mail senden E-Mail Adresse kopieren

2021-08-27
Annabelle Theobald

Entscheidend ist, wer fragt

CISPA-Forscher Soheil Khodayari hat auf dem renommierten USENIX Security Symposium das Analysetool JAW vorgestellt, mit dem er mehr über eine neue Angriffsvariante im Web herausfinden will.

Taucht im eigenen Facebook-Konto plötzlich ein Post auf, den man nicht selbst verfasst hat, oder wurden die Firewall- oder Router-Einstellungen ohne eigenes Zutun verändert, sind User:innen wahrscheinlich Opfer eines sogenannten Cross-Site-Request-Forgery-Angriffes (kurz CSRF-Angriff, gesprochen Seasurf-Angriff) geworden. Solche Attacken sind schon seit Jahrzehnten bekannt und können in ihrer traditionellen Form mittlerweile durch verschiedene Sicherheitsmaßnahmen gut abgewehrt werden. 2018 ist allerdings eine neue Variante der Angriffsmethode aufgetaucht, über die bislang nur wenig bekannt ist. Um das zu ändern, hat CISPA-Forscher Soheil Khodayari das neue Analysetool JAW entwickelt, mit dem sich Webseiten auf ihre Anfälligkeit für die neuartigen Angriffe untersuchen lassen. Zudem konnte Khodayari, der in der Gruppe von Giancarlo Pellegrino forscht, in seinem Paper „JAW: Studying Client-side CSRF with Hybrid Property Graphs and Declarative Traversals“ zeigen, dass mehr als drei Viertel der von ihm untersuchten Webseiten Schwachstellen aufweisen, die die Attacken ermöglichen. Seine Arbeit präsentierte er auf der IT -Sicherheitskonferenz USENIX Security Symposium.

CSRF ist eine Methode zum Angriff von Webseiten, bei der sich die Angreifer:innen als vertrauenswürdige Nutzer:innen tarnen und unerwünschte Aktionen in den Webanwendungen echter User:innen ausführen. Um zu verstehen, wie diese Angriffe funktionieren – von denen es verschiedene Arten gibt –, hilft es, sich zunächst nochmal genauer anzuschauen, wie das „Surfen“ im Internet eigentlich funktioniert.

Dass wir uns heute so bequem in der digitalen Welt bewegen können, hat vor allem mit der Entwicklung des World Wide Web, dem wohl bekanntesten Internetdienst, in den 1990er-Jahren zu tun. Zum WWW gehört im Prinzip alles, was mithilfe von Webbrowsern wie Google Chrome oder Mozilla Firefox aufgerufen werden kann und macht nur einen Teil des Internets aus – es wird aber häufig fälschlicherweise damit gleichgesetzt. Das Web ermöglicht uns den weltweiten Austausch digitaler Daten und die Darstellung von Text, Ton-, Bild- und Videodateien aller Art.

Internetdienste wie das WWW basieren auf dem sogenannten Client-Server-Modell. Wann immer im Netz Daten zwischen zwei Rechnern übertragen werden, muss der eine die Dienste bereitstellen und auf Anfragen reagieren (Server), während der andere die Anfragen sendet und die Antworten des Servers verarbeitet (Client). Der Client kann vom Server zum Beispiel die Übermittlung von Webseiten oder E-Mails erbitten. Client und Server kommunizieren dabei mithilfe des HTTP-Protokolls, welches genau regelt, wie der Client seine Anfrage formulieren und wie der Server darauf antworten muss. Anfragen vom Client an den Server werden deshalb auch HTTP-Anfragen genannt.

Bei den traditionellen CSRF-Attacken versuchen Angreifer:innen den Webbrowser der Nutzer:innen dazu zu bewegen, von ihnen manipulierte HTTP-Anfragen auszuführen und so auf einer Webseite schädliche Aktionen durchzuführen, erklärt Khodayari. Dafür müssen die Nutzer:innen auf der Zielseite des Angriffs angemeldet sein. Eine Funktion vieler Dienste, die der Bequemlichkeit von Nutzer:innen dient, kommt den Angreifer:innen dabei sehr entgegen.

Haben sich Nutzer:innen auf einer Plattform wie zum Beispiel einem Online-Shop angemeldet, bleiben sie für die Dauer einer Session eingeloggt. Wie lange diese Sessions sind, hängt vom jeweiligen Dienst ab. Während Banken und Sparkassen ihre Dauer aus Sicherheitsgründen meist auf wenige Minuten begrenzen, gestatten Soziale Netzwerke und Online-Shops ihren Besucher:innen oft einen tagelangen Log-In ohne erneute Passworteingabe. Schaffen es Angreifer:innen Nutzer:innen in dieser Zeit auf eine von ihnen kontrollierte Webseite zu locken und dort zum Beispiel auf einen Button klicken zu lassen, kann das das Senden einer manipulierte HTTP-Anfrage an den Webserver des Onlineshops auslösen und –oft lange unbemerkt von den Nutzer:innen– unerwünschte Aktionen ausführen. Die Angreifer:innen müssen dafür nur wissen, wie die vom Server erwartete HTTP-Anfrage formuliert sein muss – was nicht allzu schwer auszulesen ist. Von wo genau die Anfrage kommt, kontrolliert der Server nicht. 

Das sogenannte clientseitige CSRF, mit dem sich Khodayari beschäftigt, ist eine neue Variante dieser Schwachstelle. Angreifer:innen tricksen dabei nicht den Webserver, sondern das JavaScript-Programm auf der Seite des Clients aus – meist ist es Bestandteil des Browsers – und können darüber gefälschte HTTP-Anfragen an eine verwundbare Zielseite senden. „Unser Ziel war herauszufinden, wie häufig die Schwachstellen auftreten, die solche Angriffe ermöglichen und die verschiedenen Angriffs-Modelle zu verstehen“, sagt Khodayari, der gebürtig aus dem Iran stammt. Auch sei bisher nicht klar gewesen, in welchem Ausmaß die Angreifer:innen die HTTP-Anfragen kontrollieren können.  „Um das herausfinden zu können, müssen wir JavaScript-Programme analysieren. Allerdings ist das mit den bisherigen Analysemethoden nicht leicht zu bewerkstelligen.“ Eine statische Codeanalyse, bei der sich Forscher:innen nur den Quellcode ansehen, ist bei JavaScript-Programmen wegen ihrer dynamischen Natur nicht aussagekräftig. Deshalb brauchten die Forscher ein hybrides Analyse-Modell mit dynamischen Anteilen, das auch die Untersuchung des Programmverhaltens während seiner Laufzeit ermöglicht.

Dazu hat Khodayari das Analysetool JAW entwickelt. Anschließend hat er damit 106 Webanwendungen und insgesamt rund 228 Millionen JavaScript-Codezeilen untersucht, um die Verbreitung clientseitiger CSRF-Schwachstellen beurteilen zu können. In 87 der 106 Webanwendungen fand er mithilfe des Tools 12.701 fälschbare HTTP-Anfragen. Für 203 davon konnten sie auch schon konkret zeigen, dass und wie sich diese Schwachstellen ausnutzen lassen. Dabei hat sich gezeigt, dass sich bei der client-seitigen CSRF über die traditionellen Methoden hinaus zusätzliche Angriffsvektoren eröffnet. Um die weitere Erforschung von Schwachstellen in JavaScript-Programmen zu unterstützen, hat Khodayari den Quellcode von JAW veröffentlicht.