Was ist eine WAF ?
WAF ist die Abkürzung von Web Application Firewall
und ist eine zusätzliche Security-Kontrolle.
Bei der WAF handelt es sich um eine zusätzliche Hardwarekomponente,
die eingesetzt wird um die Webanwendung noch sicherer zu machen.
Im groben erklärt,
filtert die WAF alle Zugriffe zu den Webservices und der Website also zum Web Application server.
Während die Network-Firewall aufpasst,
dass sich niemand unauthorisiert auf dem Netzwerk Zugriff verschafft,
schaut (filtert) sich die WAF den Traffic vom Webserver zum und vom Internet an.
Das Ziel der WAF hierbei ist es,
die Webanwendungen, also die Applikations Software for Hacker und sonstigen Angriffen zu schützen.
Es finden also zusätzliche Sicherheitskontrollen statt,
wo überprüft wird,
was alles vom Internet und ausgehend vom Webserver zum Internet geschickt wird.
Während die Netzwerk-Firewall
eher für den den Datenverkehr und Netzwerkzugriff im IP (Internet Protokoll),
also die Netzwerke sowohl intern und extern zuständig ist und diese überwacht,
ist die WAF im HTTP, SSL und TLS unterschied und Handshake attacks mit Man-In-The-Middle">HTTPS (SSL/TLS), SOAP. FTP, sFTP Protokoll aktiv und überwacht alles (und je nach konfiguration der WAF), was über HTTP-Traffic zum Webserver geschickt wird.
Dies Überwachung der WAF umfasst alle eingehenden und ausgehenden HTTP etc. Anfragen.
Das können sowohl einfache HTTP/HTTPS Applikationen sein,
oder auch XML Webservices oder gar FTP/SFTP.
Warum ist eine WAF (Web Application Firewall) so wichtig?
Ein normale Netzwerk-Firewall
schützt das interne Netzwerk, vor nicht authorisiertem Zugriff.
Allerdings der HTTP-Traffic (vom Webserver zum Internet und zurück) wird von der Netwerk-Firewall nicht überwacht.
Im Gegenteil, das HTTP Protokoll ist in der Netzwerk-Firewall sogar explizit frei geschaltet,
sonst hätte der Webserver keine Authorisiertung den Traffic vom und zum Webseveir zu generieren.
Der HTTP-Port is also in der Netzwerk-Firewall geöffnet und zugelassen.
Port 80 normale Verkehr und Port 443 für verschlüsselten Webverkehr.
Ansonsten könnte man nicht aus dem Internet mit Ihrem Webserver kommunizieren (Daten austauschen).
Nun benötigt man die WAF,
welche genau diesen Traffic der offenen Ports überwacht.
Aber die Überwachung findet nicht auf Netzwerk Ebene und Authorisierung statt,
sonder vielmehr im HTTP-Protokoll,
also was da genau im HTTP drin steht (der Quellcode) etc.
Im Groben geht es dabei um Angriffsmethoden im/vom Word Wide Web,
genauer gesagt um Hackerangriffe.
Ganz typische Hackerangriffe auf Websites sind zum Beispiel:
DdoS, XSS, SQL Injection, Session Hijacking und Buffer Overflows und so weiter...
Wenn dann die WAF typischerweise mit einem Proxy vor der Webappication eingesetzt wird,
überwacht und analysiert die WAF in echtzeit sämtlichen HTTP-Verkehr vom und zur Webapplication (Webserver).
Die WAF arbeitet hier nach unterschiedlichen Muster und Filterkriterien,
die je nach Hersteller (Fabrikat) unterschiedlich ausfallen,
aber auch von einem Entwickler oder Systemadmin selbst deffiniert und ausgebaut und verbessert werden können.
Die größten Anbieter von Web Application Firewalls sind derzeit:
Barracuda Networks, Big-IP, Cisco, Citrix, Dell Sonicwall, DenyAll, Fortinet, und F5 Networks, Imperva oder Sophos.
Über gute und schlechte Anbieter von WAF möchte ich an dieser Stelle nichts schreiben.
Jeder Anbieter hat seine eigene Sicherheitslogik entwickelt
und individuelle Validierungsmechanismen implementiert
und bauen diese auch kontinuierlich weiter aus.
Also updates patches sind keine seltenheit und sollten auch sein,
um beim Wettrüsten der Hacker und Hackermethoden mithalten
und vor allem die Websites, Webserver und das Netzwerk
vor Angriffen aus dem WordWideWeb besser schützen zu können.
Letztenendes seit noch gesagt
Auch eine WAF bietet keinen 100% prozentigen Schutz vor Hacker Angriffen.
Kreative Hacker finden immer einen Weg - und es ist wichtig,
dass Entwickler schon bei der Programmierung möglichst viele Zusatzvalidierungen im Code einbauen
um die Anwendungen sicherer zu machen.
Und so zumindest einen Großteil von:
Security-Coding, Datenverschlüsslung etc. in seine Anwendung implementiert.