Web Application Firewall (WAF)
Die Web Application Firewall (Mod Security) bietet die Möglichkeit einzelne Teile oder den gesamten GET und POST Request auf mögliche Angriffe zu untersuchen. Je nach Einstellung kann die WAF entweder für NGINX oder Apache verwendet werden.
Web Application Firewall aktivieren
Melden Sie sich zunächst im Plesk Control Panel an und navigieren Sie zum Menüpunkt Tools & Einstellungen → Web Application Firewall (ModSecurity). Ändern Sie hier die Einstellung auf den Wert Nur Erkennung oder Ein, um die WAF zu aktivieren.
Modus | Erklärung |
---|---|
Aus | Eingehende HTTP-Anfragen und zugehörige Antworten werden nicht überprüft. |
Nur Erkennung | Jede eingehende HTTP-Anforderung und die zugehörige Antwort werden mit einem Regelsatz verglichen. Wenn diese Überprüfung erfolgreich verläuft, wird die HTTP-Anforderung an den Website-Content weitergegeben. Wenn die Überprüfung negativ ausfällt, wird das Ereignis protokolliert und ModSecurity führt keine weiteren Aktionen aus. Andere Dienste wie Fail2Ban können trotzdem eigene Aktionen für HTTP-Anforderungen ausführen, die die Überprüfung nicht bestanden haben. |
Ein | Jede eingehende HTTP-Anforderung und die zugehörige Antwort werden mit einem Regelsatz verglichen. Wenn diese Überprüfung erfolgreich verläuft, wird die HTTP-Anforderung an den Website-Content weitergegeben. Wenn die Überprüfung negativ ausfällt, wird das Ereignis protokolliert, eine Benachrichtigung gesendet und eine HTTP-Antwort mit Fehlercode zurückgegeben. |
Web Application Firewall deaktivieren
Melden Sie sich zunächst im Plesk Control Panel an und navigieren Sie zum Menüpunkt Tools & Einstellungen → Web Application Firewall (ModSecurity). Ändern Sie hier die Einstellung auf den Wert Aus, um die WAF vollständig zu deaktivieren.
Das Deaktivieren der Web Application Firewall stellt ein potenzielles Sicherheitsrisiko dar und sollte nur zu Testzwecken verwendet werden.
Fehlerbehebung
ModSecurity-Auditprotokoll
Die ModSecurity-Auditprotokolldatei ist die nützlichste Informationsquelle im System. Sobald ModSecurity erkennt, dass ein Ereignis eintritt, generiert es einen Eintrag in der Auditprotokolldatei.
Beispiel-Protokolleintrag für die URL https://www.creoline.de/.env
--c495fc5c-A--
[10/Sep/2021:13:31:33 +0000] YTteNQUBTQYAAFwXTCwAAABN XXX.XXX.XXXX.XXX 39132 5.1.77.6 7081
--c495fc5c-B--
GET /.env HTTP/1.0
Host: www.creoline.de
X-Real-IP: XXX.XXX.XXX.XXX
X-Accel-Internal: /internal-nginx-static-location
Connection: close
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0
Accept-Encoding: gzip, deflate
Accept: */*
--c495fc5c-F--
HTTP/1.1 403 Forbidden
Last-Modified: Sun, 05 Mar 2017 01:28:46 GMT
ETag: "3fc-549f1b33767e0"
Accept-Ranges: bytes
Content-Length: 1020
Connection: close
Content-Type: text/html
--c495fc5c-H--
Message: Access denied with code 403 (phase 1). Matched phrase "/.env" at REQUEST_URI. [file "/etc/apache2/modsecurity.d/rules/comodo_free/02_Global_Generic.conf"] [line "120"] [id "210492"] [rev "3"] [severity "CRITICAL"] [tag "CWAF"] [tag "Generic"]
Apache-Error: [file "apache2_util.c"] [line 273] [level 3] [client XXX.XXX.XXX.XXX] ModSecurity: Access denied with code 403 (phase 1). Matched phrase "/.env" at REQUEST_URI. [file "/etc/apache2/modsecurity.d/rules/comodo_free/02_Global_Generic.conf"] [line "120"] [id "210492"] [rev "3"] [severity "CRITICAL"] [tag "CWAF"] [tag "Generic"] [hostname "www.creoline.de"] [uri "/.env"] [unique_id "YTteNQUBTQYAAFwXTCwAAABN"]
Action: Intercepted (phase 1)
Stopwatch: 1631280693566204 805 (- - -)
Stopwatch2: 1631280693566204 805; combined=333, p1=255, p2=0, p3=0, p4=0, p5=78, sr=112, sw=0, l=0, gc=0
Producer: ModSecurity for Apache (http://www.modsecurity.org/); CWAF_Apache.
Server: Apache
Engine-Mode: "ENABLED"
--c495fc5c-Z--
Jeder Regelverstoß wird in der Protokolldatei wie folgt gegliedert:
- Request
- Response
- Regelinformationen
In den Regelinformationen finden Sie folgende Details:
[id "210492"] [rev "3"] [severity "CRITICAL"] [tag "CWAF"] [tag "Generic"]
Wert | Beschreibung |
---|---|
ID | Regel-ID |
REV | Durch den Betreiber des Regelsets definierte Version |
Severity | Die Schwere des Regelverstoßes |
Tag | Die zugeordneten Gruppen des Regelsets |
Speicherort der Protokolle
Die Protokolle der Web Application Firewall werden im Verzeichnis /var/log/
mit dem Dateinamen modsec_audit.log
gespeichert. Je nach konfigurierter Protokollrotation (logrotate) entstehen automatisch weitere archivierte Protokolle mit dem Namen modsec_audit.log.1.gz
.
Regel deaktivieren
Um eine Regel anhand der Regel-ID oder des übergeordneten Tags zu deaktivieren, navigieren Sie zu dem Bereich Sicherheitsregeln ausschalten. Hier können Sie einzelne Regeln anhand der Regel-ID oder des Tags deaktivieren.
Häufige False-Positives
Bei der Nutzung von Shopware bei aktivierter Web Application Firewall können folgende Regeln zu ungewollten Sperrungen der Requests führen:
Rule-ID | Shopware Aktion | Request-URI |
---|---|---|
210580 | Kundenprofil Speichern | POST /account |
Kunden Login | GET /account/login | |
Benachrichtigungen von Shopware-API abfragen | GET /api/notification/message | |
FriendsOfShopware/FroshTools Health Check | GET /api/_action/frosh-tools/health/status | |
211180 | Shop Startseite | GET /meinShop/index.php |
214540 | Google Tag Manager | |
214940 | Google Tag Manager | |
210710 | Shopware Bilder Upload |