.init

Web 2.0 Security
Abenteuer Internet
Steffen Ullrich, GeNUA mbH
Deutscher Perl-Workshop 2012, Erlangen

about:me

about:presentation

Web 2.0

Was ist Web 2.0

Was ist Web 2.0

grundlegende Architektur

Überblicksbild - grob

Überblicksbild - fein

grundlegende Probleme

.next

Ziele des Angreifers

Ziele & Mittel des Angreifers

Ziele

Wege

Formen des Session-Hijacking

SQL-Injection

SQL-Injection

Intro

Beispiel

Bild SQL Injection

Analyse

SQL Escaping

SQL Escaping #2

SQL Parameter-Binding

XSS

XSS

Intro

Möglichkeiten

zentraler Vektor

Arten

Bild XSS Komponenten

Reflected XSS

Bild Reflected XSS

Analyse

Stored XSS (server-side)

Bild Server-Side Stored XSS

DOM XSS (lokal)

Beispiel

Bild lokales DOM XSS

Analyse

CSRF

CSRF

Intro

Beispiel

Bild CSRF Session-Riding

Analyse

Komplexeres Beispiel

Komplexeres Beispiel

Hijack via DNS + XSS

Bild DNS+XSS Combo

Cookie-Policy

Analyse

Variation

Komponenten

.next

misplaced Trust

Misplaced Trust

3rd Party Skript

Bild Trust 3rd Party Script

Analyse

Misplaced Trust in Middleware

Misplaced Trust in Server-Local Data

Bild local Scripts

Analyse

Same-Origin-Policy

Frame-Policy

Authorization Diebstahl

Authorization Diebstahl

Intro

Erraten des Passworts

Auslesen/Setzen in hijacked Session

Auslesen der Daten via Passwortmanager

Abgreifen der Daten als Man-In-The-Middle

Kompromittierung Server

Authorization Bypass

Authorization Bypass

Intro

Authorization-Seite umgehen

Bypass via LDAP Injection

Bypass via SQL Injection

Server Permission Bypass

Server Permission Bypass

Intro

Bild Permission Bypass

Bypass via Path Traversal

Bypass via Alternate Data-Streams

Network Segmentation Bypass

Network Segmentation Bypass

Intro

DNS Rebinding

Umsetzung

Bild DNS Rebinding

Analyse

UI-Redressing

UI Redressing

Intro

Clickjacking

Bild Clickjacking

Analyse

BREAK!

PAUSE!

.next

Zusammenfassung Schutzmechanismen

"Best Effort" vs. "Best Security"

Schutz gegen Hijacking

Schutz der Session

Session-Diebstahl

Riding, Fixation, Prediction

klare Trustbereiche

Validierung

Validierung

warum

Inputvalidierung Server

Herkunft und Ziel von Request prüfen

Inputvalidierung Formulare

Inputvalidierung Fileuploads

Forwardvalidierung Server

Outputvalidierung Server

Validierung des Ziels im Browser

Herkunft im Browser überprüfen

Eingaben im Browser prüfen

Normalisierung

Normalisierung

was ist das

Normalisierung HTML

Normalisierung XHTML

Normalisierung Bilder, Audio, Video

Normalisierung PDF

Normalisieren Word etc

Normalisieren anderer Sachen

Escaping und Encoding

Escaping und Encoding

was ist das

kontextspezifisches Escaping

HTML Kontext - Text

HTML Kontext - Attribute

HTML Kontext - Bereiche

XHTML Kontext

CSS Kontext

Javascript Kontext

URL Kontext

Content-type

Content-type

was ist das

Content-type - HTTP Response

Content-type - HTTP Request

Dual Content Types

Workarounds

Charsets

Charsets

was ist das

Charset Unicode

Charsets - HTTP Response

Charsets - HTTP Request

Dual Charset

Entscheidungen im Server

weitere Attacken

Weitere Attacken

offene Daten

OS Command Injection

RFI/LFI - Remote/Local File Inclusion

Session Fixation

Bild Session Fixation

Session-Id in URL

Cookie setzen aus Subdomain

Skriptbeeinflussung via HTML Injection

non-Cookie Session-Id Leak via XSS

OSRF - Origin Site Request Forgery

Session-Id Leak via Referer

XPATH Injection

HPP - http Parameter Pollution

open Redirector

open URL Proxy

window.postMessage

HTTP Request Smuggling I

Analyse

HTTP Response Splitting

Server DOS

korrupte/fehlfunktionierende Daten

Vergangenheit, Gegenwart, Zukunft

Rückblick, Aussichten

.next

Bild Architektur

Clientseite

Clientseite

Vergangenheit Clientseite

aktuelle Probleme

Entwicklung, Ausblick

HTML5

HTML5 CSP

HTML5 CORS

Serverseite

Serverseite

Vergangenheit Serverseite

aktuelle Probleme

Entwicklungen, Ausblick

Entwicklungen, Ausblick II

Resourcen

Literatur...

Bücher, Webseiten

Blogs

Fragen