Eine (nicht mehr ganz so) neue Angriffsmethode auf die Daten argloser Internetnutzer hinterlässt zunehmend Spuren in der Fachpresse: das Clickjacking.
Beim Clickjacking werden durch manipulierte Codeteile in Webseiten deren Nutzer dazu gebracht, durch Mausklicks Aktionen vorzunehmen, die tatsächlich zu ganz anderen Auswirkungen führen können, als es erwartet und angezeigt wurde.
Ein vereinfachtes Beispiel: Ein Nutzer klickt auf einen „Gefällt mir“-Button auf irgendeiner Webseite. Die erwartete Funktion besteht darin, dass nun die Webseite im Nachrichtenfluss der Facebook-Freunde dieses Nutzers erscheint. Tatsächlich hat er aber in einem (optisch unsichtbar gemachten) Menü einen Link mit der Funktion „Webcam meines Rechners für den Zugriff von außen freischalten“, „Inhalt meines Mailadressbuchs an Adresssammelserver X schicken“ oder gar „Schadsoftware X im Hintergrund runterladen und installieren“ angeklickt.
Alles so vorbereitet und automatisiert dass es der Nutzer nur noch abnicken, äh -klicken muss. Da nur wenige Nutzer dazu zu bewegen sind, das freiwillig zu tun, muss es ihnen unbemerkt untergeschoben werden. Dabei hilft das Clickjacking. Technisch ist es bereits seit längerem kein Problem mehr, Webseiten mit für den Leser unsichtbaren Komponenten „anzureichern“, die im Hintergrund Aktivitäten entfalten. Dazu zählen z.B. Zählpixel auf Nachrichtenseiten, mit deren Hilfe Verwertergesellschaften abschätzen können, wie hoch der Anteil des einzelnen Urhebers an einem zu verteilenden Tantiementopf ausfällt. Oder im Hintergrund unbemerkt aufgebaute Verbindungen zu Werbemittelservern, die abhängig von ihnen übermittelten statistischen Nutzerdaten bestimmte Werbebanner ausliefern.
Zum Teil werden diese Funktionen von aktivem Programmcode, sog. „Scripts“, bewerkstelligt, die der Browser mit der Webseite herunterlädt und dann beim Rendern der Daten auf dem lokalen Rechner ausführt.
Für geplante böswillige Manipulationen und Attacken auf Nutzer werden die Webseiten entweder gezielt dafür erstellt und die Links darauf in Spam-Mails oder per Social-Media verbreitet. Oder aber es werden bekannte Webseiten, z.B. Nachrichtenportale möglichst unbemerkt gehackt und der Schadcode in sie eingebaut. Ein besonders beliebtes Ziel für Clickjacking-Angriffe sind Social-Media-Plattformen wie Facebook, Twitter oder XING, da dort die Nutzer ständig und in Größenordnungen selbst erstellte Inhalte verbreiten können, die dann in den Browsern (und auf den Rechnern) anderer Nutzer landen.
Doch wie genau wird nun der Anwender dazu gebracht, eine für ihn nachteilige Aktivität auszulösen?
Immer wieder gern genommen werden dafür iFrames (inline frames). Das sind HTML-Codeelemente mit denen sich Inhalte anderer Quellen (z.B. die bereits erwähnten Schadcodefragmente) in Webseiten einfügen lassen. Das kann dann auch ein Javascript sein, dass mit einem anklickbaren aber unsichtbaren Bedienelement unbemerkt dem Mauszeiger folgt. Der Anwender wird also, egal ob er auf Ja, Nein, den Rand oder sonst einen Bereich klickt, immer den Angriff auslösen – daher der Name „Clickjacking“.
Der Ansatzpunkt für Schutz gegen Clickjacking besteht also darin, es nur vertrauenswürdigen Webseiten zu gestatten, aktive Inhalte wie Scripts auf den eigenen Rechner zu übertragen und dort zur Ausführung zu bringen. Dabei können browserspezifisch getroffene Sicherheitseinstellungen in aktuellen Webbrowsern helfen. Oder auch PlugIns wie NoScript für Firefox, dass es dem Nutzer erlaubt jeder Website genau „auf die Finger zu sehen“ von woher sie welche Inhalte bezieht und es ihr für jeden Inhalt und jede Quelle einzeln zu erlauben oder zu verbieten. Speziell NoScript wurde erst kürzlich um Filterfunktionen für unsichtbare Inhalte wie sie mit Clickjacking-Attacken einhergehen erweitert.
Allerdings hat diese Vorgehensweise auch zwei Nachteile:
- Ein Großteil der Webseiten funktioniert ohne Scripts nicht oder zumindest nicht richtig. Man kommt also ohne Prüfungen im Einzelfall sowie überlegtem Wählen von Sicherheitseinstellungen nicht herum – je nachdem welche Seiten man regelmäßig benutzt und wie gut der Schutz sein soll.
- Man muss wissen was man tut.
Deutlich weiter reichen die Möglichkeiten für Unternehmen, um ihre Arbeitsplatzrechner vor scriptbasierten Attacken zu schützen.
Zeitlich begrenzte Sitzungen: Webapplikationen, bei denen der User ständig eingeloggt bleiben kann – wie z.B. bei Facebook – sind sehr anfällig für Clickjacking-Attacken. Deshalb sollten Anwender in regelmäßigen Abständen bzw. nach einer gewissen Zeit der Inaktivität automatisch abgemeldet werden. Oft beenden Anwender auch ihre Sitzungen nicht durch Abmelden sondern durch Schließen des Browserfensters. Die Sitzung bleibt dann im Hintergrund noch offen und kann ggf. von Dritten unbemerkt übernommen werden (z.B. durch Session Hijacking).
Anti-Spam-Maßnahmen: Clickjacking beginnt damit, dass der User zum Aufrufen gefährlicher Webseiten verleitet wird. Das geschieht häufig über Spam-Mails mit darin enthaltenen Links. Werden die Müllmails durch einen wirksamen Spamschutz gefiltert, nimmt diese Bedrohung bereits deutlich ab.
Gefilterte Webzugriffe: Web-Filter am Proxy-Server eines Unternehmens können Schadcodeverteilseiten blockieren oder User zumindest davon abhalten, gefährliche Seiten zu besuchen, die vielleicht Clickjacking-Code beinhalten. Wahlweise können sie Schadcodefragmente zu erkennen versuchen (heuristischer Filter) oder rein sperrlistenbasiert den Zugriff auf bestimmte Seiten blocken. Beides arbeitet allerdings nicht wirklich zuverlässig. Weder erkennt die Heuristik alles, noch sind die Sperrlisten stets aktuell und vollständig.
Webapplikationen vor Clickjacking-Scripts schützen: Web Application Firewalls können den gesamten Inhalt einer Website nach verdächtigem Code durchforsten und machen es Angreifern so sehr schwer, seinen Schadcode auf der Webseite einzuschleusen. Die Schutzmaßnahme der Wahl für Seitenbetreiber, die um ihren Ruf fürchten, wenn ihnen Hacker Schadcode unterschieben, der dann an die Kunden des Unternehmens verteilt wird.
Webanwendungs-Formulare schützen: In Webseiten mit Foren, Kommentarfunktionen und anderen Möglichkeiten für Nutzereingaben können Web Application Firewalls dafür sorgen, dass diese Eingaben nicht ungeprüft und ungefiltert in nachgelagerten Systemen verarbeitet und weiterverbreitet werden.
Erneut geht es also um ein Hase-und-Igel-Spiel zwischen Angriff und Abwehr.