Wächter der Web-Anwendungen

Web Application Firewalls in der Praxis

03.01.2011
Von Stefan Marx

Wie eine WAF Angriffe erkennt

Die WAF inspiziert Anfragen an den Web-Server und blockiert Angriffe, bevor sie zu diesem gelangen. (Cirosec)
Die WAF inspiziert Anfragen an den Web-Server und blockiert Angriffe, bevor sie zu diesem gelangen. (Cirosec)

Die Angriffserkennung erfolgt in mehreren Schritten: Zunächst werden alle übermittelten Daten "normalisiert", sprich: sämtliche Codierungen, die einen Angriff tarnen könnten, werden aufgelöst. In einem nächsten Schritt folgt die Filterung durch verschiedene Listen - im Idealfall zuerst anhand einer Whitelist. Dabei handelt es sich um eine Liste, in der für jeden Parameter und jede URL der Web-Applikation die jeweils gültigen Werte hinterlegt sind, was auch als "positives Sicherheitsmodell" bezeichnet wird: Demnach ist alles verboten, was nicht explizit erlaubt ist.

Ergänzend filtern alle WAFs die Anfragen durch Blacklists. Das sind Listen mit bekannten Angriffsmustern, die auf die übermittelten Parameter angewendet werden. Tritt eines dieser Angriffsmuster in einer Anfrage auf, wird diese blockiert. Diese Art der Filterung nennt sich "negatives Sicherheitsmodell": Was nicht explizit verboten wird, ist erlaubt. Im Unterschied zu einem IDS/IPS (Intrusion Detection/Prevention System) untersucht die WAF hierbei nicht nur den Datenstrom als Ganzes, sondern analysiert auch das zugrunde liegende HTTP (Hypertext Transfer Protocol) und prüft die einzelnen Bestandteile der Anfrage bezogen auf jedes einzelne Formular oder sogar Feld. Die WAF taucht demnach wesentlich tiefer in die Kommunikation ein und ist so in der Lage, viele bekannte Angriffe zu erkennen. Da die Attacken stets auf denselben Grundlagen basieren, müssen diese Muster nur selten erneuert werden. Für eine erfolgreiche SQL-Injection muss zum Beispiel gültiges SQL eingesetzt werden. Dieser Standard ist seit vielen Jahren unverändert. Die zugehörigen Angriffsmuster sind also nur bei einer Änderung des SQL-Standards anzupassen.