„Clickjacking“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Zeile 17: Zeile 17:
Fast alle Browser haben inzwischen die Möglichkeit eingeführt, dass Webanwendungen einen Header "X-Frame-Options"<ref>https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header</ref> senden, der dem Browser anzeigt, ob die Webseite in einem [[Frame (HTML)|Frame]] angezeigt werden darf oder nicht. Möglich sind hierfür die Werte "DENY" (Seite darf nicht in Frame angezeigt werden), "SAMEORIGIN" (Seite darf nur von Frames auf derselben Domain angezeigt werden) und "ALLOW-FROM" (Seite darf von spezifizierte Domäne und URL angezeigt werden)<ref>http://tools.ietf.org/html/draft-ietf-websec-x-frame-options-00</ref>. Voraussetzung für diesen Schutz ist aber, dass er sowohl von der Webanwendung als auch vom Browser unterstützt wird. Der Header ist bislang kein offizieller Standard. Unterstützt wird er vom Internet Explorer ab Version 8.0, Firefox ab 3.6.9, Opera ab 10.50, Safari ab 4.0 und Chrome ab 4.1.249.1042. Konqueror unterstützt diese Möglichkeit bislang nur bei Nutzung der experimentellen Webkit-Engine, in der Standardkonfiguration ist der KDE-eigene Browser gegen Clickjacking ungeschützt.<ref>https://bugs.kde.org/show_bug.cgi?id=259070</ref>
Fast alle Browser haben inzwischen die Möglichkeit eingeführt, dass Webanwendungen einen Header "X-Frame-Options"<ref>https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header</ref> senden, der dem Browser anzeigt, ob die Webseite in einem [[Frame (HTML)|Frame]] angezeigt werden darf oder nicht. Möglich sind hierfür die Werte "DENY" (Seite darf nicht in Frame angezeigt werden), "SAMEORIGIN" (Seite darf nur von Frames auf derselben Domain angezeigt werden) und "ALLOW-FROM" (Seite darf von spezifizierte Domäne und URL angezeigt werden)<ref>http://tools.ietf.org/html/draft-ietf-websec-x-frame-options-00</ref>. Voraussetzung für diesen Schutz ist aber, dass er sowohl von der Webanwendung als auch vom Browser unterstützt wird. Der Header ist bislang kein offizieller Standard. Unterstützt wird er vom Internet Explorer ab Version 8.0, Firefox ab 3.6.9, Opera ab 10.50, Safari ab 4.0 und Chrome ab 4.1.249.1042. Konqueror unterstützt diese Möglichkeit bislang nur bei Nutzung der experimentellen Webkit-Engine, in der Standardkonfiguration ist der KDE-eigene Browser gegen Clickjacking ungeschützt.<ref>https://bugs.kde.org/show_bug.cgi?id=259070</ref>


Weiterhin besteht die Möglichkeit, in älteren Browsern mit Hilfe eines JavaScript-[[Framekiller|Framekillers]] die Ausgabe der Seite zu unterbinden. Dabei muss jedoch beachtet werden, dass die Seite vor Ausführung des JavaScripts versteckt ist und erst bei einer erfolgreichen Frame-Überprüfung angezeigt wird. Sonst lässt sich der Framekiller selbst umgehen.<ref>http://seclab.stanford.edu/websec/framebusting/framebust.pdf</ref>
Außerdem besteht die Möglichkeit, in älteren Browsern mit Hilfe eines JavaScript-[[Framekiller|Framekillers]] die Ausgabe der Seite zu unterbinden. Dabei muss jedoch beachtet werden, dass die Seite vor Ausführung des JavaScripts versteckt ist und erst bei einer erfolgreichen Frame-Überprüfung angezeigt wird. Sonst lässt sich der Framekiller selbst umgehen.<ref>http://seclab.stanford.edu/websec/framebusting/framebust.pdf</ref>
<syntaxhighlight lang="javascript">
<syntaxhighlight lang="javascript">
<style> html{display : none ; } </style>
<style> html{display : none ; } </style>

Version vom 14. Dezember 2014, 15:03 Uhr

Clickjacking ist eine Technik, bei der ein Computerhacker die Darstellung einer Internetseite überlagert und dann deren Nutzer dazu veranlasst, scheinbar harmlose Mausklicks und/oder Tastatureingaben durchzuführen.

Funktionsweise

Angreifer lassen die ahnungslosen Anwender – scheinbar – auf die überlagerten Objekte klicken. Tatsächlich jedoch wird der ursprüngliche Inhalt (Button/Link) der Internetseite ausgelöst. So geschieht es, dass der User – anstatt lediglich auf die ihm vorgegaukelten Links an einer Stelle zu klicken – eine vom Hacker definierte, beliebige Aktion auslöst.

Dies betrifft Seiten, die beispielsweise Links und Schaltflächen zur Konfiguration von Systemeinstellungen enthalten. Während der Nutzer also denkt, er tätige harmlose Eingaben in einer Internetseite, ändert er in Wahrheit, ohne es zu merken, z. B. Einstellungen einer angeschlossenen Kamera oder eines Mikrophons.

Beispielsweise kann so auch eine Website-Schaltfläche, die zum Absenden von Anmeldedaten dient, mit einem für den User unsichtbaren Button überlagert werden. Über diesen lassen sich die Informationen an den Angreifer übermitteln.

Im Extremfall kann ein Hacker also sein Opfer beobachten, belauschen oder sensible Daten übermitteln lassen.

Gegenmaßnahmen

Clickjacking ist ein konzeptionelles Problem von JavaScript und Webanwendungssicherheit. Es beruht nicht auf einem "Fehler" des Anwendungsprogrammierers, insofern sind Gegenmaßnahmen nicht trivial.

Fast alle Browser haben inzwischen die Möglichkeit eingeführt, dass Webanwendungen einen Header "X-Frame-Options"[1] senden, der dem Browser anzeigt, ob die Webseite in einem Frame angezeigt werden darf oder nicht. Möglich sind hierfür die Werte "DENY" (Seite darf nicht in Frame angezeigt werden), "SAMEORIGIN" (Seite darf nur von Frames auf derselben Domain angezeigt werden) und "ALLOW-FROM" (Seite darf von spezifizierte Domäne und URL angezeigt werden)[2]. Voraussetzung für diesen Schutz ist aber, dass er sowohl von der Webanwendung als auch vom Browser unterstützt wird. Der Header ist bislang kein offizieller Standard. Unterstützt wird er vom Internet Explorer ab Version 8.0, Firefox ab 3.6.9, Opera ab 10.50, Safari ab 4.0 und Chrome ab 4.1.249.1042. Konqueror unterstützt diese Möglichkeit bislang nur bei Nutzung der experimentellen Webkit-Engine, in der Standardkonfiguration ist der KDE-eigene Browser gegen Clickjacking ungeschützt.[3]

Außerdem besteht die Möglichkeit, in älteren Browsern mit Hilfe eines JavaScript-Framekillers die Ausgabe der Seite zu unterbinden. Dabei muss jedoch beachtet werden, dass die Seite vor Ausführung des JavaScripts versteckt ist und erst bei einer erfolgreichen Frame-Überprüfung angezeigt wird. Sonst lässt sich der Framekiller selbst umgehen.[4]

<style> html{display : none ; } </style>
<script>
   if( self == top ) {
       document.documentElement.style.display = 'block' ; 
   } else {
       top.location = self.location ; 
   }
</script>

Literatur

Quellen

  1. https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header
  2. http://tools.ietf.org/html/draft-ietf-websec-x-frame-options-00
  3. https://bugs.kde.org/show_bug.cgi?id=259070
  4. http://seclab.stanford.edu/websec/framebusting/framebust.pdf