Web Application Firewalls (WAF) - RUB

106
Web Application Firewalls (WAF) Steffen Tröscher [email protected] cirosec GmbH

Transcript of Web Application Firewalls (WAF) - RUB

Page 1: Web Application Firewalls (WAF) - RUB

Web ApplicationFirewalls (WAF)

Steffen Trö[email protected]

cirosec GmbH

Page 2: Web Application Firewalls (WAF) - RUB

Über mich

• Steffen Tröscher

– Seit 6 Jahren IT-Sicherheitsberater

[email protected]

• Schwerpunkte

– Sicherheitsüberprüfungen, Pen-Testing

– Coding Guidelines, Härtungsanweisungen, …

– Konzeptionelle Analysen

– Trainer der Schulungen HE-Extrem Classic & Web

Page 3: Web Application Firewalls (WAF) - RUB

cirosec GmbH

• Beratungsunternehmen in Heilbronn

• derzeit 26 Mitarbeiter

• Fokus auf innovative IT-Sicherheit:

– Penetrationstests, Audits

– Schulungen

– konzeptionelle Analyse

– ..

• Angebot an Studenten:

– Durchführung Praktikum oder Thesis

Page 4: Web Application Firewalls (WAF) - RUB

Gliederung

• Warum WAFs?

• Funktionsweise von WAFs

• Marktübersicht

• Live-Demos:

– Vorstellung exemplarischer Schwachstellen

– Konfiguration einer Web Application Firewall

Page 5: Web Application Firewalls (WAF) - RUB

Gliederung

• Warum WAFs?

• Funktionsweise von WAFs

• Marktübersicht

• Live-Demos:

– Vorstellung exemplarischer Schwachstellen

– Konfiguration einer Web Application Firewall

Page 6: Web Application Firewalls (WAF) - RUB

Schwachstellen - OWASP Top 10

A1 Injection

A2 Cross Site Scripting

A3 Broken Authentication

& Session Management

A4 Insecure Direct Object

Reference

A5 Cross Site Request

Forgery (CSRF)

A6 Security Misconfiguration

A7 Failure to Restrict URL Access

A8 Unvalidated Redirects and Forwards

A9 Insecure CryptographicStorage

A10 Insufficient Transport Layer Protection

Page 7: Web Application Firewalls (WAF) - RUB

Sicherheit auf höheren Ebenen

Bekämpfung der Ursachen

Bekämpfung der Auswirkungen

• Sichere Entwicklung

• Sichere Architektur

• Sicherer Betrieb

• Regelmäßige Prüfungen

• Neue Technologien und Produkte

Neuen Gefahren kann nicht mit alten Technologien begegnet werden

Page 8: Web Application Firewalls (WAF) - RUB

1. Bekämpfung der Ursachen

Page 9: Web Application Firewalls (WAF) - RUB

Bekämpfung der Ursachen

• Sicheres Programmieren

– Codierungsrichtlinien

– Toolgestützt durch Quellcode-Scanner

• Prüfung der Sicherheit

– Penetrationstests

– Toolgestützt durch Applikations-Scanner

• …

Page 10: Web Application Firewalls (WAF) - RUB

Sicheres Programmieren

Page 11: Web Application Firewalls (WAF) - RUB

Codierungsrichtlinien für sichere Entwicklung

• Meist umfangreiche Werke

• Sollten mit den Entwicklern gemeinsam erarbeitet werden

– Sensibilisierung ist hier sehr wichtig

– z.B. Training + Workshop

• Unterstützung durch Werkzeuge bei der Entwicklung

– Quellcode-Scanner mit guter Erklärungskomponente

Page 12: Web Application Firewalls (WAF) - RUB

Beispiel-Themen für Richtlinien

• Grundlagen, Vertrauen, Server vs. Client

• Prüfung von Eingaben

• Bereinigung von Ausgaben

• Session-Management

• Umgang mit sensiblen Informationen

• Verhalten bei Fehlern

• Einsatz von Verschlüsselung

• Zugriff auf Datenbanken

• Administrationspfade

Page 13: Web Application Firewalls (WAF) - RUB

Sichere Programmierung ist keine vollständige Lösung

• Begrenzter Einfluss durch Ausführung von Fremdcode

– Plattformen, Portale und Backendsysteme

– Einbindung Programm-Bibliotheken

• Menschliches Fehlerpotential

– Die Programmierung von Filtern zur Überprüfung von Benutzereingaben ist sehr komplex und erfordert tiefes KnowHow

Page 14: Web Application Firewalls (WAF) - RUB

Prüfung der Sicherheit

Page 15: Web Application Firewalls (WAF) - RUB

Auditierung von Applikationen

• Während der Entwicklung– Prüfwerkzeuge innerhalb Entwicklungsumgebung

• Fokus auf Quellcode– Unterstützung für den Entwickler statt Audit– Je früher umso geringere Kosten

• Während der QA bzw. Testphase– Sicherheit ist ein Teil der Qualität – Sicherheits-Tests zusammen mit den

funktionalen Tests durchführen

• Vor Produktivgang oder im Betrieb– Durch Sicherheitsexperten

Page 16: Web Application Firewalls (WAF) - RUB

Marktüberblick Web Scanner

Watchfire

Kavado ScanDo

Sanctum AppScan Verkauf

97 99 00 01 02 03 04 05 06 07 08

ProtegrityVerkauf

IBM

SPI-Dynamics WebInspect Verkauf HP

Verkauf

Cenzic Hailstorm -> Hailstorm Web -> Hailstorm

NT Objectives NTO Spider

Acunetix Acunetix WVS

Page 17: Web Application Firewalls (WAF) - RUB

2. Bekämpfung der Auswirkungen

Page 18: Web Application Firewalls (WAF) - RUB

Bekämpfung der Auswirkungen

• Warum reicht Ursachenbekämpfung alleine nicht aus?

– Bereits genannt

• Fremdcode

• Menschliches Fehlerpotential

– Zusätzlich

• Minimierung des „Windows of Exploitation“

• Patchen zu kostenintensiv

• Security Principal: „Defense in depth“

• …

Page 19: Web Application Firewalls (WAF) - RUB

Fremdcode

Page 20: Web Application Firewalls (WAF) - RUB

MyApp250.000 LoC

BEA WebLogic*>10M LoC

* estimate, based on line counts in JBoss, a competing open-source J2EE application server

Fremdcode

Page 21: Web Application Firewalls (WAF) - RUB

MyApp

250.000 LoC

BEA WebLogic*>10M LoC

Fremdcode

Page 22: Web Application Firewalls (WAF) - RUB

MyApp

250.000 LoC

BEA WebLogic*>10M LoC

Fremdcode

Page 23: Web Application Firewalls (WAF) - RUB

Menschliches Fehlerpotential

Page 24: Web Application Firewalls (WAF) - RUB

Menschliches Fehlerpotential

• Hohe Komplexität der Umgebungen führen zu Schwachstellen

• Fehler sind trotz Schulungen, Richtlinien oder motivierten Mitarbeitern „normal“

• Beispiel: Input-Validierungs-Filter

– 1. Filter: Anti-Directory-Traversal:Der String ../ wird aus allen Parametern entfernt

– 2. Filter: Anti-Cross-Site-Scripting:Malicious characters wie > oder < werden durch "."ersetzt

– Frage? In welcher Reihenfolge greifen die Filter? ;)

– Angriffsstring: >>/>>/>>/>>/

Page 25: Web Application Firewalls (WAF) - RUB

Minimierung des „Windows ofExploitation“

Page 26: Web Application Firewalls (WAF) - RUB

„Window of Exploitation“

• „Wunschdenken“:

Bei Pentest wird Schwachstelle entdeckt

Diese wird sofort durch Entwickler gepatcht

Neue Version wird produktiv genommen

• Realität:

Bei Pentest wird Schwachstelle entdeckt

Schwachstellen wird in Bug-Tracking-System erfasst

Entwickler brauchen mehrere Tage für eine Lösung

Neue Version muss durch den Q&A Prozess

Es vergehen mehrere Tage bis Wochen bis die Schwachstelle gepatcht ist

Page 27: Web Application Firewalls (WAF) - RUB

Security Principal: „Defense in depth“

Page 28: Web Application Firewalls (WAF) - RUB

„Defense in depth“

• Security Principal „Defense in depth“:

• Implementiere Sicherheit in allen möglichen Schichten (Netzwerk, Anwendung, Webserver, Datenbank, Betriebssysteme, …).

• Falls die Sicherheit in einer Schicht versagt, greifen die Mechanismen der anderen Schichten

• Analogie:

• Netzwerkbasierte Firewall – gehärtetes DMZ System

• Web Applikation Firewall – sichere Web Applikation

Page 29: Web Application Firewalls (WAF) - RUB

Positionierung von Sicherheitslösungen

Page 30: Web Application Firewalls (WAF) - RUB

Produkte für Sicherheit beiE-Business und Web-Services

Internet LAN

Web-

ServerApp. /

DBBrowser

HTTP-

Filter

Proxies für

SQL, XML,

Soap, Corba

Host IPS /

TOS / SOS

Browser-

Sicherheit

Page 31: Web Application Firewalls (WAF) - RUB

Produkte für Sicherheit beiE-Business und Web-Services

Internet LAN

Web-

ServerApp. /

DBBrowser

HTTP-

Filter

Proxies für

SQL, XML,

Soap, Corba

Host IPS /

TOS / SOS

F5 (Magnifire)

Citrix (Teros)

Barracuda (NC)

DenyAll, …

AppSec Inc,

Guardium

Symantec (Platform)

McAffee (Entercept)

Cisco CSA (Okena)

Argus, eEye, …

Browser-

Sicherheit

Quaresso

Promon

Page 32: Web Application Firewalls (WAF) - RUB

Gliederung

• Warum WAFs?

• Funktionsweise von WAFs

• Marktübersicht

• Live-Demos:

– Vorstellung exemplarischer Schwachstellen

– Konfiguration einer Web Application Firewall

Page 33: Web Application Firewalls (WAF) - RUB

Schutzfunktionen einer WAF

• Vor bekannten Angriffen über Signaturen

– PHP-Würmer, Exploits, …

• Vor unbekannten Angriffen über generische Mustererkennung(Zero Day Protection)

– SQL Injection, XSS, Buffer Overflows, …

• Gezielte Konfiguration zur Absicherung bekannt gewordener Schwachstellen

– Falls Anpassung des Systems nicht möglich

– Kein Feedback/Support des Herstellers

Page 34: Web Application Firewalls (WAF) - RUB

Grenzen einer WAF

• Erkennung von Logikfehlern

– Z.B. falsch implementiertes Berechtigungsmodell

• Fehlerhafte Implementierung von Sicherheit auf Client Seite

– Z.B. Berechtigungsmodell wird in JavaScript geprüft

• Ausnutzung von Browserschwachstellen

– Z.B. Clickjacking

Page 35: Web Application Firewalls (WAF) - RUB

Funktionsweise einer WAF

• Erzwingt konformes HTTP (RFCs)

• Normalisierung

d5opx;ÐÓGE]Ì€³óâ=• [Zܾç­Ù‰Vð„'‰<½

#Ôm]ëæoª5Zòˆ!0^Ý£kê

ØmtÈ‘œìn‘k»A

H•?>'5@Ì¿êÜ°Ýë;u

³7JMµ4[ø´Èò¾ø má¼

SSL entschlüsseln

%2E%2E%2Fpartners%2Fe

%2F%7Efinance%2Frec%2F

%2Fhomepage%2Findex%2

Sonderzeichen wandeln

/partners/

/finance/rec/

/homepage/index/

Page 36: Web Application Firewalls (WAF) - RUB

Funktionsweise einer WAF

• Betrachtungsebene

– WAF arbeitet auf Ebene HTTP/HTML

• Im Kontext der Applikation

– Wichtige Abgrenzung zu IDS/IPS!

• Extrahieren von URLs

• Extrahieren von Parametern

– Für GET und POST-Parameter

– Cookies sind z.B. Sonderform der POST-Parameter

• Anwendung von White- und Blacklisting

• Ausgabefilterung

Page 37: Web Application Firewalls (WAF) - RUB

Kontrolle von Parametern

• Whitelisting

– Beschreibung gültiger Wertebereiche

• Blacklisting

– Anwendung von Signaturen und Mustererkennung

• Schutz von Session Daten und kontextabhängigen Daten

• Individuell je Parameter

– konfigurierbar

– Ggf. Ausnahmen für einzelne Prüfungen bei bestimmten Parametern(bei False Positives)

Page 38: Web Application Firewalls (WAF) - RUB

Kontrolle von URLs

fbck.php fbck.php.bak Teller BesteckTassen

Duck.htm Pluto.htm Repl.cfg

Home

/CGI /Produkte/Admin /Services /Old

• Zugriff wird nur auf URLs gestattet, die zur Applikation gehören

Page 39: Web Application Firewalls (WAF) - RUB

Ein Ansatz: Whitelisting

• Beschreibung gültiger Wertebereiche für alle Eingaben (URLs und Parameter)

• Höchste Sicherheit

• Nicht immer bis ins letzte Detail umsetzbar

• Erstellung der Whitelist manuell oder über Lernmodus

Page 40: Web Application Firewalls (WAF) - RUB

Whitelisting: Regelbasierte Policy

• Typischerweise Definition gültiger Dateiendungen und Datentypen je Bereich

• Gezielte Vorgabe von erlaubten Zeichen / Längen für spezifische Parameter

– Nur für wenige, kritische Parameter

– Bei bekannten Schwachstellen

Page 41: Web Application Firewalls (WAF) - RUB

Whitelisting: Regelbasierte Policy

• Gültige URLs und Parameter werden über Wildcards oder reguläre Ausdrücke beschrieben

• Einfaches Beispiel:

– zugelassen sind *.html, *.gif und *.css

– alle Parameter maximal 256 Zeichenplus Prüfung gegen Blacklisten

– plus einzelne Ausnahmen

Page 42: Web Application Firewalls (WAF) - RUB

Whitelisting: Regelbasierte Policy

• Gültige URLs und Parameter werden über Wildcards oder reguläre Ausdrücke beschrieben

• Einfaches Beispiel:

– zugelassen sind *.html, *.gif und *.css

– alle Parameter maximal 256 Zeichenplus Prüfung gegen Blacklisten

– plus einzelne Ausnahmen

Page 43: Web Application Firewalls (WAF) - RUB

Whitelisting: Regelbasierte Policy

• Policy-Grundsätze können vorgegeben werden (z.B. durch IT-Security)

• Flexibel bei Änderungen der Applikation

• Kompakt und nachvollziehbar (wichtig bei Reviews)

Page 44: Web Application Firewalls (WAF) - RUB

Whitelisting: Statisches Lernen

• WAF erstellt „einmalig“ Policy aus gültigen URLs und Parametern

• Lernen mittels

– Live Traffic

– Trusted IP

– Crawler

• Ausnahmen für Blacklists werden gelernt

• Nach Beendigung des Lernens wird Policy „scharf“ geschaltet

Page 45: Web Application Firewalls (WAF) - RUB

Whitelisting: Statisches Lernen

• Ergibt sehr genaue Beschreibung der Applikationsstruktur

• Gutes Ergebnis für Applikationen mit statischem Inhalt und definierten Release-Zyklen (z.B. Online Banking, SAP)– Einzige Möglichkeit, um z.B. auch SAP WAS

URL-Prefix Services zu begrenzen

– Lernphase erfordert vollständiges Testen

• Kaum einsetzbar bei Applikationen mit häufigen Änderungen (z.B. per CMS generierte Website)

Page 46: Web Application Firewalls (WAF) - RUB

Dynamische Statusverfolgung(„dynamisches Lernen“)

• Zur Laufzeit Analyse des HTML-Quelltextes und Extrahieren von …

• gültigen Hyperlinks („A HREF“)

• gültige Formularauswahlen (Check Boxen, Radio Buttons

• Session Informationen (Hidden Fields, Cookies)

• Findet je Benutzer statt!

• Speicherung der gelernten Informationen im RAM der WAF oder in verschlüsseltem Cookie

Page 47: Web Application Firewalls (WAF) - RUB

Dynamische Statusverfolgung

• Verfolgen jeder einzelnen Benutzersession• Analyse der abgefragten HTML-Seiten

• Extraktion aller möglichen Links

Startseite: /start.html

Cookie: Session 1357

Session 1357 Links:

/products/index.html

/services/index.html

/cgi/feedback.pl

GET /services/index.html

Startseite: /start.html

GET / GET /

GET /services/index.html

Seite: /services/index.html

Session 1357 Links:

/products/index.html

/services/index.html

/cgi/feedback.pl

/services/s1.html

/services/s2.html

/services/xy.html

Seite: /services/index.html

Cookie: Session 1357

GET /msadc/msadcs.dll

WAF WebserverAnwender

Page 48: Web Application Firewalls (WAF) - RUB

GET /msadc/msadcs.dll

Seite: /1f2caa0842ef2288

Cookie: Session 1357

Verschlüsseln von URLs

• Verfolgen jeder einzelnen Benutzersession • Analyse der abgefragten HTML-Seiten

• Verschlüsseln der enthaltenen Links

Startseite: /start.html

Cookie: Session 1357

GET /1f2caa0842ef2288

Startseite: /start.html

GET / GET /

GET /services/index.html

Seite: /services/index.html

WAF WebserverAnwender

Session 1357 Links:

/products/index.html

/services/index.html

/cgi/feedback.pl

Session 1357 encrypted

Links: /1f2caa0842ef2288

/32db48fc2c32becd

/44bce4862a4f3280

Page 49: Web Application Firewalls (WAF) - RUB

Randbedingungen zu dynamischer Statusvervolgung bzw. URL-Verschlüsselung

• Bookmarks und Suchmaschinenergebnisse sind nicht mehr gültig

– empfehlenswert für geschlossene Bereiche mit Login-Seite (z.B. Online Banking)

• Navigation sollte nicht auf Client-Seite realisiert sein (z.B. JavaScript, Ajax)

• In der Praxis daher oft kombiniert mit statischer Konfiguration

Page 50: Web Application Firewalls (WAF) - RUB

Whitelisting mit dynamischer Statusverfolgung

• Wo ist der sinnvollste Anwendungsfall?

– Bei einfachen Applikationen (selten)

– In kleinen Teilbereichen bei komplexen Applikationen

• Einsatz gegen bekannte Schwachstellen

• Schutz vor CSRF

• bei besonders kritischen oder verwundbaren Teilen,z.B. ungefilterter Download aus Auswahlliste

– Genereller Einsatz in der Praxis kaum durchführbar

Page 51: Web Application Firewalls (WAF) - RUB

Adpative Policyanpassung

• Anstelle eines einmaligen Lernprozesses steht kontinuierliches Lernen

• Policy wird ständig automatisch aktualisiert

– z.B. auch bei Änderungen in der Webanwendung

• Minimaler Betriebsaufwand

• Allerdings erschwerte Umsetzung in klassischen Staging-Umgebung

– Adaptiver Prozess funktioniert nur im produktiven Datenverkehr sinnvoll

– In der Testumgebung können keine Anpassungen gelernt werden(Daten nicht aussagekräftig)

Page 52: Web Application Firewalls (WAF) - RUB

Whitelisting: Flows

• Verfolgung des Benutzers auf seinem Weg durch die Applikation

• Einsatz für kritische Bereiche

– Genereller Einsatz zu komplex

Seite A Seite B Seite C

Falscher

Parameter!

Page 53: Web Application Firewalls (WAF) - RUB

Zusätzlicher Ansatz:Blacklisting (Angriffsmuster)

• vom Hersteller gepflegt/aktualisiert

• offengelegt oder proprietär

• editier- und erweiterbar

• Korrelation mehrerer Events („Scoring“)

Page 54: Web Application Firewalls (WAF) - RUB

Blacklisting (Angriffsmuster)

• Sind oft generisch, d.h. viele neue Angriffe werden ohne Aktualisierung erkannt

– Beispiel: Aktualisierung der SQL-Injection Blacklist nur bei Änderung des SQL-Standards

• Aktualisierung bei neuen Angriffsklassen

– Von zentraler Management Instanz

– automatisch

– manuell

– mit Staging/Approval Prozess

Page 55: Web Application Firewalls (WAF) - RUB

Blacklisting: Fehlerbehandlung

• Log Analyse

– Interner Logviewer hilfreich

– Filterfunktionen

– Eindeutige Error Tracking IDs

– Möglichkeit zu „One Click Refinements“

Page 56: Web Application Firewalls (WAF) - RUB

Whitelist und Blacklist im Vergleich

Konfigurationsaufwand

Schutz

Blacklist

Whitelist

Page 57: Web Application Firewalls (WAF) - RUB

Whitelist und Blacklist im Vergleich

• Fazit:

– Whitelisting bietet höchstmöglichen Schutz, ist aber sehr aufwändig zu konfigurieren

– In der Praxis solider Basisschutz aus:

• Blacklisting

• Generisches Whitelisting

– Ggf. Ergänzung durch spezifisches Whitelisting über dynamische Statusverfolgung oder Flows in kritischen Bereichen

Page 58: Web Application Firewalls (WAF) - RUB

Filtern von Status- und Fehlerseiten

• Server-Banner

• Fehlerseiten von Applikations- oder Datenbankservern

Page 59: Web Application Firewalls (WAF) - RUB

Filterung sensitiver Daten

• z.B. Kreditkartendaten

• Hyperlinks zu Administrationsoberflächen oder internen Modulen(falls Applikation keine Konfiguration zulässt)

• Beliebige Content-Umschreibung

Page 60: Web Application Firewalls (WAF) - RUB

Schutz von Cookies

• Cookies werden verschlüsselt

Set-Cookie: CartNr bd53fa224c Set-Cookie: CartNr 24367

WAF

Cookie: CartNr 128

Page 61: Web Application Firewalls (WAF) - RUB

Denial Of Service

• Bandbreitenlimitierung für einzelne URLs

– Beispiel 1:

• http://www.company.com normal erreichbar

• http://www.company.com/download/ limitierte Request-Anzahl pro Sekunde limitierte Bandbreite

– Beispiel 2:

• Ein einzelner User kann nur eine begrenzte Anzahl an Requests/Sekunde anfordern

• Performance für die Allgemeinheit ist aber unbeeinflusst

Page 62: Web Application Firewalls (WAF) - RUB

• Bandbreitenlimitierung für einzelne URLs

– Beispiel 1:

• http://www.company.com normal erreichbar

• http://www.company.com/download/ limitierte Request-Anzahl pro Sekunde limitierte Bandbreite

– Beispiel 2:

• Ein einzelner User kann nur eine begrenzte Anzahl an Requests/Sekunde anfordern

• Performance für die Allgemeinheit ist aber unbeeinflusst

Denial Of Service

Page 63: Web Application Firewalls (WAF) - RUB

Aktivierung der Security Policy

• Passiver Modus– Anwendung der Security Policy

– Logging von Sicherheitsvorfällen

– Aber kein aktives Blockieren

• Ideal für die ersten Stunden/Tage der Inbetriebnahme– Eventuelle False Positives sind kein Problem

– Besonders wichtig, wenn produktive Anwendung nachträglich mit WAF-Schutz versehen wird

Page 64: Web Application Firewalls (WAF) - RUB

Praktische Aspekte beim WAF-Einsatz

• Bisheriger Deployment-Prozess muß angepasst werden

– Tests mit vorgeschaltener WAF

– Kommunikation zwischen Anwendungsentwicklung und WAF-Betrieb erforderlich

• Deployment zunächst in Testumgebung

– Dort Policy-Erstellung / -Anpassung

– Kopieren der fertigen Policy auf das Produktivsystem

– Testsystem einplanen

Page 65: Web Application Firewalls (WAF) - RUB

Trends in der WAF-Technologie

• Die WAF-Produkte nähern sich an

• Funktionalitäten werden „abgeschaut“

• Kombination mit Funktionalitäten der Application Delivery

– Loadbalancing

– Authentication/Authorization

– Caching

– Compression

– TCP Optimization

– SSL Offloading

– SSL VPN

Page 66: Web Application Firewalls (WAF) - RUB

Trends in der WAF-Technologie

• Meist Hardware Appliance

• Seltener Software Lösung oder Soft Appliance

• Integration als Reverse Proxy

• Sehr selten im Bridge Mode

• Ablösung heterogener Reverse Proxy Strukturen

Page 67: Web Application Firewalls (WAF) - RUB

Schutzwirkung

• Alle nachfolgend erwähnten Produkte bieten hohen Schutz gegen die genannten Angriffe

• Keine „schlechten“ oder „guten“ WAFs im Sinne der Schutzwirkung

• Aber unterschiedliche Philosophien und Ansätze, die indirekt Einfluss auf die Sicherheit haben

Page 68: Web Application Firewalls (WAF) - RUB

Schutzwirkung

0

10

20

30

40

50

60

70

80

90

mod

_sec

urity

Bar

racu

da F5

Impe

rva

Vison

ys

WAF

Blocked XSS-Pattern

• Beispiel: Erkennung von XSS-Angriffen

Quelle der Angriffsmuster: http://ha.ckers.org/xss.html

pe

rce

nta

ge

Page 69: Web Application Firewalls (WAF) - RUB

Und die Performance ?

• Wieviele Backendserver schützen Sie ?

• Alle Hersteller bieten Modelle unterschiedlicher Leistungsklasse

• 10.000 bis über 50.000 transactions/second (!)

• Gigabit Durchsatz

• SSL-Beschleuniger (auch mit HSM)

• Performance ist selten ein Problem!

Page 70: Web Application Firewalls (WAF) - RUB

Integration als Reverse Proxy

• Single Homed

Webserver

LAN

WAF

Internet

Page 71: Web Application Firewalls (WAF) - RUB

Integration als Reverse Proxy

• Dual Homed

Webserver

WAF

LANInternet

Page 72: Web Application Firewalls (WAF) - RUB

Integration als Reverse Proxy

• Dual Homed

– typisch in neu aufgebauter Umgebung

– ansonsten Netzwerk-Reorganisation erforderlich

– sehr hohe Sicherheit

• Single Homed

– typisch in vorhandener Umgebung

– Integration durch DNS-Änderung oder Einsatz von NAT

– Nicht-HTTP Datenverkehr fließt am System vorbei

Page 73: Web Application Firewalls (WAF) - RUB

Integration als Reverse Proxy

• Randbedingungen

– IP des Benutzers auf dem Webserver nicht mehr sichtbar

• Weiterleitung als Header

• Access Logs direkt auf der WAF generieren

• Transparent Proxy(WAF muss Default-Gateway sein)

– Absolute Links dürfen nicht auf Backend-Systeme zeigen

• Umschreibung von Links über die WAF (URL-Rewriting)

Page 74: Web Application Firewalls (WAF) - RUB

HTTP/S-Verbindung

Integration als Bridge

• Keine TCP-Terminierung

• Transparente Bridge

• „Applikations-IPS“, „Layer2-WAF“

WAF WebserverBenutzer

Page 75: Web Application Firewalls (WAF) - RUB

Integration als Bridge

– Keinerlei IP-, Netzwerk oder DNS-Änderungen erforderlich

– Daten werden nicht verändert (keine TCP-Terminierung)

– Nicht inspizierter Traffic passiert ungehindert

– Einfaches Deployment und Rollback

– Je nach Topologie mehrere WAF-Module erforderlich

– Keine Zusatzfunktionen, die den Content beeinflussen (Rewriting, Loadbalancing, Compression, …)

Page 76: Web Application Firewalls (WAF) - RUB

• Filterung nur unverschlüsselt möglich

– SSL-Terminierung bei Reverse Proxy

– Transparente SSL-Analyse bei Bridge

• SSL-Schlüssel und Zertifikate müssen unverschlüsselt vorliegen (Base64 codiert)

• Bei Einsatz eines Hardware Security Modules (HSM) muss dieses von der WAF unterstützt werden

SSL-Terminierung

Page 77: Web Application Firewalls (WAF) - RUB

Hardware Security Module (HSM)

• Entkopplung der SSL-Behandlung von Webserver, Reverse Proxy oder WAF

• Besonders gesicherte Appliances

– Zugang nur mit starker Authentisierung oder sogar Vier-Augen-Prinzip

• Sichere Speicherung von SSL-Keys

– „Key verlässt nie das HSM“

• Sichere und effiziente Ausführung von kryptographischen Operationen

– SSL-Beschleunigung

Page 78: Web Application Firewalls (WAF) - RUB

Weitere Protokolle

• SOAP / XML im B2B-Umfeld– Viele Angriffe gegen Webapplikationen existieren

auch bei Webservices

– Für die WAF SOAP/XML zunächst nur normaler HTTP-Request

– Spezielle Module, die XML oder SOAP analysieren

• Alternativ native XML-Firewalls

• Wichtige Unterscheidung:– Fokus bei WAF auf Applikationssicherheit,

nicht Sicherheit durch XML-Authentisierung, SAML oder Authorisierung

Page 79: Web Application Firewalls (WAF) - RUB

Abgrenzung WAF gg. XML-Firewall

• XML-Firewalls bieten „klassische“ Sicherheit:

– Verschlüsselung

– Authentisierung/Authorisierung

– WS-Security 1.0/1.1

• SAML

• AAA

– XSLT-Transformationen

• Oft aber nur rudimentärer Schutz gegenüber Angriffen auf XML-Ebene

Page 80: Web Application Firewalls (WAF) - RUB

Gliederung

• Warum WAFs?

• Funktionsweise von WAFs

• Marktübersicht

• Live-Demos:

– Vorstellung exemplarischer Schwachstellen

– Konfiguration einer Web Application Firewall

Page 81: Web Application Firewalls (WAF) - RUB

Marktentwicklung

Watchfire

F5Magnifire

NetContinuum

KaVaDo

Sanctum

WebCohort Imperva

Stratum 8 Teros

97 99 00 01 02 03 04 05 06 07 08 09

Protegrity

Citrix

Barracuda

Verkauf

CiscoReactivity

Verkauf

DenyAll

Breach / ModSecurity

Art Of Defence

Verkauf

Verkauf

Verkauf

Verkauf

Verkauf

Seclutions Visonys PhionVerkauf

Page 82: Web Application Firewalls (WAF) - RUB

Hersteller und Produkte (alphabetisch)

• Barracuda Web ApplicationFirewall

• Cisco ACE Web ApplicationFirewall

• Citrix Application Firewall

• DenyAll rWeb

• F5 ASM

• Imperva SecureSphere

• Phion Airlock

• Protegrity Defiance TMS

Page 83: Web Application Firewalls (WAF) - RUB

Gliederung

• Warum WAFs?

• Funktionsweise von WAFs

• Marktübersicht

• Live-Demos:

– Vorstellung exemplarischer Schwachstellen

– Konfiguration einer Web Application Firewall

Page 84: Web Application Firewalls (WAF) - RUB

Live-Demos

Vorstellung exemplarischer Schwachstellen

Page 85: Web Application Firewalls (WAF) - RUB

Gliederung

• Vorstellung exemplarischer Schwachstellen

– Theorie und Live Demonstrationen

– Alte Bekannte

• Cross-Site-Scripting

• File-Inclusion-Schwachstelle

– „Neue“ Schwachstellen

• Blind-SQL-Injection

• Logische Fehler

Page 86: Web Application Firewalls (WAF) - RUB

Gliederung

• Vorstellung exemplarischer Schwachstellen

– Theorie und Live Demonstrationen

– Alte Bekannte

• Cross-Site-Scripting

• File-Inclusion-Schwachstelle

– „Neue“ Schwachstellen

• Blind-SQL-Injection

• Logische Fehler

Page 87: Web Application Firewalls (WAF) - RUB

Cross-Site Scripting (XSS)

• Ausführung von „bösartigem“ Code innerhalb des Browser des Opfers

– Opfer ist immer der Client(-Browser)

• Die eigentliche Schwachstelle liegt jedoch innerhalb der Webanwendung

Page 88: Web Application Firewalls (WAF) - RUB

1) HTML-Mail mit Link

2) Aufruf des

präparierten

Links4) Übermittlung

des Schadcodes

AngreiferOpfer

Webanwendung mit

XSS Schwachstelle

5) Ausführung des Schad-

codes im Browser

6) Cookie an Angreifer

• Nicht Persistentes Cross-Site Scripting

Cross-Site Scripting (XSS)

3) Verarbeitung des

präparierten Links

Page 89: Web Application Firewalls (WAF) - RUB

Cross-Site Scripting (XSS)

Demonstration

Page 90: Web Application Firewalls (WAF) - RUB

• „File-Inclusion“ durch die Applikationslogik

• Beispiel:

– „Gedachte“ Funktionalität:

http://www.cirobank.demo/news/news.php

?include=news.html

– Manipulierte Funktionalität:

http://www.cirobank.demo/news/news.php

?include=../../../../../etc/passwd

File-Inclusion-Schwachstelle

Page 91: Web Application Firewalls (WAF) - RUB

• „File-Inclusion“ durch die Applikationslogik

• Beispiel:

– „Gedachte“ Funktionalität:

http://www.cirobank.demo/news/news.php

?include=news.html

– Manipulierte Funktionalität:

http://www.cirobank.demo/news/news.php

?include=../../../../../etc/passwd%00.html

File-Inclusion-Schwachstelle

Page 92: Web Application Firewalls (WAF) - RUB

File-Inclusion-Schwachstelle

Demonstration

Page 93: Web Application Firewalls (WAF) - RUB

Gliederung

• Vorstellung exemplarischer Schwachstellen

– Theorie und Live Demonstrationen

– Alte Bekannte

• Cross-Site-Scripting

• File-Inclusion-Schwachstelle

– „Neue“ Schwachstellen

• Blind-SQL-Injection

• Logische Fehler

Page 94: Web Application Firewalls (WAF) - RUB

DB-ServerFirewall

„Normale“ SQL-Injection

Angreifer

Web-ServerFirewall

/search.asp

?query=' UNION … SQL-Abfrage

Ergebnis

der AbfrageAntwortseite

SELECT author,title,isbn,publisherFROM booksWHERE title LIKE '%Begriff%'SELECT null,null,password,username FROM

cirobank.users--

' UNION

SELECT name,creditcardno,null,null FROM customers--

Internet

Page 95: Web Application Firewalls (WAF) - RUB

„Normale“ SQL-Injection

Page 96: Web Application Firewalls (WAF) - RUB

• Obwohl eine Anwendung für SQL-Injectionanfällig ist,

– wird oftmals das Ergebnis nicht direkt in der Antwortseite angezeigt

– werden Fehlermeldungen häufig unterdrückt

• Somit können Daten nicht über die Anwendungslogik oder Fehlermeldungen gewonnen werden

• Die Schwachstelle kann aber „blind“ ausgenutzt werden

Blind-SQL-Injection

Page 97: Web Application Firewalls (WAF) - RUB

• „Blindes“ Finden von SQL-Injection-Schwachstellen

• Idee: Einschleusen einer wahren (TRUE) und einer unwahren (FALSE) Aussage

– Die Antworten unterscheiden sich jeweils

Blind-SQL-Injection

Page 98: Web Application Firewalls (WAF) - RUB

Blind-SQL-Injection

Demonstration - manuell

Page 99: Web Application Firewalls (WAF) - RUB

• „Blindes“ Ausnutzen von SQL-Injection-Schwachstellen

• Ziel: Systematisches Erraten des aktuellen Datenbankbenutzers „minizon“

• Idee: Den Namen Buchstabe für Buchstabe erraten

Blind-SQL-Injection

Page 100: Web Application Firewalls (WAF) - RUB

Blind-SQL-Injection

• unwahre Aussagen:

• so lange bis wahre Aussage:

' SUBSTR((SELECT user FROM dual),1,1)='a';--

' SUBSTR((SELECT user FROM dual),1,1)='m';--

' SUBSTR((SELECT user FROM dual),1,1)='b';--

' SUBSTR((SELECT user FROM dual),1,1)='c';--

Page 101: Web Application Firewalls (WAF) - RUB

Blind-SQL-Injection

• Iteration über alle Stellen

' and SUBSTR((SELECT user FROM dual),1,1)='m';--

' and SUBSTR((SELECT user FROM dual),2,1)='i';--

' and SUBSTR((SELECT user FROM dual),3,1)='n';--

' and SUBSTR((SELECT user FROM dual),4,1)='i';--

' and SUBSTR((SELECT user FROM dual),5,1)='z';--

' and SUBSTR((SELECT user FROM dual),6,1)='o';--

' and SUBSTR((SELECT user FROM dual),7,1)='n';--

Page 102: Web Application Firewalls (WAF) - RUB

Blind-SQL-Injection

Demonstration

Page 103: Web Application Firewalls (WAF) - RUB

Logischer Fehler

• Anwendungsparameter bestimmt Kontext, in dem Anwendung verwendet wird

• Nach Anmeldung an Anwendung:

www.cirobank.de/content/kunden.php?cid=dXNlcl9pZD0y

• cid ist Base64 codiert:

dXNlcl9pZD0y

• Manipulation des Parameters:

user_id=1

Base64_decode() user_id=2

Base64_encode()dXNlcl9pZD0x

Page 104: Web Application Firewalls (WAF) - RUB

Logischer Fehler

Demonstration

Page 105: Web Application Firewalls (WAF) - RUB

Live-Demos

Konfiguration einer Web Application Firewall

Page 106: Web Application Firewalls (WAF) - RUB

Danke für Ihre Aufmerksamkeit!