Web-Firewall
Wie die Web-Firewall von InfraFence jeden Besucher anhand der Access-Logs bewertet: Angriffstypen und Punkte, Abbau, Aktionsstufen, Frequenzregeln, eigene Regeln und woher die Logs kommen.
Zuletzt aktualisiert:
Die Web-Firewall liest die Access-Logs deiner Webserver, gibt jeder Besucheradresse einen Wert und sperrt die Adresse an der Firewall, sobald der Wert hoch genug ist. Sie funktioniert mit jedem Webserver, der ein Access-Log schreibt, braucht keine Änderung an seiner Konfiguration und verlangsamt keine Anfragen.
Woher die Logs kommen
Der Agent findet die Access-Logs selbst, in dieser Reihenfolge:
WEB_LOG_PATH, falls gesetzt (es ersetzt dann die Erkennung);- die Konfiguration von nginx und Apache (
access_log,CustomLog), virtuelle Hosts von OpenLiteSpeed, die domlogs von cPanel; - Web-Container auf dem Host (siehe Docker);
- die Logs pro Domain von Plesk, ISPConfig, DirectAdmin, CyberPanel und anderen sowie die üblichen Pfade von nginx, Apache, LiteSpeed und Caddy.
Er sucht alle 5 Minuten erneut, damit neue Websites erfasst werden. Anfragen nach statischen Dateien (CSS, JavaScript, Bilder, Schriften) werden nicht bewertet, und private Adressen werden übersprungen.
Angriffstypen und Punkte
| Angriffstyp | Punkte |
|---|---|
| Remote Code Execution, Web-Shell, Shellshock, Scanner-User-Agent | 50 |
| SQL-Injection, SSRF, Web-Exploit, Honeypot | 40 |
| Path Traversal, Header-Injection, Brute Force auf WordPress oder ein CMS | 30 |
XSS, Suche nach .env, Missbrauch von XML-RPC |
25 |
| Suche nach Konfigurationsdateien | 20 |
| 404-Flut | 15 |
Zu den Scanner-User-Agents gehören sqlmap, nikto, nmap, masscan, wpscan, gobuster, nuclei, acunetix und nessus. Der vollständige eingebaute Katalog mit 109 Mustern wird mit jedem Release als waf-catalog.json veröffentlicht, und die Seite Web-Firewall listet jedes Muster, das der Agent anwendet.
Frequenzregeln
Manche Angriffe sind eine Frage der Menge. Diese Regeln fügen ihre Punkte hinzu, wenn eine Adresse innerhalb des Zeitfensters die Schwelle überschreitet:
| Regel | Standardschwelle | Zeitfenster |
|---|---|---|
| WordPress-Login | 10 | 2 Minuten |
WordPress admin-ajax.php ohne Sitzung |
10 | 30 Sekunden |
| XML-RPC | 5 | 1 Minute |
| Drupal-Login, Joomla-Login | 5 | 30 Sekunden |
| Plugin-Scans | 5 | 5 Minuten |
| 404-Flut | 15 | 5 Minuten |
Wert und Aktionen
Werte bauen sich um 5 Punkte pro Minute ab, damit eine einzelne seltsame Anfrage nicht ins Gewicht fällt. Der Wert bestimmt die Stufe:
| Wert | Stufe | Was passiert |
|---|---|---|
| 30 | observe | Als Info-Ereignis gemeldet. |
| 60 | throttle | Als Warnung gemeldet. |
| 80 | block | An der Firewall gesperrt, als kritisch gemeldet. |
| 100 | firewall ban | An der Firewall gesperrt, als kritisch gemeldet. |
Eine Sperre dauert so lange, wie Einstellungen › Agent › Sperrdauer festlegt, wie eine SSH-Sperre. Eine Adresse, die ModSecurity bereits gemeldet hat, wird nicht ein zweites Mal bewertet.
Die Regeln ändern
Auf der Seite Web-Firewall (Inhaber und Administratoren; Mitglieder können sie lesen):
- pro Angriffstyp: die Punkte, eine Schwelle für die Frequenzregeln und der Modus: Aktiv, Nur erkennen (gemeldet, nie gesperrt) oder Aus;
- Eingebaute Muster: einzelne Muster ausschalten, die Fehlalarme verursachen;
- Eigene Regeln: ein Klartext- oder Regex-Muster, das gegen die URL, den User-Agent oder den Referer geprüft und als ein Angriffstyp deiner Wahl bewertet wird. Ein Köderpfad, als Honeypot bewertet, fängt Scanner. Reguläre Ausdrücke nutzen die RE2-Syntax ohne Beachtung der Groß- und Kleinschreibung, und das Feld Testen mit probiert ein Muster aus, bevor du es speicherst.
WAF-Einstellungen speichern sendet die Änderungen; die Server wenden sie innerhalb von Sekunden an.
Überwachungsmodus
Mit eingeschaltetem Überwachungsmodus verhält sich jeder Typ wie Nur erkennen: Werte und Ereignisse laufen weiter, nichts wird gesperrt.
Zum Blockieren im Webserver selbst, schon bei der ersten Anfrage, siehe ModSecurity.
