Clickjacking - Angriffe auf Seiten ohne Schwachstellen
Clickjacking ist eine recht neue Bedrohung für Webanwendungen, die in ihrer kurzen Geschichte aber schon mehrmals Schaden angerichtet hat. 2008 entdeckt, 2009 erstmals für Angriffe ausgenutzt, 2010 verfeinert - das ist doch eine steile Karriere. Worum geht es? Schon ein einziger anscheinend harmloser Klick auf einer Webseite kann dank Clickjacking verhängnisvolle Folgen haben: Ein Angreifer könnte den Klick abfangen und damit auf einer anderen Webseite eine Aktion nach seinen Wünschen auslösen.
2008 - Clickjacking erblickt das Licht der Welt
Anfang September 2008 zogen Jeremiah Grossman und Robert "RSnake" Hansen einen zuvor angekündigten Vortrag auf der Konferenz OWASP NYC AppSec zurück, in dem sie eine neue Schwachstelle vorstellen wollten. Sowohl Jeremiah Grossman als auch Robert Hansen begründeten das damit, dass die Schwachstelle so gefährlich sei, dass die betroffenen Hersteller vor ihre Veröffentlichung die Möglichkeit zu ihrer Korrektur haben sollten.
"Clickjacking" - Was kann das sein?
Außer dem Namen war zuerst wenig über die neue Bedrohung bekannt: "Clickjacking". Jeremiah Grossman schrieb, dass es darum geht, was ein Angreifer mit einem abgefangenen "Klick" erreichen kann: Beim Clickjacking kann der Angreifer einen Benutzer zum Klick auf etwas gar nicht oder nur kurz sichtbares bewegen und damit einer unerwartete Reaktion auslösen.
Eine der von Grossman und Hansen vorbereiteten Demonstrationen des neuen Angriffs betraf ein Adobe-Produkt, und Adobe stufte diese Schwachstelle als so kritisch ein, dass man um mehr Zeit für die Entwicklung des notwendigen Patches bat. Auch der Internet Explorer bis einschließlich Version 8 und Firefox 3 waren von der Schwachstelle betroffen.
Geheimhaltung mit kurzer Laufzeit
Die Geheimhaltung hat nicht lange gehalten. Wenn bekannt ist, das etwas funktioniert, bekommt früher oder später auch jemand heraus, wie es funktioniert. In diesem Fall war der Flash-Entwickler Guy Aharonovsky dieser "jemand". Am 7. Oktober 2008 veröffentlichte er eine Demonstration, mit der Benutzer unwissentlich und unbemerkt die Einstellungen des Flash Players änderten und den Angreifern dadurch den Zugriff auf ein angeschlossenes Mikrofon und eine angeschlossene Webcam erlaubten. Dazu ließ er die Benutzer ein angebliches JavaScript-Spiel spielen und dabei verschiedene Objekte anklicken. Parallel dazu wurde der Einstellungsdialog des Flash Players in einem iframe geöffnet und unsichtbar über das Hauptfenster geschoben. Mit manchen Klicks im Spiel klickte der Benutzer dadurch tatsächlich ein Objekt im Einstellungsdialog an. Eine genauere Beschreibung dieses Angriffs gibt es in der nächsten Folge.
Die Demonstration selbst funktionierte schon am gleichen Tag nicht mehr (s.u.), Guy Aharonovsky hat jedoch vorausschauend ein Video davon erstellt.
Workaround und Updates schützen
Adobe hat noch am gleichen Tag ein Security Advisory mit einem Workaround veröffentlicht und den Einstellungsdialog überarbeitet, um den veröffentlichten Angriff wirkungslos zu machen. Endgültig behoben wurde die Schwachstelle dann am 15. Oktober 2008 in Version 10.0.12.36 und am 5. November 2008 in Version 9.0.151.0 des Flash Players.
Weitere Details und das Paper
Nachdem mit der Demonstration für den Flash Player die wesentlichen Punkte eines Clickjacking-Angriffs bekannt waren, hat Robert Hansen weitere Details veröffentlicht. Einige Zeit später wurde auch das Paper von Hansen und Grossman veröffentlicht.
Clickjacking im Detail
Ein Clickjacking-Angriff ist nach damaliger Annahme (inzwischen wurde diese widerlegt) nur möglich, wenn der Angreifer sein Opfer auf eine Seite unter seiner Kontrolle locken kann, da er JavaScript verwenden und mehrere Frames auf einer Seite rendern muss. Als Beispiel wurden von Hansen und Grossman die Sicherheitseinstellungen für den Flash Player in Adobes Global Settings Manager verwendet. Der Benutzer muss für dessen Nutzung nicht authentifiziert sein und die URL ist immer gleich, was den Angriff und damit das Beispiel erleichtert. Konkret soll der Benutzer dazu gebracht werden, den Knopf für "Immer zulassen" im Tab für die globalen Sicherheitseinstellungen zu klicken:

Abb. 1: Adobes Settings Manager - das Ziel des Angriffs
Um den Angriff leichter beschreiben zu können, wird er in seine verschiedenen Bestandteile aufgeteilt. Den Anfang macht die Zielseite, siehe Abb. 2.

Abb. 2: Schritt 1 - Das Ziel, Adobes Settings Manager
Die Zielseite wird so in einem iframe platziert, dass die X- und Y-Koordinaten die Zielregion in der oberen linken Ecke der Seite platzieren. Das sorgt dafür, dass der Ziel-Link oder -Knopf immer am richtigen Platz ist, unabhängig davon, wie groß das Fenster ist oder wo sich Ziel-Link oder -Knopf befinden, siehe Abb. 3.

Abb. 3: Schritt 2 - Der Adobes Settings Manager im iframe
Danach wird diese Seite als iframe in die Seite eingefügt, die dem Benutzer angezeigt wird. Der iframe ist so klein, das nur der Ziel-Link oder -Knopf enthalten ist, der Rest der Seite befindet sich außerhalb des iframes, siehe Abb. 4.

Abb. 4: Schritt 3 - Der iframe mit dem Adobes Settings Manager in der Zielseite
Nun wird der iframe so präpariert, dass er unter dem Mauszeiger
schwebt: Egal wo geklickt wird, die Maus befindet sich an der richtigen
Position. Als letzter Schritt wird die Opacity des den iframe umgebenden
div
-Tags so geändert, das er unsichtbar wird. Die
anderen Fenster sind normalerweise auch nicht zu sehen, in Abb. 5 sind sie
zum besseren Verständnis aber sichtbar.

Abb. 5: Das Ergebnis - Die präparierte Zielseite mit dem unsichtbaren iframe
Klickt das Opfer den Link an, landet der Klick im Settings Manager und ändert die Einstellung. Das einzige, was das Opfer davon bemerkt, ist die fehlende Reaktion der sichtbaren Seite auf den Klick, da der die ja nicht erreicht. Aber auch das ist kein großes Problem, wie Sie in der nächsten Folge sehen werden.
Update 13.5.2015
Aus Anlass des 5jährigen Blog-Jubiläums habe ich alle
Clickjacking-Artikel zusammengefasst, überarbeitet, ergänzt und
auf den aktuellen Stand gebracht. Das Ergebnis ist ein (natürlich
kostenloses) eBook im ePub- und PDF-Format:
5 Jahre Blog - Als Special: "Clickjacking"-eBook
Ende des Updates vom 13.5.2015
Übersicht über alle Artikel zum Thema
- Clickjacking - Angriffe auf Seiten ohne Schwachstellen
- Clickjacking - Auch komplizierte Aktionen sind möglich
- Clickjacking - Framebuster oder HTTP-Header verhindern Angriffe
- Der Angriff der Clickjacking-Würmer, "Likejacking" und "Buttonjacking"
- Clickjacking - "Likejacking" unter die Haube geguckt
- Clickjacking - The next Generation
- Clickjacking - Drag&Drop-Angriffe und weitere Neuigkeiten
- Cookiejacking - Keksdiebe im Internet Explorer
- Likejacking - Facebook im Visier der Cyberkriminellen
- Clickjacking - Gute und Schlechte Nachrichten
- Standpunkt: Clickjacking gegen Flash, urchin.js und Duqu - nichts als Wiederholungen!
- Neue Angriffe auf Webanwendungen über Clickjacking und Cookies
- Clickjacking-Angriffe verhindern - der aktuelle Stand der Dinge
- Clickjacking: Cross Origin Resource Jacking und ein Clickjacking-BeEF-PlugIn
- Clickjacking: "Zaubertricks" ermöglichen Likejacking und mehr
- Dieses und Jenes zum Clickjacking
- 5 Jahre Blog - Als Special: "Clickjacking"-eBook
Trackbacks
Dipl.-Inform. Carsten Eilers am : 2010 - Ein Rückblick auf ein ereignisreiches Jahr
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Warum Sie ihre Website auf Schwachstellen testen sollten
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Präsentationen und Links zu meinen #wtc11-Vorträgen sind online
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Neues zur Sicherheit von Clients, nicht nur im Web
Vorschau anzeigen
scheible.it am : X-Frame-Options
Vorschau anzeigen
Drucksache: Weave 2.2013 - Sicherheitslücken in HTML5 am : PingBack
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: Windows.Developer 4.2013 - Wie sicher ist das Tablet?
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Kommentare zu Webcam-Spannern, EMET 4.0 und einer neuen 0-Day-Schwachstelle
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Keyjacking - Clickjackings kleiner Bruder
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: windows.developer Magazin 9.2013 - Naturally Secure UIs
Vorschau anzeigen
web-development-blog.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.Dipl.-Inform. Carsten Eilers am : Drucksache: PHP Magazin 4.2014 - Angriffsziel UI: UI-Redressing aka Clickjacking
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Drucksache: Mobile Technology 3.2014 - Androids Sicherheit aus Forschersicht
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Neues eBook: Android Security - Von Fake-Apps, Trojanern und Spy Phones
Vorschau anzeigen
Dipl.-Inform. Carsten Eilers am : Neues eBook: "Angriffsziel UI - Benutzeraktionen, Passwörter und Clickjacking"
Vorschau anzeigen
entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.entwickler.de am : PingBack
Die Anzeige des Inhaltes dieses Trackbacks ist leider nicht möglich.