EN

Wie man Clickjacking-Angriffe verhindert

In diesem Artikel:

Ein Clickjacking-Angriff wird in der Regel von einer Form des Social Engineering begleitet, um eine Zielperson auf einen kompromittierten Link zu locken. In diesem Artikel werden die Arten von Clickjacking-Angriffen, ihre verschiedenen Auswirkungen und die besten Vermeidungstaktiken erläutert.

Was ist ein Clickjacking-Angriff?

Ein Clickjacking-Angriff, auch bekannt als User Interface (UI) Redressing, ist ein Angriff auf eine Webanwendung, bei dem der Hacker einen Benutzer dazu bringt, auf ein unsichtbares Webseitenelement zu klicken. 

Die Hacker richten mehrere versteckte oder transparente Ebenen ein. Klickt der Benutzer auf eine Schaltfläche oder einen Link, kann dieser ihn dazu veranlassen, bösartige Seiten zu besuchen, bösartige Software herunterzuladen, Geld zu überweisen oder sensible Daten weiterzugeben.

Ein typischer Clickjacking-Angriff ist die Verwendung eines iFrames über einer normalen Webseite, um ein unsichtbares HTML-Element oder eine Webseite anzuzeigen

Expalantion and examples for clickjacking attacks and how to prevent them.

Risiko und Auswirkungen von Clickjacking-Angriffen

Für normale Benutzer sind Clickjacking-Angriffe schwer zu erkennen, da sie versteckt erfolgen. Ein erfolgreicher Clickjacking-Angriff birgt das Risiko, dass sensible Daten eines Benutzers, wie z. B. die Nummer einer Sicherheitskarte oder Anmeldedaten, preisgegeben werden. 

Obwohl die Clickjacking-Schwachstelle als mittleres Risiko eingestuft wird, da der Benutzer direkt mit der böswilligen Seite bzw. dem böswilligen Element interagieren muss, variiert das Ausmaß der Auswirkungen eines erfolgreichen Angriffs je nach Anwendungsumgebung, der Art der Benutzer und der Art der erlangten Daten. Einige bösartige Aktionen, die Angreifer typischerweise durch Clickjacking-Angriffe durchführen, sind

  • Aktivierung von Mikrofonen oder Webcams
  • Diebstahl von Anmeldedaten
  • Unerlaubte Autorisierung von Geldtransfers
  • Preisgabe des Standorts
  • Aufforderung zum Download von Malware

Arten von Clickjacking-Angriffen und Beispiele

Unabhängig davon, ob sie sich auf Overlay-Inhalte stützen, können Clickjacking-Angriffe in zwei Hauptgruppen eingeteilt werden.

Overlay-basierte Clickjacking-Angriffe

Diese Clickjacking-Angriffe sind am weitesten verbreitet und beruhen auf der Einbettung bösartiger Inhalte in unsichtbare Frames. Zu den gängigen Arten von Overlay-basierten Angriffen gehören:

Völlig transparente Overlay-Angriffe

Hierbei handelt es sich um einen typischen Overlay-Angriff, bei dem die legitime Seite/der legitime Link von einer bösartigen, vom Hacker erstellten Seite überlagert wird. Der Hacker platziert die Tool-Seite in einem unsichtbaren iFrame und legt sie dann über die sichtbaren Elemente. Der ahnungslose Benutzer klickt auf einen legitimen Link und aktiviert die Tool-Seite, leitet den Browser zur Ausführung eines bösartigen Skripts um oder besucht eine unbeabsichtigte Webseite.

Ausschnitt

Bei dieser Art von Overlay blockiert der Angreifer nur einen Teil des legitimen Inhalts, indem er ihn ausschneidet, gleichzeitig einige Schaltflächen mit bösartigen Hyperlinks blockiert, und dann Aktionen auslöst, die den Angriff einleiten.

So würde ein Angreifer beispielsweise eine neue Frage über die ursprüngliche Frage in einem Popup-Fenster legen, wobei die ursprünglichen Links „Zulassen“ und „Abbrechen“ aktiv bleiben. In solchen Fällen geht der Endbenutzer davon aus, dass er auf legitime Links für die Frage klickt.

Versteckte Überlagerung

Die am frühesten nachgewiesene Form des Clickjacking-Angriffs, die Hidden-Overlay-Methode, beinhaltet das Laden bösartiger Inhalte in einen 1×1 iFrame, so dass der Benutzer die anklickbaren Elemente nicht sehen kann. Der iFrame-Inhalt wird unter dem Mauszeiger platziert, so dass der Endbenutzer unweigerlich darauf klickt.

Cursor-Events

Die Hacker entwickeln bösartige Inhalte, verstecken sie aber vollständig hinter den legitimen Inhalten. Sie sorgen dann dafür, dass Klick-Events auf die bösartige Inhalte zeigen, indem sie die CSS-Eigenschaft pointer-events der obersten Ebene auf none setzen. Das bedeutet, dass alle Klickereignisse nur für die bösartigen Elemente registriert werden.

Nicht-Overlay-basierte Clickjacking-Angriffe

Auch ohne Verwendung von Overlays können Hacker Clickjacking durchführen:

Scrolling-Angriffe

Hacker scrollen teilweise einen Teil eines Popups oder anderer Webelemente der Anzeige, so dass der Benutzer nur auf einige Steuerelemente zugreifen kann. Dies kann bedeuten, dass der Angreifer ein Warndialogfeld vom Bildschirm wegrollt, so dass nur noch die Aktionsschaltflächen zugänglich sind, und den ahnungslosen Benutzer mit verdächtigem Text lockt.

Die Benutzer nehmen an, dass sich diese Aktionen auf die versteckte Nachricht des Angreifers beziehen und nicht auf die eigentliche Warnung im Dialogfeld.

Ziehen und Ablegen

Bei dieser Art des Clickjacking-Angriffs verleiten die Hacker den Benutzer dazu, einen Ziehvorgang anstelle eines Klicks auszuführen. Dabei wird zum Beispiel der rechte/linke Rand eines vertrauenswürdigen Fensters mit einer Bildlaufleiste überlagert.

Wenn der Benutzer versucht, mit der Leiste zu scrollen, löst er einen Ziehvorgang aus, der vertrauliche Informationen aus dem vertrauenswürdigen Fenster auf eine bösartige, für den Hacker zugängliche Seite überträgt oder dort ablegt.

Schneller Austausch von Inhalten

In diesem Fall verdeckt der Angreifer den Inhalt des Opfers bis genau zu dem Moment, in dem der Benutzer zu klicken beginnt. Der Hacker entfernt dann schnell den verdeckten Inhalt durch einen bösartigen Link, der den Benutzer zum Klicken auffordert, in dem Glauben, er führe die legitime Aktion aus.

Beispiele für Clickjacking-Angriffe

Im Laufe der Zeit hat sich der Clickjacking-Angriff zu mehreren anwendungsspezifischen Hacks entwickelt. Einige Beispiele sind:

Likejacking

Eine auf Social-Media-Plattformen beliebte Form des UI-Redressing verleitet Nutzer dazu, Beiträge und Werbeaktionen zu „liken“, die sie nie beabsichtigt haben. Die Facebook-Seite bzw. der Facebook-Post des Hackers ist in einen iFrame eingebettet, so dass die Nutzer nicht merken, dass sie auf eine unsichtbare „Gefällt mir“-Schaltfläche klicken.

Cursorjacking

Bei dieser Form des Angriffs verändern die Hacker die Position des Cursors, so dass er sich nicht dort befindet, wo das Opfer ihn wahrnimmt. Infolgedessen denkt das Opfer, dass es mit einem gefälschten Cursor auf einen beabsichtigten Link klickt, während der tatsächliche Cursor, der auf ein anderes Element zeigt, auf einen gefälschten Link klickt.

Cookiejacking

Hacker nutzen verfügbare UI-Redressing-Techniken, um die Cookies eines Opfers zu stehlen. Sie können dann Informationen aus dem Cookie auslesen und diese verwenden, um die Identität des Benutzers zu stehlen, indem sie dessen Sitzung ausspionieren. Der Drag-and-Drop-Clickjacking-Angriff erzielt typischerweise Cookiejacking, bei dem die Cookie-Daten offengelegt werden, wenn Benutzer glauben, dass sie Inhalte in ein Seitenelement ziehen.

Filejacking

Dieser Angriff stützt sich auf die Fähigkeit moderner Webbrowser, durch lokale Dateisysteme auf dem Computer des Opfers zu navigieren. So wird beispielsweise ein Datei-Explorer-Fenster angezeigt, wenn ein Benutzer versucht, ein Foto auf soziale Medien hochzuladen. Bei einem Filejacking-Angriff wird über die Schaltfläche „Zum Hinzufügen von Dateien klicken“ ein aktiver Dateiserver eingerichtet, über den Angreifer auf ein ganzes Dateisystem zugreifen können.

Wie kann man Clickjacking-Angriffe verhindern?

Da Angreifer die anvisierte Webseite mit bösartigen iFrames einrahmen, drehen sich die meisten Techniken zur Eindämmung von Clickjacking-Angriffen um die Einschränkung des Framing. Einige praktische Möglichkeiten zum Schutz vor Clickjacking-Angriffen sind:

Framebusting oder Frame-Breaking

Framebusting ist eine clientseitige Entschärfungstechnik, bei der Code verwendet wird, um zu verhindern, dass eine Webseite innerhalb eines iframe geladen wird. Um dies zu erreichen, kommentieren Entwickler den Code mit einem Frame-Breaking-Skript, das aus einer bedingten Anweisung und einer Gegenaktion besteht, die das Overlay beseitigt. Ein Beispiel für ein einfaches Frame-Busting-Skript sieht etwa so aus:

i f ( top . l o c a t i o n != l o c a t i o n )
top . l o c a t i o n = s e l f . l o c a t i o n ;

Framebusting kann Webseiten schützen, die in allen wichtigen und älteren Browsern geladen werden, da die Änderung am HTML-Code und nicht an den HTTP-Headern vorgenommen wird.

X-Frame-Options

X-Frame-Options ist ein HTTP-Antwort-Header, der bestimmt, ob ein Browser eine Seite innerhalb eines Iframe darstellen kann. Er erweist sich als wirksamer Schutz gegen Clickjacking-Angriffe, da Entwickler damit sicherstellen, dass Webinhalte nicht in Frames anderer Websites eingebettet werden. Zu diesem Zweck setzen die Entwickler den X-Frame-Options-Header für alle Header-Antworten, die HTML-Inhalte enthalten. 

Dabei werden drei mögliche Wertetypen verwendet:

  • DENY – verhindert das Framing von Inhalten durch alle Websites
  • SAMEORIGIN – erlaubt nur der aktuellen Website das Framing von Inhalten
  • ALLOW-FROM – erlaubt das Framing von Inhalten von der angegebenen URL

Content Security Policy (CSP) Richtlinie Frame-Ancestors

Das frame-ancestors-Attribut kann in einem CSP-HTTP-Response-Header verwendet werden, um zu bestimmen, ob die Seite in einem Frame oder einem Iframe dargestellt werden kann. Indem sie sicherstellen, dass der legitime Inhalt nicht in andere Sites eingebettet ist, können Entwickler Clickjacking-Angriffe verhindern. Es gibt drei Optionen für Frame-Entscheider:

  • Content-Security-Policy: frame-ancestors ’none‘; – verhindert, dass eine Website den Inhalt einrahmt
  • Content-Security-Policy: frame-ancestors ’self‘; – erlaubt der aktuellen Site, den Seiteninhalt zu rahmen
  • Content-Security-Policy: frame-ancestors ’self‘ *.darwin.com https://darwin.site.com; – erlaubt der aktuellen Site, jeder Seite auf darwin.com (Referenz-Website) und nur der Seite auf darwin.site.com die Verwendung von HTTPS auf dem Standard-Port.

Der Schwachstellen-Scanner der Crashtest Security Suite hilft dabei, Clickjacking-Angriffe zu verhindern, indem er die Sicherheits-Header auf Kompatibilität mit Frame-Ancestoren und X-Frame-Options überprüft. Um mehr darüber zu erfahren, wie Crashtest Security durch kontinuierliches Testen helfen kann, Clickjacking-Angriffe zu reduzieren, probieren Sie den automatisierten Schwachstellen-Scanner jetzt kostenlos aus und beginnen Sie, Schwachstellen in Ihrer Web-App oder APIs zu finden.

Erhalten Sie jetzt kostenlos einen schnellen Sicherheitsbericht für Ihre Website

Wir analysieren derzeit https://example.com
Wir scannen derzeit https://example.com
Status des Scans: In Bearbeitung
Scan target: http://example.com/laskdlaksd/12lklkasldkasada.a
Datum: 06/12/2022
Crashtest Security Suite prüft auf:
Information disclosure Known vulnerabilities SSL misconfiguration Open ports
Scanauftrag ausfüllen
Bitte geben Sie Ihre Daten ein, um die schnelle Sicherheitsüberprüfung zu erhalten.
Ein Sicherheitsspezialist analysiert gerade Ihren Scan-Bericht.
Bitte geben Sie Ihre Telefon-/Handynummer an, damit wir Ihre Identität überprüfen können:
Vielen Dank.
Wir haben Ihren Antrag erhalten.
Sobald Ihr Sicherheitsaudit fertig ist, werden wir Sie benachrichtigen.