Web Application Firewall
Eine Web Application Firewall (WAF) ist eine neue Technologie die Web-Anwendungen vor Angriffen über HTTP schützen soll. Teilweise wird diese Technologie auch als Web Shields, Application-Level-Gateway (ALG) oder Application-Level-Firewall (ALF) bezeichnet.
Gegenüber klassischen Firewalls und Intrusion Detection Systemen (IDS) untersucht eine WAF die Kommunikation auf der Dienstebene. Dazu ist normalerweise keine Änderung an den zu schützenden Web-Anwendungen nötig.
Schutz
Angriffe vor denen WAF schützen sollen:
- Cross-Site Scripting (XSS)
- Hidden Field Tampering
- Parameter Tampering
- Cookie Poisoning
- Pufferüberlaufangriffe
- Forceful Browsing
- Illegaler Zugriff auf Web-Server
- SQL Injection
- Command Injection
- bekannte Verwundbarkeiten von Web-Anwendungen
Funktionsweise
Die WAF untersucht alle eingehenden Anfragen und die Antworten des Web-Servers. Bei verdächtigen Inhalten wird der Zugriff unterbunden. Zur Klassifizierung von gefährlichen/verbotenen Aktionen wird häufig in einer vorgeschalteten Lernphase ein Application Security Scanner eingesetzt. Dieser analysiert, häufig im Dialog mit einem Nutzer, die Anwendung und erzeugt daraus Profile für zulässige Aktionen. Sind beispielsweise zwei Parameter für ein untersuchtes Formular definiert, kann die WAF alle Requests blockieren die drei oder mehr Parameter enthalten. Ebenso kann die Länge und der Inhalt der Parameter geprüft werden. Alleine durch die Spezifikation von allgemeinen Regeln über die Beschaffenheit von Parametern, z.B. der maximalen Länge und erlaubten Wertebereichen können viele Angriffe verhindert bzw. für den Angreifer erschwert werden.
Vorteile
- Mehrere Ebenen des Schutzes (zusätzlicher Schutz zu vorhandenen Filtern in der Anwendung)
- Löcher können gleichzeitig für mehrer Anwendungen hinter der WAF geschlossen werden
- Schutz von Anwendungen die nicht mehr aktualisiert werden können
- Möglichkeit der Überbrückung bis zum Anwendungspatch
Nachteile
- Teilweise trügerische Sicherheit: Anwendungen enthalten weiterhin Lücken, die durch Umgehen der WAF ausgenutzt werden können.
- Durch Unterschiede bei der Request-Bearbeitung sind neue Angriffe möglich (HTTP Request Smuggling)
- Störung des Betriebs durch zu restriktive oder falsch konfigurierte Filter
- Anwendungen die aktive Inhalte auf Seiten des Clients einsetzen (z.B. JavaScript) werden schlecht unterstützt