Seit kurzem ist eine neue Form von Cross-Site Request-Forgery (oder auch `UI Redress Attack`, da der Angriff eben keine CSRF-Attacke im klassischen Sinne darstellt) im Gespräch – das so genannte Clickjacking. Während beim klassischen CSRF versucht wird, einen Request (z.B. durch das Abschicken eines versteckten Formulars) an eine fremde Seite zu schicken, in der Hoffnung, das Opfer wäre dort z.B. per Cookie authentifiziert (was dazu führt, dass der Request in `seinem Namen` ausgeführt wird), ist der Weg beim Clickjacking ein anderer. Hier wird die Seite, auf der man das Opfer bestimmte Aktionen vornehmen lassen will, in einem (unsichtbaren) IFRAME geladen. Nun wird versucht, das Opfer auf bestimmte Bereiche klicken zu lassen (die Bereiche, wo sich – rein zufällig – die Buttons und Links im unsichtbaren IFRAME befinden).
Vom Klickdieb…
Bis die Technik von Robert Hansen und Jeremiah Grossman näher untersucht wurde, wurde sie vor allem mit Manipulation von Umfragen in Verbindung gebracht. Die Analyse brachte jedoch zu Tage, dass solche Angriffe weitaus gefährlicher sind, als bisher angenommen – Scheinbar sind die Informationen darüber so brisant, dass Adobe die Forscher bat, den angekündigten Vortrag OWASP-Konferenz zurückzuziehen – was sie am Ende auch taten.
…zum Spion
Nun hat aber Guy Aharonovsky ein Proof-of-Concept einer solchen Attacke veröffentlicht. Seine Demo-Seite simuliert ein JavaScript-basiertes Klickspiel (bei dem es – angeblich – darum geht, möglichst viele Buttons in möglichst kurzer Zeit anzuklicken). Im Hintergrund wird die Seite
http://www.macromedia.com/support/documentation/en/flashplayer/help/settings_manager06.html
geladen – das Privacy-Tab des Flash-Einstellungsmanagers. Durch Mischung von wirklich sinnlosen `Spielklicks` und Klicks, die im unterliegenden IFRAME mit der Flash-Einstellungsseite Aktionen auslösen, wird schlussendlich erreicht, dass der (in diesem Fall hoffentlich nicht ahnungslose) Benutzer für die Domain in den Webcam- und Mikrofonenstellugen das `immer zulassen`-Flag setzt. Die im ursprünglichen Proof-of-Concept gezeigte Schwachstelle wurde durch Macromedia soweit behoben, als dass das Einbinden der obigen Seite in einen IFRAME durch einen JavaScript-Hack verhindert wird. Dies hindert einen Angreifer jedoch nicht daran, direkt die Flash-Datei
http://www.macromedia.com/support/flashplayer/sys/settingsmanager.swf?defaultTab=privacy
in den IFRAME zu laden. Ein entsprechend gepatchtes PoC findet sich hier.
Und nun?
Es dürfte nun klar sein, dass die Gefahren, die von einem Benutzer ausgehen, der gutgläubig da klickt, wo es ihm eine bestimmte Webseite vorgibt, nicht zu unterschätzen sind. Wie kann man sich schützen? Schutz verspricht die Firefox-Erweiterung Noscript seit Version 1.8.2 – aus dem Changelog:
New “ClearClick” protection, specifically addressing Clickjacking, Clickjacket and other UI-redressing vulnerabilities: UI interaction with embedded objects is disabled if they’re obstructed or not clearly visible (thanks Sirdarckcat, RSnake, Michal Zalewski and Matt Mastracci for inspiration and discussion)
In den folgenden Versionen wurde der `ClearClick` genannte Algorithmus weiter verbessert.
Eine weitere Lösung bestünde natürlich darin, sich zu überlegen, welche Webseiten man besuchen will und welche nicht – und darin, JavaScript, Flash und ähnliche Spielereien nur dort zu aktivieren, wo man sie auch braucht…
Verfasst von Kugelfisch