HTML5 Security
Von Carsten Eilers
()
Über dieses E-Book
Übrigens: Auch wenn Sie in Ihrer Webanwendung kein HTML5 einsetzen, müssen Sie aufpassen. Und wussten Sie schon, dass die bisher zum Schutz vor Clickjacking eingesetzten Framebuster in HTML5 vom sandbox-Attribut für iframes ausgehebelt werden und dann wirkungslos sind?
Mehr von Carsten Eilers lesen
shortcuts iOS Security: Sichere Apps für iPhone und iPad Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnlich wie HTML5 Security
Titel in dieser Serie (100)
Zend Framework 2: Für Einsteiger und Umsteiger Bewertung: 0 von 5 Sternen0 BewertungenJavaScript für Eclipse-Entwickler: Orion, RAP und GWT Bewertung: 0 von 5 Sternen0 BewertungenIT Wissensmanagement: Theorie und Praxis Bewertung: 0 von 5 Sternen0 BewertungenHTML5 Security Bewertung: 0 von 5 Sternen0 BewertungenEinstieg in Google Go Bewertung: 0 von 5 Sternen0 BewertungenJavaScript auf dem Server Bewertung: 0 von 5 Sternen0 BewertungenNFC: Near Field Communication für Android-Entwickler Bewertung: 5 von 5 Sternen5/5HTML5 für Mobile Web Bewertung: 0 von 5 Sternen0 BewertungenSkalierbare Softwaresysteme: Design, Betrieb und Optimierungspotenziale Bewertung: 0 von 5 Sternen0 BewertungenUser Experience Testing 3.0: Status Quo, Entwicklung und Trends Bewertung: 0 von 5 Sternen0 BewertungenAlgorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenServiceorientierte Architektur: Anforderungen, Konzeption und Praxiserfahrungen Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenGL, OpenAL und KI Bewertung: 0 von 5 Sternen0 BewertungenJava EE Security Bewertung: 0 von 5 Sternen0 BewertungenUX Design für Tablet-Websites: Ein Überblick Bewertung: 0 von 5 Sternen0 BewertungenErfolgreiche Spieleentwicklung: OpenCL Bewertung: 0 von 5 Sternen0 BewertungenGeolocation mit PHP: Foursquare-API, Google Places & Qype Bewertung: 0 von 5 Sternen0 BewertungenADF - Mobile Apps entwickeln und Swing ablösen: Mobile Apps entwickeln und Swing ablösen Bewertung: 0 von 5 Sternen0 BewertungenÜberzeugende Präsentationen: Konzeption, Technik und Design Bewertung: 0 von 5 Sternen0 BewertungenApache Tapestry: Einstieg in die komponentenorientierte Webentwicklung Bewertung: 0 von 5 Sternen0 BewertungenTFS 2012 Versionskontrolle: Grundlagen, Check-In Policies und Branch-Modelle Bewertung: 0 von 5 Sternen0 BewertungenQualitätssicherung mit JavaScript und PHP Bewertung: 0 von 5 Sternen0 BewertungenMobile Business: Was Entscheider morgen wissen müssen Bewertung: 0 von 5 Sternen0 BewertungenJava 7: Fork-Join-Framework und Phaser Bewertung: 0 von 5 Sternen0 BewertungenNutzeraspekte in Suchmaschinen: Komponenten für eine gelungene Usability-Gestaltung Bewertung: 0 von 5 Sternen0 BewertungenQualität in IT-Architekturen: Strategie und Planung Bewertung: 0 von 5 Sternen0 BewertungenAmazon Web Services für .NET Entwickler Bewertung: 0 von 5 Sternen0 BewertungenSharePoint-Entwicklung für Einsteiger Bewertung: 0 von 5 Sternen0 BewertungenNintex Workflow: Konzepte und Strategien für leistungsfähige SharePoint-Workflows Bewertung: 0 von 5 Sternen0 BewertungenJava EE 7: Ein Ausblick Bewertung: 0 von 5 Sternen0 Bewertungen
Ähnliche E-Books
Angriffsziel UI: Benutzeraktionen, Passwörter und Clickjacking Bewertung: 0 von 5 Sternen0 BewertungenCross-Plattform-Entwicklung mit HTML und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenModerne Webentwicklung: Geräteunabhängige Entwicklung -- Techniken und Trends in HTML5, CSS3 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenNext Level JavaScript: Schlagworte Bewertung: 0 von 5 Sternen0 BewertungenMobile Web-Apps mit JavaScript: Leitfaden für die professionelle Entwicklung Bewertung: 0 von 5 Sternen0 BewertungenServer-Infrastrukturen mit Microsoft Windows Server Technologien: Alle Themen für das Microsoft Seminar und die Zertifizierungsprüfung MOC 20413 Bewertung: 0 von 5 Sternen0 BewertungenProgressive Web-Apps: Offlinefähige Web-Anwendungen mit nativen Qualitäten Bewertung: 0 von 5 Sternen0 BewertungenDocker und die Containerwelt: Einstieg und Expertentipps rund um Docker-Container Bewertung: 1 von 5 Sternen1/5Java EE Security Bewertung: 0 von 5 Sternen0 BewertungenMeine erste App Bewertung: 0 von 5 Sternen0 BewertungenHacken mit Kali-Linux: Schnelleinstieg für Anfänger Bewertung: 0 von 5 Sternen0 BewertungenHTML5, JavaScript und jQuery: Der Crashkurs für Softwareentwickler Bewertung: 2 von 5 Sternen2/5Single-Page-Web-Apps: JavaScript im Einsatz: Webseiten erstellen mit AngularJS, Meteor und jQuery Mobile Bewertung: 0 von 5 Sternen0 BewertungenMicrosoft KINECT: Programmierung des Sensorsystems Bewertung: 0 von 5 Sternen0 BewertungenCSS3: Die Referenz für Webentwickler Bewertung: 0 von 5 Sternen0 BewertungenWebsecurity: Angriffe mit SSRF, CSRF und XML Bewertung: 0 von 5 Sternen0 BewertungenZukunftssichere Architektur: So bauen Sie monolithische Anwendungen zu komponentenorientierten um Bewertung: 0 von 5 Sternen0 BewertungenSECURITY AWARENESS: Leitfaden zur IT-Sicherheit für Anwender Bewertung: 0 von 5 Sternen0 BewertungenSemantic Web: schnell + kompakt Bewertung: 0 von 5 Sternen0 BewertungenSoftware entwickeln mit C#, WPF und dem MVVM-Konzept Bewertung: 0 von 5 Sternen0 BewertungenDie Serverwelt von Node.js Bewertung: 0 von 5 Sternen0 BewertungenJavaScript Security: Sicherheit im Webbrowser Bewertung: 0 von 5 Sternen0 BewertungenNichts ist sicher: Tricks und Techniken von Cyberkriminellen verstehen und sich schützen Bewertung: 5 von 5 Sternen5/5Web-Applikationen entwickeln mit NoSQL: Das Buch für Datenbank-Einsteiger und Profis! Bewertung: 0 von 5 Sternen0 BewertungenPHP quick & dirty: 12 Praxis-Workshops für schnelles Programmieren Bewertung: 0 von 5 Sternen0 BewertungenJavaScript objektorientiert: Verständlicher, flexibler und effizienter programmieren Bewertung: 0 von 5 Sternen0 BewertungenBigData mit JavaScript visualisieren: D3.js für die Darstellung großer Datenmengen einsetzen Bewertung: 0 von 5 Sternen0 BewertungenSpurlos & Verschlüsselt! Bewertung: 0 von 5 Sternen0 BewertungenHänderingend gesucht: einzigartige Texte: Ein praktischer Erfahrungsbericht, wie Autoren auch ohne Bestseller vom Schreiben gut leben können Bewertung: 0 von 5 Sternen0 Bewertungen
Programmieren für Sie
Programmieren von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5Algorithmen: Grundlagen und Implementierung Bewertung: 0 von 5 Sternen0 BewertungenLinux Grundlagen - Ein Einstieg in das Linux-Betriebssystem Bewertung: 0 von 5 Sternen0 BewertungenJavaScript kurz & gut Bewertung: 3 von 5 Sternen3/5Python kurz & gut: Für Python 3.x und 2.7 Bewertung: 3 von 5 Sternen3/5Hacken mit Python und Kali-Linux: Entwicklung eigener Hackingtools mit Python unter Kali-Linux Bewertung: 0 von 5 Sternen0 BewertungenGit kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenWeniger schlecht programmieren Bewertung: 4 von 5 Sternen4/5Raspberry Pi: Mach's einfach: Die kompakteste Gebrauchsanweisung mit 222 Anleitungen. Geeignet für Raspberry Pi 3 Modell B / B+ Bewertung: 0 von 5 Sternen0 BewertungenDas große Python3 Workbook: Mit vielen Beispielen und Übungen - Programmieren leicht gemacht! Bewertung: 4 von 5 Sternen4/5Programmieren lernen mit Python 3: Schnelleinstieg für Beginner Bewertung: 0 von 5 Sternen0 Bewertungen.NET-Praxis: Tipps und Tricks zu .NET und Visual Studio Bewertung: 0 von 5 Sternen0 BewertungenMikrocontroller in der Elektronik: Mikrocontroller programmieren und in der Praxis einsetzen Bewertung: 0 von 5 Sternen0 BewertungenLinux Befehlsreferenz: Schnelleinstieg in die Arbeit mit der Konsole, regulären Ausdrücken und Shellscripting Bewertung: 0 von 5 Sternen0 BewertungenC von Kopf bis Fuß Bewertung: 3 von 5 Sternen3/5SQL von Kopf bis Fuß Bewertung: 4 von 5 Sternen4/5New Game Plus: Perspektiven der Game Studies. Genres - Künste - Diskurse (Bild und Bit. Studien zur digitalen Medienkultur) Bewertung: 0 von 5 Sternen0 BewertungenDas Excel SOS-Handbuch: Wie sie Excel (2010-2019 & 365) schnell & einfach meistern. Die All-in-One Anleitung für ihren privaten & beruflichen Excel-Erfolg! Bewertung: 0 von 5 Sternen0 BewertungenEigene Spiele programmieren – Python lernen: Der spielerische Weg zur Programmiersprache Bewertung: 0 von 5 Sternen0 BewertungenPython | Schritt für Schritt Programmieren lernen: Der ultimative Anfänger Guide für einen einfachen & schnellen Einstieg Bewertung: 0 von 5 Sternen0 BewertungenAndroid-Programmierung kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenDie ultimative FRITZ!Box Bibel - Das Praxisbuch 2. aktualisierte Auflage - mit vielen Insider Tipps und Tricks - komplett in Farbe Bewertung: 0 von 5 Sternen0 BewertungenRaspberry Pi: Einstieg • Optimierung • Projekte Bewertung: 5 von 5 Sternen5/5Microcontroller für das IoT Bewertung: 0 von 5 Sternen0 BewertungenHTML5-Programmierung von Kopf bis Fuß: Webanwendungen mit HTML5 und JavaScript Bewertung: 0 von 5 Sternen0 BewertungenSoftwareentwicklungsprozess: Von der ersten Idee bis zur Installation Bewertung: 0 von 5 Sternen0 BewertungenProgrammieren für Einsteiger: Teil 1 Bewertung: 0 von 5 Sternen0 BewertungenPython lernen – kurz & gut Bewertung: 0 von 5 Sternen0 BewertungenPerspektiven für Informatiker 2019: Branchenüberblick, Erfahrungsberichte und Tipps zum Berufseinstieg Bewertung: 0 von 5 Sternen0 BewertungenC++: Eine kompakte Einführung Bewertung: 0 von 5 Sternen0 Bewertungen
Rezensionen für HTML5 Security
0 Bewertungen0 Rezensionen
Buchvorschau
HTML5 Security - Carsten Eilers
Carsten Eilers
HTML5 Security
ISBN: 978-3-86802-417-3
© 2012 entwickler.press
Ein Imprint der Software & Support Media GmbH
Vorwort
HTML5 gibt es als Standard noch gar nicht und wird es als Standard zumindest vorerst auch nicht geben. Stattdessen wird es als Work in Progress
ständig Änderungen daran geben. Trotzdem enthalten die Browser schon mehr oder weniger viele Features davon. Neue Tags und APIs, lokale Datenspeicher, Cross Origin Requests, WebSockets und Co. erlauben die Entwicklung interessanter Webanwendungen, lassen sich aber auch für bösartige Zwecke nutzen. In diesem Buch geht es um letzteres: Wie können Angreifer HTML5 für ihre Zwecke missbrauchen und viel wichtiger: Wie können Sie als Entwickler diese Angriffe verhindern oder zumindest erschweren?
Die Angriffsziele
Wenn man Angriffe abwehren will, ist die erste Frage immer Was will der Angreifer erreichen?
Im Fall der Clients von Webanwendungen gibt es darauf sowohl praktische als auch theoretische Antworten. Fangen wir mit den praktischen an. Zur Zeit gibt es zwei Arten von Angriffen, die weit verbreitet sind:
Im Rahmen von sog. Drive-by-Infektionen wird JavaScript-Code in die Webanwendungen und dadurch in die Clients eingeschleust, der dann sog. Exploits nachlädt, mit denen Schwachstellen im Webbrowser oder dessen Plugins ausgenutzt werden. Der Webclient dient dabei nur als Einfallstor: Nachdem ein Exploit nachgeladen wurde, nutzt der z.B. eine Pufferüberlauf-Schwachstelle im Flash Player aus, um Schadcode im System des Benutzers zu verankern. Danach hat der JavaScript-Schadcode seine Schuldigkeit getan und wird beendet.
Webwürmer nutzen den Client, um sich über ihn in der Webanwendung zu verbreiten. Früher geschah das i.A. über Cross-Site Scripting, heute kommt oft Clickjacking zum Einsatz. Egal welche Methode die Angreifer einsetzen, der Client ist nur der Weg zum Ziel: Wenn ein Benutzer eine vom Wurm bereits befallene Seite, z.B. das Social-Network-Profil eines anderen Benutzers, aufruft, dringt der Wurm über den Browser des Benutzers in dessen Profilseite ein. Früher reichte den Angreifern die bloße Verbreitung des Wurms, inzwischen wird parallel oft auch noch heimlich Werbung angeklickt, so dass die Cyberkriminellen auch finanziell vom Wurm profitieren.
Dann gibt es noch die theoretischen Angriffe:
Ein Angreifer, der den Webclient und damit den Webbrowser unter seiner Kontrolle hat, befindet sich im lokalen Netz und damit hinter der Firewall. Hier kann er nun nach weiteren interessanten Zielen suchen, wofür ihm z.B. ein mit JavaScript realisierter Portscanner zur Verfügung steht. Ob es solche Angriffe auch in der Praxis gibt, ist nicht sicher. Im Rahmen von Massenangriffen sind sie bisher nicht aufgefallen (sie wären dafür wohl auch eher ungeeignet), ob sie im Rahmen gezielter Angriffe zum Einsatz kommen, hat bisher niemand verraten. Die Opfer solcher Angriffe halten sich natürlich mit Informationen darüber, wie sie hereingelegt wurden, zurück, und die Angreifer haben erst Recht keine Veranlassung, ihre Methoden zu verraten.
Ein weiteres mögliches Angriffsziel wurde auf dem 28. Chaos Communication Congress (28C3) Ende Dezember 2011 von Artur Janc vorgestellt: Ein Angreifer, der einen Webclient unter seine Kontrolle bringt, kann darüber alle Aktionen der Webanwendung ausführen, die auch der normale Benutzer ausführen darf. Warum sollten die Angreifer also mühsam die meist gut geschützte Webanwendung auf dem Server angreifen, wenn sie doch genau so gut den oft weniger gut geschützten Webclient angreifen und darüber auf die Webanwendung zugreifen können? Auch dies sind bisher theoretische Überlegungen. O b es wirklich einmal entsprechende Angriffe in the wild
geben wird, bleibt abzuwarten.
In die gleiche Richtung zielt ein weiterer, schon länger diskutierter Angriff: Je intelligenter die Clients werden und je mehr von der Business Logic
der Webanwendung auf den Client ausgelagert wird, desto interessanter wird der für den Angreifer. Eine Manipulation des Clients hat dann direkte Auswirkungen auf den Benutzer und die Webanwendung: Der Benutzer wird zu Aktionen verleitet, die er gar nicht ausführen will, bzw. der eingeschleuste Schadcode führt selbst Aktionen in seinem Namen aus. Ein eher schlechtes Beispiel ist in diesem Zusammenhang das Onlinebanking, das über Schadcode auf dem Client-Rechner angegriffen wird. Diese sog. Man in the Browser
-Angriffe zeigen jedoch, was ein Angreifer über die Manipulation des Clients erreichen kann.
Angriffe wird es immer geben
Aber egal ob Theorie oder Praxis: Generell muss eine sichere Anwendung allen möglichen Angriffen widerstehen. Grundsätzlich gilt: Alles, was Sie einsetzen, um Ihren Benutzern zu nützen, missbrauchen die Angreifer ggf., um Ihnen und Ihren Benutzern zu schaden. Wenn Sie wissen, welche Gefahren drohen, können Sie den Angreifern dabei das Leben so schwer wie möglich machen. Und wie Sie das beim Einsatz von HTML5 erreichen, ist das Thema der folgenden Kapitel.
1 XSS, JavaScript & Co.
In diesem 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. 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.
1.1 Cross-Site Scripting
Als Cross-Site Scripting (kurz XSS) wird das Einschleusen von bösartigem JavaScript- oder HTML-Code in eine Webseite bezeichnet. Die klassischen Varianten des XSS kennen Sie sicher:
Beim reflektierten XSS wird der Schadcode an die Webanwendung gesendet und von dieser ungeprüft an den Client zurückgeschickt. Für den Angriff muss das Opfer einen präparierten Link anklicken oder ein präpariertes Formular abschicken, in dem der Schadcode enthalten ist (Abbildung 1.1).
Ein klassisches Beispiel war immer die Suchfunktion der Websites: Der gesuchte Begriff wird ungeprüft und ungefiltert auf der Ergebnisseite ausgegeben, beispielsweise nach dem Muster
Ihre Suche nach SUCHBEGRIFF ergab folgendes Ergebnis:
Bei Eingaben wie Hund, Katze, Maus ... passiert genau das, was sich der Entwickler dabei gedacht hat. „Sucht" aber jemand nach dem klassischen XSS-Beispiel
öffnet sich die Alert-Box: Der eingeschleuste JavaScript-Code wird ausgeführt.
Abbildung 1.1: Reflektiertes