Web Application Firewall ModSecurity
...in progress...
keywords: WAF, web application firewall, mod_security, modsecurity
Wenn die Website nach Aktivierung der WAF nicht wie gewohnt funktioniert, dann wie folgt vorgehen:
Im Browser die Netzwerkanalyse öffnen
Betr. Seite neu laden
Wenn 403 Forbidden auftaucht, dann wird ein request von der WAF geblockt
tail -f /var/log/apache2/modsec_audit.log
Hier den letzten, neuesten Bereich analysieren, der aus mehreren Abschnitten/Einträgen besteht:
--[id]-A--
...
--[id]-B--
...
--[id]-C--
...
Oben den request prüfen:
Beispiel:
PUT /api/v1/triggers/4 HTTP/1.1
Suche nach "[id"
Dann die IDs der ModSec Core Rules (ids: 900000-900999) prüfen. Eine sollte immer zweimal auftreten:
Einmal zuerst innerhalb der Message: Warning von mod_security (glaube ich).
Danach innerhalb Apache-Error.
Dann die Regel(n) bauen und eigene id(s) vergeben, die sauber hochzählt/hochzählen (sonst startet apache nicht mehr)
In
/etc/modsecurity/user.modsecurity.conf
folgenden eigenen Bereich unterhalb von
# === ModSec Core Rules Base Configuration (ids: 900000-900999)
und oberhalb von
# === ModSecurity Core Rules Inclusion
Include /etc/modsecurity/owasp-modsecurity-crs/rules/*.conf
einfügen und pflegen:
# === ModSec Core Rules: Runtime Exclusion Rules [projekt- oder servername] (ids: 10000-49999)
# ModSec Exclusion Rule: 932130 msg "Remote Command Execution: Unix Shell Expression Found"
SecRule REQUEST_URI "@beginsWith /api/v1/" \
"phase:1,nolog,pass,id:10006,ctl:ruleRemoveById=932130,chain"
SecRule REQUEST_METHOD "PUT"
Abschließend:
apache2ctl configtest
systemctl restart apache2.service
systemctl status apache2.service