Mit einem geringerem Funktionsumfang, dafür jedoch mit einer einfachen Bedienbarkeit sollen Web Application Firewalls den XML-Pendants Konkurrenz machen. Befürworter dieses Ansatzes verweisen besonders auf das Kosten/Nutzen-Verhältnis.
XML-Firewalls prüfen Web-Service-Anfragen auf ihre Integrität, Korrektheit und Ungefährlichkeit,
gleichzeitig authentifizieren sie jedoch auch den Absender der Nachricht. Eine Web Application
Firewall (WAF) übernimmt dieselben Aufgaben für jeglichen HTTP-Verkehr. Da Web-Services meist HTTP
als Transportprotokoll einsetzen, kann auch eine Web Application Firewall einen Großteil dieser
Aufgaben übernehmen. Aktuelle WAF-Produkte decken damit die wichtigsten XML-Firewall-Funktionen ab,
zusätzlich kann eine WAF aber auch "normale" Web-Applikationen schützen.
Funktionsweise
Eine Web Application Firewall schützt Web-Anwendungen vor Angriffen auf HTTP-Ebene. Einerseits
filtert sie alle eingehenden Requests und blockiert mögliche Angriffe, andererseits übernimmt eine
WAF häufig auch die zumeist vorgelagerte Authentifizierung der Benutzer und kann so dafür sorgen,
dass nur legitime Anfragen zum Applikations-Server weitergeleitet werden. Die WAF lässt sich damit
nach Einschätzung der Befürworter dieses Konzepts als Portal mit Single-Sign-on-Funktionalität
einsetzen. Um den vollen Funktionsumfang nutzen zu können, sollten WAFs als Netzwerk-Appliance vor
der Anwendung platziert sein und damit als so genannter Reverse Proxy fungieren.
Beim Schutz von Web-Services kommen sowohl Standardfunktionen einer WAF als auch deren
XML/SOAP-spezifischen Features zum Einsatz. WAF-Produkte bieten typischerweise folgenden
Funktionen:
Standard WAF-Funktionen
Gegenseitige SSL-Authentifizierung: Nur Anfragen mit einem gültigen SSL-Client-Zertifikat werden
akzeptiert;
Authentifizierung auf HTTP-Ebene: Prüfung von Benutzername/Passwort im HTTP-Header;
Prüfung und Normalisierung des Zeichensatzes (unter anderem Verhinderung von
Unicode-Attacken);
Layer 7 Content Switching;
Erschweren von Denial-of-Service-Angriffen;
Prüfung durch einen Viren-Scanner (insbesondere, falls innerhalb des XML-Dokuments Dateien
auftauchen);
Load Balancing (Verteilung der Anfragen auf mehrere Web-Services);
Hochverfügbarkeit der WAF durch Clustering/Fail-over und
Lauffähigkeit in virtueller Maschine (zum Beispiel VMware).
Spezifische XML-Firewall-Funktionen
XML-Validierung;
Verhinderung von Angriffen auf den XML-Parser (zum Beispiel durch ein Verbot von External
Entities);
Schema-Validierung: Prüfung darauf, ob die Anfrage der publizierten Schnittstelle des
Web-Services entspricht. Dazu lässt sich die Schema-Definition in Form einer WSDL-Datei hochladen,
teilweise ist zusätzlich eine Einschränkung auf einzelne Nachrichtentypen/Methoden möglich;
Blacklists: Prüfung der Parameterwerte auf bekannte Angriffsformen wie SQL Injection oder
Cross-Site-Scripting (XSS) und
Verifikation von Nachrichtensignaturen.