Ich möchte Ihnen die Ergebnisse meiner Forschung zum aktuellen Stand der Dekanonymisierung mithilfe der Clickjacking-Technik mitteilen. Mit Dekanonymisierung meine ich die Fähigkeit einer böswilligen Website, die Identität eines Besuchers einschließlich seines vollständigen Namens und möglicherweise anderer Informationen preiszugeben. Ich präsentiere hier keine neuen Informationen, die bisher nicht öffentlich bekannt waren, aber ich war sehr überrascht herauszufinden, wie einfach es ist, die Privatsphäre des Besuchers zu verletzen und seine Identität preiszugeben, selbst wenn Sie die Best Practices befolgen und einen modernen Browser und ein modernes Betriebssystem verwenden.
Alles begann mit Google YOLO
Meine Reise begann, als ich auf einen großartigen
Blog-Beitrag namens Google YOLO stieß , der von
@filedescriptor verfasst wurde und sich mit der Clickjacking-Sicherheitsanfälligkeit des Google YOLO-Web-Widgets (Sie melden sich nur einmal an) befasst, das eine Inline-Autorisierung mit einem Klick auf Websites bietet . Ich empfehle Ihnen dringend, einen Blog-Beitrag zu lesen, in dem Clickjacking-Techniken beschrieben und interaktiv demonstriert werden.
Kurz gesagt, das Datenschutzproblem besteht darin, dass Sie eine Website mit einem Google YOLO-Widget erstellen und das Widget als harmlose Schaltfläche maskieren können. Wenn Sie auf eine Schaltfläche klicken, die auf den ersten Blick harmlos ist, meldet sich das Opfer unwissentlich mit seinem Google-Konto an und überträgt seine Identität einschließlich seines vollständigen Namens und seiner E-Mail-Adresse an den Website-Eigentümer.
Oft spielt dies keine Rolle, da viele Websites Ihre Identität höchstwahrscheinlich bereits kennen. Trotzdem kann dieses Problem unangenehme Folgen haben. Betrachten Sie zum Beispiel das Ausfüllen einer angeblich anonymen Umfrage. Da Sie diese Website noch nie besucht haben, denken Sie möglicherweise, dass sie Ihre Antworten nicht mit Ihrer Identität verknüpfen kann, dies ist jedoch überhaupt nicht der Fall.
Als ich zum ersten Mal auf den Google YOLO-Blogbeitrag stieß, hatte Google
das Problem bereits
behoben, indem die Funktion nur auf verbundene Websites beschränkt wurde. In diesem Blog-Beitrag wird auch das Clickjacking mit dem Facebook Like-Widget beschrieben. Wenn Sie jedoch auf die Schaltfläche geklickt haben, hat das Widget um Bestätigung gebeten:

Die Bestätigungsanforderung macht diesen Angriff unmöglich - selbst wenn das Opfer unbewusst zweimal auf die Schaltfläche "Gefällt mir" klickt, muss es seine Aktion in einem Popup-Fenster bestätigen. Das Popup kann von der Angreifer-Site nicht geändert werden und ist daher keinem Clickjacking-Angriff ausgesetzt. Der Nachteil dieser Lösung besteht darin, dass die Verwendung weniger bequem ist und jedes Mal zusätzliche Aktionen erforderlich sind, selbst wenn die Schaltfläche "Gefällt mir" absichtlich verwendet wird.
Infolgedessen kam ich zu dem Schluss, dass große Unternehmen dieses Problem gelöst haben, und vergaß es für eine Weile, bis ich eine neue Idee hatte ...
Facebook-Kommentar-Widget: "Typjacking"
Als ich eines Tages im Internet herumlief, stieß ich auf eine Website, die das
Facebook-Kommentar-Widget verwendete , um Besuchern das Kommentieren einer Seite eines Drittanbieters zu ermöglichen. In diesem Moment erinnerte ich mich an das, was ich zuvor gelesen und gedacht hatte: Das Clickjacking-Problem wurde von großen Unternehmen gelöst, aber was ist mit „Typjacking“? Was ist, wenn ich ein Kommentar-Widget nehme und es in meine Website einfüge und es als nicht verwandtes Formular tarne? Wenn ich dann das Opfer davon überzeugen kann, Text oder Text einzugeben und als Facebook-Kommentar an meine Seite zu senden, kann ich ihre Identität herausfinden, indem ich auf Facebook überprüfe, welches Konto den Kommentar gerade gepostet hat.
Vor diesem Hintergrund habe ich begonnen, an einer Webseite zu arbeiten, die diese Technik demonstriert. Dabei habe ich versehentlich festgestellt, dass das "Gefällt mir" -Widget, das meiner Meinung nach eine Bestätigung erfordert, auf meiner Webseite ohne Bestätigung funktioniert! Als ich über ein Widget im Internet las, stellte ich fest, dass Facebook im Gegensatz zu Google eine schwarze Liste verwendet, um sich vor Clickjacking zu schützen.
Die Art und Weise, wie Facebook beschlossen hat, seine Benutzer vor Clickjacking zu schützen, kann es vor der riesigen Sammlung von Likes schützen - Facebook kann feststellen, dass eine große Anzahl von Likes von einer Website stammen, Bestätigungen hinzufügen und sogar Likes stornieren. Dies schützt jedoch nicht vor der Gefahr einer Dekanonymisierung. Ein Angreifer kann auf einfache Weise eine neue Website erstellen und Clickjacking mit dem Widget "Gefällt mir" verwenden. Anschließend kann er die Seite an eine begrenzte Anzahl von Opfern senden und ihre Identität offenlegen, indem er Facebook-Likes verfolgt.
Zu meiner Überraschung ist die Likejacking-Technik, ein Begriff, der die Clickjacking-Technik zum Erhalten von Likes beschreibt,
seit mindestens 2010 bekannt . Und heute, 9 Jahre später, bleibt es immer noch relevant. Auch wenn es um „Likejacking“ geht, wird das Thema Dekanonymisierung selten erwähnt. Das Thema Dekanonymisierung wurde bereits 2012 öffentlich geschrieben, aber ich glaube, dass nicht genug Menschen davon wissen, insbesondere für unsere Zeit, in der immer mehr Menschen die Bedeutung der Privatsphäre im Internet verstehen.
In Bezug auf die Typjacking-Technik habe ich noch eine
Webseite hinzugefügt
, die den Angriff demonstriert . Sie können selbst experimentieren oder das Video ansehen:
Clickjacking, Typejacking ... was noch?
Als ich über die Clickjacking-Technik nachdachte, fragte ich mich, was ich sonst noch tun könnte, wenn ich Widgets von Drittanbietern auf einer schädlichen Website einfügen und bearbeiten könnte. Clickjacking- und Typejacking-Techniken sind für die Benutzerinteraktion mit dem Widget konzipiert. Was ist, wenn wir den Benutzer stattdessen davon überzeugen, uns Informationen aus dem Widget bereitzustellen?
Es stellte sich heraus, dass schon jemand vor mir darüber nachgedacht hatte. Eine schnelle Suche führte mich zu dem Artikel "
Erzähl mir von dir: Der bösartige CAPTCHA-Angriff ", in dem diese Technik analysiert wird. Hier ist ein Beispiel aus einem Artikel, der zeigt, wie ein Angreifer ein Opfer austricksen und seinen Namen unwissentlich preisgeben kann, indem er das Widget als unschuldiges Captcha maskiert:

Clickjacking-Prävention für Websitebesitzer
Es gibt immer noch keine zuverlässige Möglichkeit, Clickjacking zu verhindern.
Im Jahr 2009 wurde der HTTP-Header
X-Frame-Options eingeführt, der einen teilweisen Schutz gegen Clickjacking bietet. In der Kopfzeile kann der Websitebesitzer angeben, welche Seiten nicht im Frame enthalten sein sollen. Der Browser, der den Header unterstützt, weigert sich, diese Seiten in einen Frame zu laden. Obwohl dies in einigen Fällen ein Clickjacking verhindert, hilft es nicht bei Widgets, die in einen Frame geladen werden müssen, z. B. ein Like-Widget oder ein Kommentar-Widget.
Als ich mir die Überschrift
X-Frame-Options ansah, fragte ich mich, warum ich nicht eine ähnliche Option wählen sollte, die ein gewisses Maß an Schutz bietet und gleichzeitig das Laden der Webseite in einen Frame ermöglicht. Denken Sie beispielsweise an das Widget "Gefällt mir": Gibt es einen guten Grund für eine Webseite, über einer Schaltfläche zu zeichnen? Größen- oder Transparenzschaltflächen? Führen Sie andere Manipulationen wie CSS-Filter durch? Der einzige Grund, den ich mir vorstellen kann, ist Clickjacking. Warum nicht eine neue Option für
X-Frame-Optionen einführen, z. B.
X-Frame-Optionen: Isolieren , mit der die Webseite in den Frame geladen werden kann, die Größe des Frames jedoch nicht geändert werden kann und die übergeordnete Website nicht überzeichnet werden kann ihn. Wie bei früheren Ideen,
und jemand hat mir dies bereits vorgeschlagen .
Während Browser einen solchen Schutz nicht implementieren, haben Websitebesitzer nur eine Option: Sie benötigen zusätzliche Interaktion mit dem Benutzer, z. B. über ein separates Popup-Fenster. Wir haben gesehen, dass Facebook dies mit dem Widget "Gefällt mir" tut, jedoch nur für die verdächtigen Websites, auf denen es gehostet wird. Offensichtlich schätzt Facebook die Bequemlichkeit der Nutzer mehr als ihre Privatsphäre.
Update: Es stellt sich heraus, dass Chrome Widget-Besitzern die Möglichkeit bietet, Clickjacking mithilfe der
Intersection Observer v2- Funktion zu erkennen. Diese Funktion ist standardmäßig ab Chrome 74 aktiviert, das im April 2019 veröffentlicht wurde. Leider implementiert es derzeit nur Chrome und es ist nicht so einfach zu bedienen - zumindest schwieriger als das Hinzufügen eines Headers. Weitere Informationen finden Sie unter
Vertrauen ist gut, Beobachtung ist besser .
Clickjacking-Prävention für Benutzer
Nachdem ich mehrere Lösungen ausprobiert hatte, kam ich zu dem Schluss, dass das Blockieren von Cookies von Drittanbietern der beste Weg ist, um Informationslecks durch Clickjacking zu verhindern. Dies verhindert nicht die Clickjacking-Technik selbst, aber da der eingebettete Frame keine Besucher-Cookies empfängt, ist dieser Frame für einen Angreifer nicht besonders nützlich.
Die Option zum Blockieren von Cookies von Drittanbietern besteht außerdem darin, dass diese Option in den meisten Browsern zunächst integriert ist. Sie müssen keine Erweiterungen von Drittanbietern installieren oder nach unterschiedlichen Lösungen für unterschiedliche Browser oder Geräte suchen.
Der Nachteil ist, dass Widgets wie das Like-Widget oder das Kommentar-Widget auf allen Websites nicht mehr funktionieren. Ich vermisse sie nicht sehr, aber vielleicht ist diese Option nicht für jeden geeignet.
Ein weiterer Vorteil des Blockierens von Cookies von Drittanbietern besteht darin, dass das Blockieren vor Seitenkanalangriffen schützen kann, für die kein Benutzereingriff erforderlich ist.
Diese Methode demonstriert beispielsweise die Verwendung von CSS3 zur Dekanonymisierung von Facebook-Benutzern ohne zusätzliche Benutzerinteraktion mit der Webseite. Ein weiteres Beispiel für eine alte, aber interessante Sicherheitsanfälligkeit, die durch das Blockieren von Cookies von Drittanbietern verhindert werden kann, ist der generelle
browserübergreifende Cross-Domain-Diebstahl , bei dem eine Lücke in der CSS-Spezifikation verwendet wird, um den Browser zu zwingen, die Cross-Origin-Seite als CSS und Zugriff zu verwenden zu spezifischen Informationen (
Ausgabe des Chromium-Projekts ).
Fazit
Unter all den historischen und technischen Details in diesem Artikel gibt es eine Empfehlung, die ich noch einmal hervorheben möchte: Blockieren Sie Cookies von Drittanbietern, um den Schutz Ihrer Identität im Internet zu verbessern.
Ich hoffe, dieser Artikel trägt dazu bei, das Bewusstsein für die seit 2010 bekannte und noch nicht gelöste Clickjacking-Technik zu schärfen. Möglicherweise erwägen Browser-Anbieter die Einführung von Maßnahmen, um dies zu verhindern und die Frame-Manipulation einzuschränken.
PS On Habré hat vor 5 Jahren
auf der VKontakte-Website über ein
ähnliches Problem geschrieben. Es scheint, dass die Demo nicht mehr funktioniert (Sie müssen die Aktion in einem Popup-Fenster bestätigen), aber wie Sie sehen können, ist das Thema immer noch relevant. Möglicherweise gibt es auf VKontakte ein anderes Widget, das Sie verwenden können, z. B. ein Kommentar-Widget. Leider hat der Autor in diesem Artikel das Blockieren von Cookies von Drittanbietern nicht erwähnt.