Die "echte WAF" ist normalerweise immer vor einer Anwendung. Bei Apache-Webservern üblicherweise Tools wie mod_security, also Teil des Webservers selbst. Eine .htaccess kann dann noch etwas ergänzen auf Script- oder Kunden-spezifischer Ebene - und sei es nur der Passwortschutz des administrator-Verzeichnisses bei Joomla oder der wp-login.php bei Wordpress. Derart mächtige Regeln wie mit mod_security sind damit nicht möglich.
Wir versuchen bekannte gewordene Angriffsvektoren mit mod_security bereits vorab abzufangen. Das gilt dann global für den ganzen Server und allen Webs.
Für mich besteht ein Firewall-Konzept aus diesen Teilen:
- "Echte" Firewall für ein/ausgehenden Traffik noch vor dem physikalischen Server. In der Regel dann direkt im Rechenzentrum. Ein DDOS-Schutz kann man noch davor platzieren, wenn man das mitrechnen will. Cloudflare ggf. auch noch.
- Globale WAF für den Webserver (z.B mod_security)
- .htaccess für einige individuelle Regeln und PW-Schutz
- Bei Bedarf -nicht zwangsweise erforderlich- eine Schutzfunktion innerhalb eines Scriptes. Hier muss man bedenken, das jede weitere Software in Scripten die Angriffsfläche gleichzeitig erhöht.
Punkt 4) ist alleine kein Allheilmittel, auch wenn das von verschiedenen Herstellern gerne behauptet wird. Dazu habe ich schon zu viele Hacks gesehen, wo solche Tools installiert waren und versagt haben.
Wichtiger -meiner Ansicht nach- sind diese Punkte:
- Keine aufgeblähten Installationen. So wenig Erweiterungen wie möglich. Nur Software aus Quellen, die tatsächlich sehr zeitnah updaten und supporten.
- Regelmäßige Prüfungen, Updates und Kontrollen.
- Backups, Backups, Backups...
- Fachwissen
Weil ich weiß das diese Punkte eher theoretischer Natur sind, User "jeden Scheiss" installieren und sich oft monatelang nicht um Updates kümmern, geschweige denn regelmäßig mal "nach dem Rechten schauen", oft genug gar keine große Ahnung haben, ist eine Software-Absicherung gemäß Punkt 4), wie z.B. HTProtect aktuell, rsfirewall usw. oder anderen Tools, durchaus oft sinnvoll - aber kein Allheilmittel.