WAF
Web Application Firewall (WAF) – TLS-Terminierung und Layer-7-Inspektion
- Animation: WAF: HAProxy mit Coraza (einfach)
Allgemeines Konzept
- Ein Client greift per HTTPS auf einen Webdienst zu
- Der HTTPS-Datenstrom wird nicht direkt zum Webserver geleitet
- Stattdessen befindet sich eine Web Application Firewall (WAF) zwischen Client und Webserver
- Die WAF fungiert als TLS-Verschlüsselungsendpunkt
- Die TLS-Verbindung des Clients endet an der WAF
TLS-Terminierung
- Die WAF nimmt die eingehende HTTPS-Verbindung vom Client entgegen
- Die verschlüsselte Verbindung wird auf der WAF entschlüsselt
- Der HTTP-Datenstrom liegt nun innerhalb der WAF im Klartext vor
- Erst jetzt ist eine Analyse auf Anwendungsebene möglich
Inhaltsanalyse auf Anwendungsebene
- Nach der Entschlüsselung erfolgt eine Prüfung des HTTP-Datenstroms
- Analysiert werden z. B.:
- HTTP-Header
- URI und Parameter
- Cookies
- POST-Daten
- JSON- oder XML-Payloads
- Die Analyse erfolgt auf Layer 7 des OSI-Modells
- Ziel ist die Erkennung von Angriffsmustern auf Webanwendungen
Weiterleitung an das Backend
- Nach erfolgreicher Prüfung wird der Request an den Webserver weitergeleitet
- Die Weiterleitung kann erfolgen über:
- HTTP (internes Netz)
- HTTPS (Re-Verschlüsselung)
- Der Webserver selbst erhält nur bereits geprüfte Anfragen
Sicherheitsgewinn
- Der Webserver ist nicht direkt aus dem Internet erreichbar
- Die Analyse erfolgt vor der Verarbeitung durch die Anwendung
- Angriffe auf Anwendungsebene können vorab erkannt und blockiert werden
- Die WAF übernimmt die Rolle eines sicherheitsrelevanten Layer-7-Gateways
Umsetzung
Aktueller Ansatz: HAProxy terminiert TLS, Coraza (OWASP CRS) prüft über SPOE.
- WAF mit HAProxy und Coraza (Debian)
- WAF mit HAProxy und Coraza Rocky (Rocky Linux, mit SELinux- und firewalld-Besonderheiten im Vergleich zu Debian)
Älterer Ansatz, noch in bestehenden Umgebungen anzutreffen: Nginx mit ModSecurity, siehe Modsecurity.
