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.


Plesk - Web Application Firewall


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:


  1. Request
  2. Response
  3. 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.


Sicherheitsregel deaktivieren - WAF



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