Ratenbegrenzung für Azure Web Application Firewall auf Azure Application Gateway

Gilt für: ✔️ Anwendungsgateway V2

Die Ratenbegrenzung für die Web Application Firewall in Application Gateway hilft Ihnen, ungewöhnlich hohe Zugriffsraten auf Ihre Anwendung zu erkennen und zu blockieren. Durch die Verwendung von Rate-Limiting auf Application Gateway WAF v2 können Sie viele Arten von Denial-of-Service-Angriffen mindern, vor Clients schützen, die falsch konfiguriert sind, um große Mengen an Anfragen in kurzer Zeit zu senden, oder die Verkehrsraten zu Ihrer Seite aus bestimmten Regionen steuern.

Richtlinien zur Ratenbegrenzung

Konfigurieren Sie die Ratenbegrenzung, indem Sie benutzerdefinierte WAF-Regeln in einer Richtlinie verwenden.

Hinweis

Ratenbegrenzungsregeln werden nur auf Web Application Firewalls unterstützt, auf denen die neueste WAF-Engine ausgeführt wird. Um sicherzugehen, dass du die neueste Engine benutzt, wähle CRS 3.2 als Standardregelsatz. Außerdem werden in nicht verbundenen (air-gapped) Clouds keine Regeln zur Ratenbegrenzung unterstützt.

Wenn Sie eine Rate Limit-Regel konfigurieren, geben Sie die Schwelle an: die Anzahl der innerhalb des angegebenen Zeitraums erlaubten Anfragen. Die Ratenbegrenzung auf Application Gateway WAF v2 verwendet einen Algorithmus für gleitende Fenster, um zu bestimmen, wann der Datenverkehr die Schwelle überschreitet und eingestellt werden muss. Während des ersten Fensters, in dem der Schwellenwert für die Regel überschritten wird, wird jeder weitere Datenverkehr gelöscht, der der Quotengrenzregel entspricht. Ab dem zweiten Fenster ist Datenverkehr bis zum Schwellenwert innerhalb des konfigurierten Fensters zulässig, sodass ein Drosselungseffekt entsteht.

Sie müssen auch eine Übereinstimmungsbedingung angeben, die der WAF mitteilt, wann das Ratenlimit aktiviert werden soll. Sie können mehrere Regeln für die Ratenbegrenzung konfigurieren, die mit verschiedenen Variablen und Pfaden innerhalb Ihrer Richtlinie übereinstimmen.

Application Gateway WAF v2 führt außerdem eine GroupByUserSession ein, die Sie konfigurieren müssen. GroupByUserSession gibt an, wie Anforderungen für eine übereinstimmende Ratenbegrenzungsregel gruppiert und gezählt werden.

Die folgenden drei GroupByVariables sind derzeit verfügbar:

  • ClientAddr – Dies ist die Standardeinstellung, die bedeutet, dass jeder Schwellenwert für die Ratenbegrenzung und jede Risikominderung unabhängig für jede eindeutige Quell-IP-Adresse gilt.
  • GeoLocation: Der Datenverkehr wird basierend auf einem Geo-Match-Element der Client-IP-Adresse nach geografischer Region gruppiert. Bei einer QUotengrenzregel wird der Datenverkehr aus derselben Geografie gruppiert.
  • Keine: Der gesamte Datenverkehr wird gruppiert und zählt für den Schwellenwert der Quotengrenzregel. Wenn der Schwellenwert überschritten wird, wird die Aktion gegen allen Datenverkehr ausgelöst, der der Regel entspricht, und führt keine separaten Zähler für jede Client-IP-Adresse oder jeden geografischen Standort. Verwenden Sie None mit spezifischen Übereinstimmungsbedingungen wie z. B. einer Anmeldeseite oder einer Liste verdächtiger User-Agents.
  • ClientAddrXFFHeader – Jede Quotengrenze und jede Risikominderung gilt unabhängig von der IP-Adresse, die im X-Forwarded-For-Header der HTTP-Anforderung gefunden wurde.
  • GeoLocationXFFHeader – Der Datenverkehr wird basierend auf einem Geo-Match auf der IP-Adresse gruppiert, die im X-Forwarded-For-Header der HTTP-Anforderung enthalten ist. Bei einer QUotengrenzregel wird der Datenverkehr aus derselben Geografie gruppiert.

Details zur Ratenbegrenzung

Die Web Application Firewall-Richtlinie zählt und verfolgt die konfigurierten Rate-Limit-Schwellenwerte unabhängig für jeden angeschlossenen Endpunkt. Beispielsweise verwaltet eine einzelne WAF-Richtlinie, die an fünf verschiedene Listener angefügt ist, unabhängige Leistungsindikatoren sowie die Erzwingung des Schwellenwerts für jeden der Listener.

Die Rate-Limit-Schwellenwerte werden nicht immer exakt wie definiert durchgesetzt, daher sollten Sie keine Rate-Limiting für die feinkörnige Kontrolle des Anwendungsverkehrs verwenden. Stattdessen nutzen Sie es, um anomale Verkehrsraten abzumildern und die Verfügbarkeit der Anwendung aufrechtzuerhalten.

Der Algorithmus für gleitende Fenster blockiert den gesamten übereinstimmenden Datenverkehr für das erste Fenster, in dem der Schwellenwert überschritten wird, und drosselt dann den Datenverkehr in zukünftigen Fenstern. Seien Sie vorsichtig beim Definieren von Schwellenwerten, wenn Sie Regeln für den breiten Abgleich mit GeoLocation oder None als GroupByVariables konfigurieren. Falsch konfigurierte Schwellenwerte können zu häufigen kurzen Ausfällen für übereinstimmenden Datenverkehr führen.

Hinweis

Jede Application Gateway v2-Instanz unterhält ihren eigenen Rate-Limit-Zähler. Wenn mehrere Instanzen aktiv sind, verteilen sie eingehende Anfragen untereinander, und die Rate-Limit-Schwelle gilt unabhängig für jede Instanz.

Betrachten wir zum Beispiel eine Schwelle von 400 Anfragen pro Client-IP und Minute. Wenn zwei Instanzen 270 und 230 Anfragen von derselben Client-IP erhalten, erreicht keine der beiden Instanzen die Schwelle. Der WAF erlaubt die Anfragen, obwohl die Gesamtanzahl der Anfragen 400 übersteigt. Daher sollten Sie bei aktiven mehreren Instanzen den konfigurierten Schwellenwert nicht als striktes gatewayweites Limit behandeln.

Nächster Schritt