Zum Inhalt springen
EuroVPSEuroVPS

Firewall oder WAF: was jede sieht und was jede stoppt

Eine Stateful Firewall liest Adressen, Ports und Verbindungszustand. Eine WAF liest die HTTP-Anfrage selbst. Ein Login-Formular braucht beide, hintereinander.

Von EuroVPS EngineeringDer Maschinenraum

6 Min. Lesezeit
In diesem Artikel 5 Abschnitte
Kurz gesagt
  • Eine Stateful Firewall entscheidet anhand des Umschlags: Quelle, Ziel, Port und Verbindungszustand. Ein Bot, der Passwörter an einem Login-Formular rät, sendet wohlgeformte Anfragen an einen Port, der offen sein muss, also lässt die Firewall sie durch.
  • Eine WAF, oder ein Reverse Proxy, der WAF-Arbeit leistet, entscheidet anhand des Inhalts: Pfad, Methode, Body, Antwortcode und Rate pro Client. Fehlgeschlagene Logins, Injection-Versuche und Scraper sind nur dort sichtbar.
  • Die beiden gehören hintereinander. Die Firewall grenzt ein, was den Proxy überhaupt erreichen kann. Der Proxy erkennt Missbrauch im Strom der Anfragen und kann eine Adresse an den Paketfilter zurückgeben, mit Ablaufzeit und einer Allow-List für den Betreiber.

Was eine Stateful Firewall entscheidet

Eine Layer-3/4-Firewall verfolgt Verbindungen und beurteilt jede neue anhand ihrer Adressen, ihres Ports und des Zustands des Flows, zu dem sie gehört. Cisco Firepower, OPNsense und netfilter machen das alle gut: Ein Port, den keine Regel öffnet, ist geschlossen, eine Antwort wird nur für eine Verbindung erlaubt, die von innen gestartet wurde, und Management-Ports antworten nur den Bereichen, die auf der Allow-List stehen. Ihre Sicht endet auf der Transportschicht. Mit TLS im Pfad kann sie überhaupt nicht in die Nutzlast sehen, es sei denn, sie terminiert die Sitzung, und selbst im Klartext hat sie keinen Begriff von einer URL, einem Header, einem Antwortstatus oder einem Login.

Was eine WAF hinzufügt

Eine Web Application Firewall liest die HTTP-Transaktion nach der TLS-Terminierung, was in der Praxis bedeutet, dass sie im oder neben dem Reverse Proxy lebt. Sie fügt drei Arten von Kontrolle hinzu, die die Firewall nicht ausdrücken kann. Signaturregeln, etwa ModSecurity mit dem OWASP Core Rule Set, erkennen Injection, Traversal und bekannte Exploit-Payloads in der Anfrage. Verhaltensregeln zählen pro Client und pro Pfad: Anfragen pro Minute auf der Login-Route, Antworten auf fehlgeschlagene Logins pro Adresse, Bot-Signale in Headern und Timing. Positive Regeln legen fest, was ein Pfad akzeptiert, etwa welche Methoden, welche Content-Types und welche Body-Größe, und weisen den Rest ab.

Eine WAF ist kein Ersatz für die Firewall. Sie sieht nur den Verkehr, der sie erreicht, und weiß nichts über SSH, Datenbank-Ports oder die Management-Ebene.

Wo Login-Missbrauch sichtbar wird

Ein fehlgeschlagenes Login ist eine Tatsache in der Antwort. Die Anwendung beantwortet ein POST an den Login-Pfad mit einem Status oder einer Weiterleitung, die Fehlschlag von Erfolg unterscheidet, und der Proxy schreibt das bei jedem Versuch in sein Access-Log. Fehlschläge pro Client und Minute zu zählen ist eine Zeile awk über dieses Log, und es ist das Signal, das ein Paketfilter auf keine Weise sehen kann.

Die Kontrolle muss am Client ansetzen, nicht am Konto. Eine Kontosperre allein stoppt Versuche gegen einen Benutzernamen und sperrt dessen Inhaber aus, während der Bot zum nächsten Namen auf seiner Liste weitergeht. Ein Rate Limit pro Client auf der Login-Route leistet, was die Sperre nicht kann:

TERMINAL
# nginx: at most 5 login attempts a minute per client, small burst allowed
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

location = /login {
    limit_req zone=login burst=5 nodelay;
    proxy_pass http://app;
}

HAProxy drückt dieselbe Idee mit einer Stick Table aus, die an die Quelladresse gebunden ist, und ein WAF-Regelsatz kann den Antwortcode des fehlgeschlagenen Logins direkt zählen.

Wie die beiden zusammenpassen

Die Reihenfolge ist Firewall, dann TLS-Terminierung und der Proxy mit seinen WAF-Regeln, dann die Anwendung. Die Erkennung gehört auf Layer 7, denn dort liegen die Beweise. Die Durchsetzung kann auf beiden Ebenen erfolgen. Der Proxy kann dem auffälligen Client bei seiner nächsten Anfrage mit 429 oder 403 antworten, was für die meisten Fälle von Missbrauch genügt. Bei einem Client, der immer wiederkommt, kann der Proxy die Adresse für eine festgelegte Zeit in die dynamische Tabelle des Paketfilters schieben, was auch die übrigen Verbindungen dieses Clients kappt und die Firewall pro Paket nichts kostet.

Zwei Designpunkte kommen, bevor diese Rückkopplungsschleife scharf geschaltet wird. Die Management- und Monitoring-Bereiche des Betreibers kommen zuerst auf die Allow-List, damit ein Test oder ein Tippfehler die Menschen, die die Plattform betreiben, nicht aussperren kann. Und geteilte Adressen sind real: Ein Büro-NAT oder ein Carrier-Grade-NAT stellt viele Menschen hinter eine Adresse, also tragen Sperren eine kurze Ablaufzeit und einen dokumentierten Weg, sie aufzuheben. Die gesamte Kette wird danach von einem Host außerhalb des Netzwerks getestet, so wie ein Angreifer sie antreffen würde, bevor sich jemand darauf verlässt.

Was keine von beiden sieht

Ein richtiges Passwort. Credential Stuffing mit einem geleakten, gültigen Passwort sieht auf jeder Ebene wie ein erfolgreiches Login aus. Diese Lücke schließt Multi-Faktor-Authentifizierung am Konto und eine Allow-List für die administrativen Pfade an der Firewall, sodass ein gültiges Credential von einer Adresse, die nicht Ihre ist, nutzlos ist.

Klare Antworten

Was ist der Unterschied zwischen einer Firewall und einer WAF?+

Eine Stateful Firewall arbeitet auf Layer 3/4 und entscheidet anhand von Adressen, Ports und Verbindungszustand. Eine WAF arbeitet auf Layer 7 und entscheidet anhand des Inhalts von HTTP-Anfrage und -Antwort. Ein Login-Versuch ist ein Layer-7-Ereignis, also kann nur die WAF oder der Proxy sagen, ob er fehlgeschlagen ist.

Kann eine Firewall Credential Stuffing an einem Login-Formular stoppen?+

Nicht allein. Die Versuche sind wohlgeformte Anfragen an einen offenen Port, und genau das soll die Firewall erlauben. Der Fehlschlag steckt in der Antwort, eine Ebene höher. Zählen Sie ihn am Proxy und lassen Sie den Proxy entscheiden, oder speisen Sie die Firewall aus dieser Entscheidung.

Brauche ich eine WAF-Appliance, wenn ich bereits nginx oder HAProxy betreibe?+

Oft nicht. ModSecurity läuft als Modul in nginx und Apache, HAProxy hat Stick Tables für Raten- und Missbrauchsverfolgung, und beide protokollieren die Antwortcodes, die Login-Missbrauch sichtbar machen. Der Proxy, den Sie bereits haben, sieht alles, was eine WAF sehen würde. Die Frage ist, ob jemand die Regeln geschrieben hat.

Sollten Sperren am Proxy oder an der Firewall erfolgen?+

Erkennen Sie am Proxy, denn dort liegen die Beweise. Setzen Sie in den meisten Fällen am Proxy durch, und eskalieren Sie bei hartnäckigen Quellen zum Paketfilter, mit Ablaufzeit, einer Allow-List für den Betreiber und einem Weg zur Freigabe für geteilte Adressen.

Login-Missbrauch ist ein Layer-7-Problem.

Sprechen Sie mit einem Ingenieur darüber, wo Ihrer überwacht wird.

Mit einem Ingenieur sprechen

Sie haben das Ende erreicht.

Setzen Sie das Gelesene um

Was betreiben Sie?

Erzählen Sie uns von Workload, Traffic und Anforderungen an die Wiederherstellung. Beginnen Sie mit dem Server-Konfigurator oder besprechen Sie die Details mit einem Ingenieur.

Geschrieben von den Ingenieuren, die die beschriebene Infrastruktur bauen und betreiben.
Mit einem Ingenieur sprechen
XIn

Noch 6 Min.