Coders Conquer Security: Share & Learn Series - Clickjacking

Veröffentlicht Feb 14, 2019
von Jaap Karan Singh
FALLSTUDIE

Coders Conquer Security: Share & Learn Series - Clickjacking

Veröffentlicht Feb 14, 2019
von Jaap Karan Singh
Ressource anzeigen
Ressource anzeigen

Susie öffnet ihre E-Mail, um einem lästigen Bericht zu entgehen, der in zwei Tagen fällig ist. Sie sieht einen Link für ein kostenloses iPad in ihrem Posteingang erscheinen. Nachdem sie darauf geklickt hat, gelangt sie auf eine Website mit einer großen Bannerseite, auf der steht: "Klicken Sie hier für Ihr kostenloses iPad!". Sie klickt auf die Schaltfläche, aber nichts scheint wirklich zu passieren. Das Problem ist, dass doch etwas passiert ist.

Nachdem sie zurück zu ihrem Posteingang navigiert hat, stellt sie fest, dass alle ihre E-Mails gelöscht wurden. Sie hat bei keiner einzigen auf "Löschen" geklickt. Was ist hier los?

Die E-Mail-Website wurde mit einem Clickjacking versehen. Clickjacking verleitet Benutzer dazu, Aktionen auszuführen, die sie nicht beabsichtigt haben, und kann zu ernsthaften Problemen führen.

Lassen Sie uns nun einen Blick darauf werfen, wie Clickjacking funktioniert, warum es gefährlich ist und was Entwickler wie Sie tun können, um es zu verhindern:

Clickjacking verstehen

Clickjacking, auch "UI-Redressing-Attacke" genannt, tritt auf, wenn ein Angreifer mehrere transparente Ebenen auf einer Webseite verwendet, um den Benutzer dazu zu verleiten, auf eine Schaltfläche oder einen Link zu klicken, den er gar nicht anklicken will.

Haben Sie jemals einen Käfer in Ihrem Auto stecken gehabt? Sie fliegen gegen das Fenster und versuchen wütend, nach draußen zu fliegen. Die Absicht des Käfers ist es, zu dem zu fliegen, was nach Bäumen und freier Luft aussieht, ohne auf das Glas zu achten, das seinen Weg blockiert.

Clickjacking ist vom Design her ähnlich, nur dass der Benutzer der Käfer ist und Ihre Website das Glas, das den Weg versperrt. Der Benutzer sieht etwas, das er haben möchte, z. B. ein kostenloses iPhone. Der Angreifer platziert Ihre Website innerhalb eines transparenten Rahmens über der Anzeige für das kostenlose iPhone. Wenn der Benutzer auf die Schaltfläche klickt, um den vermeintlich "kostenlosen" Preis zu ergattern, klickt er in Wirklichkeit auf eine Schaltfläche auf Ihrer Website und führt eine Aktion aus, die er nicht beabsichtigt hat.

Warum Clickjacking gefährlich ist

Was kann ein Angreifer mit Clickjacking erreichen? Das hängt weitgehend von der Funktionalität der betreffenden Website ab.

Der Angreifer könnte einen Benutzer dazu bringen, die Website des Angreifers in den sozialen Medien zu mögen oder zu teilen. Dies ist leicht zu bewerkstelligen, da viele Menschen aus Bequemlichkeit bei ihren Social-Media-Konten angemeldet bleiben.

Wenn Ihre Website in einem Frame platziert werden kann, kann ein sensibler Vorgang durch Klicken auf eine Schaltfläche abgeschlossen werden, und dies kann als Angriffsvektor dienen. Beispielsweise klickt ein Benutzer, um ein kostenloses iPad zu erhalten, ändert aber stattdessen die Kontoeinstellungen auf Ihrer Website, um das Konto weniger sicher zu machen. Ein Angriff dieser Art erfolgte auf die Einstellungsseite für das Adobe Flash-Plugin. Die Einstellungen konnten in einem transparenten Rahmen platziert werden, wodurch der Benutzer dazu verleitet wurde, einer Flash-Animation Zugriff auf Mikrofon und Kamera zu gewähren. Angreifer könnten dann das Opfer aufzeichnen; ein schwerwiegender Eingriff in die Privatsphäre.

Ein E-Mail-Client könnte in eine Website eingebettet werden und den Benutzer dazu veranlassen, alle E-Mails in seinem Postfach zu löschen oder E-Mails an eine vom Angreifer kontrollierte E-Mail-Adresse weiterzuleiten.

Die Quintessenz ist: Der Benutzer kann nicht sehen, was er anklickt, also kann er überzeugt werden, auf alles zu klicken. Ob es sich um einen Social Share oder das Herunterladen von Malware handelt, die Möglichkeiten sind vielfältig.

Wie man Clickjacking besiegt

Clickjacking kann verhindert werden. Die empfohlene Methode zur Verhinderung von Clickjacking ist die Definition einer Content Security Policy (CSP) für Ihre Website. Mithilfe des HTTP-Antwort-Headers "frame ancestors" können Sie steuern, wie Ihre Website umrahmt werden kann.

  • "frame-ancestors none"- Keine andere Website darf Ihre einrahmen. Dies ist die empfohlene Einstellung.
  • "frame-ancestors self"- Seiten in Ihrer Site können nur von anderen Seiten innerhalb Ihrer Site eingerahmt werden.
  • "frame-ancestors self <uri list=""> - Your site can be framed by the sites in the URI lists and no others.</uri>

CSP frame-ancestors wird derzeit nicht von allen gängigen Browsern unterstützt. Verwenden Sie den HTTP-Header "X-Frame-Options" als Fallback-Option für solche Browser.

  • DENY - Keiner kann Ihre Seite rahmen. Dies ist die empfohlene Einstellung
  • SAMEORIGIN - Das Gleiche wie "self" für CSP. Sie können Ihren eigenen Inhalt rahmen, aber niemand sonst kann das.
  • ALLOW-FROM <uri> - Allow the specified URI to frame your content.</uri>

Lassen Sie sich nicht klickjacken

Clickjacking ist ein cleverer, irreführender Angriff, der zu Reputationsschäden und Umsatzverlusten führen kann, wenn Ihr Produkt von Angreifern manipuliert werden kann. Sehen Sie sich unsere kostenlosen Lernressourcen an, um mehr über Clickjacking zu erfahren.

Verwenden Sie eine Inhaltssicherheitsrichtlinie und einen "X-Frame-Options"-Header, um zu verhindern, dass andere Ihre Website auf bösartige Weise nutzen. Erlauben Sie Angreifern nicht, Ihre Benutzer zu manipulieren. Lassen Sie sich nicht "clickjacken".

Ressource anzeigen
Ressource anzeigen

Autor

Jaap Karan Singh

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Coders Conquer Security: Share & Learn Series - Clickjacking

Veröffentlicht Feb 14, 2019
Von Jaap Karan Singh

Susie öffnet ihre E-Mail, um einem lästigen Bericht zu entgehen, der in zwei Tagen fällig ist. Sie sieht einen Link für ein kostenloses iPad in ihrem Posteingang erscheinen. Nachdem sie darauf geklickt hat, gelangt sie auf eine Website mit einer großen Bannerseite, auf der steht: "Klicken Sie hier für Ihr kostenloses iPad!". Sie klickt auf die Schaltfläche, aber nichts scheint wirklich zu passieren. Das Problem ist, dass doch etwas passiert ist.

Nachdem sie zurück zu ihrem Posteingang navigiert hat, stellt sie fest, dass alle ihre E-Mails gelöscht wurden. Sie hat bei keiner einzigen auf "Löschen" geklickt. Was ist hier los?

Die E-Mail-Website wurde mit einem Clickjacking versehen. Clickjacking verleitet Benutzer dazu, Aktionen auszuführen, die sie nicht beabsichtigt haben, und kann zu ernsthaften Problemen führen.

Lassen Sie uns nun einen Blick darauf werfen, wie Clickjacking funktioniert, warum es gefährlich ist und was Entwickler wie Sie tun können, um es zu verhindern:

Clickjacking verstehen

Clickjacking, auch "UI-Redressing-Attacke" genannt, tritt auf, wenn ein Angreifer mehrere transparente Ebenen auf einer Webseite verwendet, um den Benutzer dazu zu verleiten, auf eine Schaltfläche oder einen Link zu klicken, den er gar nicht anklicken will.

Haben Sie jemals einen Käfer in Ihrem Auto stecken gehabt? Sie fliegen gegen das Fenster und versuchen wütend, nach draußen zu fliegen. Die Absicht des Käfers ist es, zu dem zu fliegen, was nach Bäumen und freier Luft aussieht, ohne auf das Glas zu achten, das seinen Weg blockiert.

Clickjacking ist vom Design her ähnlich, nur dass der Benutzer der Käfer ist und Ihre Website das Glas, das den Weg versperrt. Der Benutzer sieht etwas, das er haben möchte, z. B. ein kostenloses iPhone. Der Angreifer platziert Ihre Website innerhalb eines transparenten Rahmens über der Anzeige für das kostenlose iPhone. Wenn der Benutzer auf die Schaltfläche klickt, um den vermeintlich "kostenlosen" Preis zu ergattern, klickt er in Wirklichkeit auf eine Schaltfläche auf Ihrer Website und führt eine Aktion aus, die er nicht beabsichtigt hat.

Warum Clickjacking gefährlich ist

Was kann ein Angreifer mit Clickjacking erreichen? Das hängt weitgehend von der Funktionalität der betreffenden Website ab.

Der Angreifer könnte einen Benutzer dazu bringen, die Website des Angreifers in den sozialen Medien zu mögen oder zu teilen. Dies ist leicht zu bewerkstelligen, da viele Menschen aus Bequemlichkeit bei ihren Social-Media-Konten angemeldet bleiben.

Wenn Ihre Website in einem Frame platziert werden kann, kann ein sensibler Vorgang durch Klicken auf eine Schaltfläche abgeschlossen werden, und dies kann als Angriffsvektor dienen. Beispielsweise klickt ein Benutzer, um ein kostenloses iPad zu erhalten, ändert aber stattdessen die Kontoeinstellungen auf Ihrer Website, um das Konto weniger sicher zu machen. Ein Angriff dieser Art erfolgte auf die Einstellungsseite für das Adobe Flash-Plugin. Die Einstellungen konnten in einem transparenten Rahmen platziert werden, wodurch der Benutzer dazu verleitet wurde, einer Flash-Animation Zugriff auf Mikrofon und Kamera zu gewähren. Angreifer könnten dann das Opfer aufzeichnen; ein schwerwiegender Eingriff in die Privatsphäre.

Ein E-Mail-Client könnte in eine Website eingebettet werden und den Benutzer dazu veranlassen, alle E-Mails in seinem Postfach zu löschen oder E-Mails an eine vom Angreifer kontrollierte E-Mail-Adresse weiterzuleiten.

Die Quintessenz ist: Der Benutzer kann nicht sehen, was er anklickt, also kann er überzeugt werden, auf alles zu klicken. Ob es sich um einen Social Share oder das Herunterladen von Malware handelt, die Möglichkeiten sind vielfältig.

Wie man Clickjacking besiegt

Clickjacking kann verhindert werden. Die empfohlene Methode zur Verhinderung von Clickjacking ist die Definition einer Content Security Policy (CSP) für Ihre Website. Mithilfe des HTTP-Antwort-Headers "frame ancestors" können Sie steuern, wie Ihre Website umrahmt werden kann.

  • "frame-ancestors none"- Keine andere Website darf Ihre einrahmen. Dies ist die empfohlene Einstellung.
  • "frame-ancestors self"- Seiten in Ihrer Site können nur von anderen Seiten innerhalb Ihrer Site eingerahmt werden.
  • "frame-ancestors self <uri list=""> - Your site can be framed by the sites in the URI lists and no others.</uri>

CSP frame-ancestors wird derzeit nicht von allen gängigen Browsern unterstützt. Verwenden Sie den HTTP-Header "X-Frame-Options" als Fallback-Option für solche Browser.

  • DENY - Keiner kann Ihre Seite rahmen. Dies ist die empfohlene Einstellung
  • SAMEORIGIN - Das Gleiche wie "self" für CSP. Sie können Ihren eigenen Inhalt rahmen, aber niemand sonst kann das.
  • ALLOW-FROM <uri> - Allow the specified URI to frame your content.</uri>

Lassen Sie sich nicht klickjacken

Clickjacking ist ein cleverer, irreführender Angriff, der zu Reputationsschäden und Umsatzverlusten führen kann, wenn Ihr Produkt von Angreifern manipuliert werden kann. Sehen Sie sich unsere kostenlosen Lernressourcen an, um mehr über Clickjacking zu erfahren.

Verwenden Sie eine Inhaltssicherheitsrichtlinie und einen "X-Frame-Options"-Header, um zu verhindern, dass andere Ihre Website auf bösartige Weise nutzen. Erlauben Sie Angreifern nicht, Ihre Benutzer zu manipulieren. Lassen Sie sich nicht "clickjacken".

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.