Skip to content

Werbung in eigener Sache: E-Book "HTML5 Security" veröffentlicht

Statt eines Standpunkt gibt es diesmal Werbung in eigener Sache. Vielleicht haben Sie den Hinweis in der rechten Seitenleiste ja schon gesehen: Ich habe ein neues Buch geschrieben. Sein Titel: "HTML5 Security". Erschienen ist es in der neuen E-Book-Reihe shortcuts von entwickler.press. Erhältlich ist es für 3,99 € in Amazons Kindle-Shop und bei den sonstigen "üblichen Verdächtigen", d.h. eigentlich überall wo es E-Books gibt.

Worum geht es?

Das folgende ist meine erste Version des Info-Texts, der dann aber noch gekürzt werden musste. Sie haben es ja vielleicht schon gemerkt: Ich kann alles, sogar Hochdeutsch. Nur zum Schreiben kurzer Text fehlt mir meist die Zeit.

"HTML5 ist nicht nur die neueste Version von HTML, sondern umfasst auch CSS und eine Vielzahl von JavaScript-APIs. Damit lassen sich sehr mächtige Webclients entwickeln, aber auch die Cyberkriminellen profitieren natürlich von den neuen Möglichkeiten. Und genau darum geht es in diesem shortcut: Welche neuen Angriffe sind möglich, und wie können sie verhindert werden?
Egal ob Cross Origin Requests oder WebSockets, ob Session oder Local Storage oder WebSQL-Datenbank, alle neuen Funktionen erlauben auch neue Angriffe auf und über sie. Wenn Sie diese Angriffe bei der Entwicklung nicht berücksichtigen, wird früher oder später ein Angreifer die entstandenen Schwachstellen finden und ausnutzen.
Aber auch, wenn Sie in ihrer Webanwendung HTML5 nicht einsetzen, müssen Sie aufpassen: Wenn der Browser HTML5 unterstützt (und welcher Browser tut das nicht?), kann ein Angreifer die neuen Möglichkeiten nutzen. Gerade diese Kombination ist u.U. besonders gefährlich, z.B. können manche XSS-Filter Angriffe über die ihnen unbekannten neuen Tags und Attribute nicht erkennen.
Und wussten Sie schon, dass die bisher zum Schutz vor Clickjacking eingesetzten Framebuster in HTML5 vom sandbox-Attribut für iframes ausgehebelt wird und damit wirkungslos ist?"

Einige weiterführende Informationen, insbesondere alle Links zum verwendetem Material sowie ein Archiv mit einigen Demos, habe ich auf meiner Unternehmens-Website zusammengefasst.

Hier möchte ich Ihnen einen kleinen Überblick über den Inhalt des Buchs geben, gegliedert nach dem Inhaltsverzeichnis (das dem Buch als E-Book fehlt).

Kapitel 1: XSS, JavaScript & Co.

Im ersten Kapitel dreht sich alles um Cross-Site Scripting, JavaScript und Ähnliches.

Das DOM-basierte Cross-Site Scripting gewinnt immer mehr an Bedeutung, und mit "Resident XSS" bekommt HTML5 seine eigene XSS-Variante. Weitgehend unabhängig von der Art des XSS erlauben die neuen Tags und Attribute in HTML5 neue Angriffe. Das SVG nicht nur ein Grafikformat, sondern auch ein Einfallstor für XSS ist, ist eigentlich seit langem bekannt. Da HTML5 den Einsatz von SVG aber forciert, lohnt es sich, darauf noch einmal hin zu weisen.

In HTML5 können sich alle Formularelemente wie Buttons, Eingabefelder etc. selbstständig mit einem Formular auf der Seite verknüpfen. Ein nützliches Feature, sowohl für Entwickler als auch für Angreifer.

Und mit HTML5 gewinnt auch das schon seit längerem bekannte, aber weitgehend ignorierte JavaScript-Hijacking neues Gewicht. Kurz formuliert, heißt es dabei "Der Letzte gewinnt" - die letzte Definition einer Funktion wird wirksam. Wenn also ein Angreifer nach Ihren Schutzfunktionen gleichnamige wirkungslose Funktionen definiert, ist es mit dem Schutz vorbei.

Aber es gibt auch zumindest eine gute Nachricht: Das sandbox-Attribut für iframes kann beim Einbinden nicht vertrauenswürdiger Inhalte XSS-Angriffe zumindest erschweren. Leider gilt hier wie üblich: Keine Wirkung ohne Nebenwirkung. In diesem Fall verhindert das sandbox-Attribut auch die Ausführung der zum Schutz vor Clickjacking-Angriffen eingesetzten Framebuster, so dass als einzige bekannte Schutzmaßnahme gegen Clickjacking-Angriffe der "X-FRAME-OPTIONS"-HTTP-Header bleibt.

Kapitel 2: Kommunikation in HTML5

Im zweiten Kapitel dreht sich alles um die neuen Kommunikationsmöglichkeiten in HTML5: Cross Origin Requests, postMessage() und Web Sockets. Und auch die Web Notifications haben einen kurzen Auftritt.

Beim Einsatz von Cross Origin Requests gibt es einige Feinheiten zu beachten, außerdem lassen sie sich auch von Angreifern missbrauchen. U.a., um einen Portscanner zu realisieren, was auch mit Web Sockets möglich ist.

postMessage() lässt sich recht einfach sicher einsetzen, und auch bei den Web Notifications gibt es zumindest bisher nur einen möglichen Missbrauch: Sie könnten die "Ausgabe" eines Fake-Virenscanners glaubwürdiger machen.

Bei den Web Sockets gibt es, außer der schon erwähnten Möglichkeit des Missbrauchs, nur zwei Punkte, auf die Sie achten müssen: Prüfen Sie, mit wem sie kommunizieren (die Same-Origin Policy gilt nicht!) und sorgen Sie ggf. dafür, dass die Daten verschlüsselt übertragen werden.

Kapitel 3: Lokale Speichermöglichkeiten

Im dritten Kapitel geht es um die mit HTML5 eingeführten Möglichkeiten zum Speichern größerer Datenmengen auf dem Client: Angefangen vom nur für die Sitzungsdauer verfügbaren Session Storage über den dauerhaften Local Storage bis zur SQL-Datenbank auf dem Client. Alle drei bringen neue Nutzungs-, aber auch neue Angriffsmöglichkeiten mit sich. Und dann gibt es da noch den Application Cache, der ebenfalls zu Angriffen einlädt.

Kapitel 4: Clickjacking

Im vierten Kapitel dreht sich alles um Clickjacking. Der bisher oft verwendete Schutz durch einen Framebuster ist mit dem sandbox-Attribut für iframes unwirksam, so dass wie schon oben erwähnt nur noch der "X-FRAME-OPTIONS"-HTTP-Header Schutz bietet.

Clickjacking-Würmer, vor allem in Form der Likejacking-Variante, nehmen an Bedeutung zu. Im Sinne eines "Wehret den Anfängen" sollte man sich also über die Funktion dieser unschönen digitalen Tierchen im Klaren sein, damit man nicht unfreiwillig neue Varianten herausfordert.

Und dann gibt es da noch die auch schon hier im Blog thematisierte Verknüpfung von Clickjacking und HTML5, die neue Angriffe möglich macht. Deren praktische Bedeutung ja mit dem Cookiejacking eindrucksvoll demonstriert wurde.

Die Zielgruppe

Bei Büchern stellt sich immer die Frage nach der Zielgruppe. Also: Für wen ist das Buch gedacht? Natürlich für jeden, der sich mit der Sicherheit von HTML5 auseinander setzen muss oder will. Nicht geeignet ist es (hoffentlich) zum Entwickeln von Angriffen. Ich möchte ja nicht dem Beispiel des ersten Batchfile-Virus folgen.

Carsten Eilers

Trackbacks

Keine Trackbacks