05.05.2006, 19:56 Uhr
Schutz durch Web Application Firewall
Wie lassen sich Webapplikationen besser schützen? Und was ist an sogenannten Web Application Firewalls besonders ausser einem neuen Namen? Security-Experte Martin Bosshardt kennt die Antwort.
Frage: Die zentrale Funktion einer Webapplikation liegt in der weltweiten Erreichbarkeit. Das bedeutet, dass ein Angreifer von jedem Standort im Internet aus einen Webapplikationsserver angreifen kann. Eine konventionelle Firewall sorgt zwar zuverlässig dafür, dass der Angreifer für seine Attacke keine gefährlichen Ports und Protokolle verwenden kann. Innerhalb dieser Grenzen sind Webapplikationen jedoch für ihre Verteidigung auf sich selbst gestellt. Wie lassen sich Webapplikationen besser schützen? Und was ist an sogenannten Web Application Firewalls besonders ausser einem neuen Namen?
Tatsächlich erlaubt eine konventionelle Firewall dem gesamten Internet, wenn auch sehr limitiert, lediglich über Port 80 (HTTP) und/oder über Port 443 (HTTPS) mit einer Webapplikation zu kommunizieren. Nicht mehr, aber eben auch nicht weniger. Eine Web Application Firewall (WAF) hat aber, ausser dem Namen, wenig mit einer herkömmlichen Firewall gemeinsam. Eine vorgelagerte WAF schaut in den Datenstrom hinein und kann dank erweiterter Kontextinformationen neue und alte Angriffstechniken erkennen und abwehren. Auf den ersten Blick eine Aufgabenstellung, die auch mit einem Intrusion Prevention System (IPS) lösbar scheint. IPS funktionieren ähnlich einem Virenscanner: Sie untersuchen den Datenverkehr nach vorgegebenen Mustern und führen, sobald eine Attacke erkannt wird, Abwehrmassnahmen aus. Moderne IPS überprüfen zudem den Datenverkehr nicht nur musterbasiert, sondern versuchen mittels eingebauter Heuristiken und Anomalieerkennung Abweichungen vom erwarteten Systemverhalten zu erkennen. Diesem Verfahren sind jedoch Grenzen gesetzt. Ein IPS kann die Syntax und den Fluss von Daten zwar in Echtzeit verifizieren, sie berücksichtigt die Semantik zur Erkennung eines Angriffs jedoch nicht. Um die Bedeutung der Daten in einem Angriff auf eine Webapplikation innerhalb der HTTP/HTTPS-Verbindungen zu verstehen, muss ein System gezielt auf diesen Anwendungsbereich hin ausgerichtet werden. Beispielsweise sollen Formparameter blockiert werden, wenn diese dem Server gesendet werden, ohne dass der Server den Client vorgängig dazu aufgefordert hat. Solche Datenmanipulationen bilden eine häufige Angriffsvariante und sind weder für eine klassische Firewall noch für ein IPS als Angriff erkennbar. Denn nur der falsche Kontext lässt die gefährliche Absicht erkennen. Eine WAF arbeitet gezielt auf Applikationsebene und erreicht damit überlegene Resultate. Allerdings klar begrenzt auf den Schutz von Webapplikationen. Um die Abwehr der Angriffe zu optimieren, bedarf es einer Architektur, welche den Zugriff auf den gesamten Datenverkehr erlaubt und gleichzeitig eine saubere Trennung der Daten und Anwendungen erzwingt. WAFs werden vor die Webapplikationsserver geschaltet und verhindern so den direkten, ungeschützten Zugriff auf die Applikationsserver durch einen Benutzer. Damit auch verschlüsselter Datenaustausch durch die WAF inspiziert werden kann, muss diese entweder den Endpunkt der SSL-Verschlüsselung (Secure Sockets Layer) bilden oder Zugriff auf eine Kopie des Chiffrierschlüssels haben. Eine typische reverse-proxy-basierte WAF authentisiert und überprüft alle eingehenden Anfragen und leitet diese bei entsprechender Berechtigung an die Backendsysteme weiter. Damit kann die Web Application Firewall weitere Sicherheitsfunktionen, wie Authentisierung und Autorisierung, vorgelagert übernehmen und als Secure Single-Sign-On Instanz und/oder Loadbalancer zwischen mehreren Backendsystemen agieren. Jeder Browser kommuniziert somit nicht mehr direkt mit dem Applikationsserver, sondern lediglich mit der WAF. Der Applikationsserver ist damit komplett vom Internet getrennt und selbst über Port 80 und/oder 443 nicht mehr für Angreifer direkt exponiert.