Größenbeschränkungen für Anforderungen und Datei-Uploads durch die Web Application Firewall

Die Web Application Firewall ermöglicht Ihnen die Konfiguration von Größenbeschränkungen für Anforderungen innerhalb einer unteren und oberen Grenze. Application Gateway Web Application Firewalls, die mit Core Rule Set 3.2 oder höher arbeiten, verfügen über mehr Kontrollen für die Größe von Anfragen und Datei-Uploads, einschließlich der Möglichkeit, die Durchsetzung der maximalen Größe für Anfragen und/oder Datei-Uploads zu deaktivieren.

Wichtig

Wir sind dabei, eine neue Funktion für Application Gateway v2 Web Application Firewalls mit Core Rule Set 3.2 oder höher bereitzustellen, die eine bessere Kontrolle über die Größe des Anforderungstext, die Größe des Dateiuploads und die Überprüfung des Anforderungstext ermöglicht. Wenn Sie Application Gateway v2 Web Application Firewall mit Core Rule Set 3.2 oder höher einsetzen und feststellen, dass Anfragen aufgrund einer Größenbeschränkung abgelehnt werden (oder nicht abgelehnt werden), lesen Sie bitte die Schritte zur Fehlerbehebung am Ende dieser Seite.

Grenzwerte

Das Feld für die Größe des Anforderungstext und das Limit für die Größe des Datei-Uploads sind beide innerhalb der Web Application Firewall konfigurierbar. Der Wert im Feld für die maximale Größe des Anforderungstexts wird in Kilobyte angegeben und bestimmt das Anforderungsgrößenlimit insgesamt mit Ausnahme von Dateiuploads. Das Feld Datei-Upload-Limit wird in Megabyte angegeben und bestimmt die maximal zulässige Datei-Upload-Größe. Informationen zu den Größenbeschränkungen für Anforderungen und zum Hochladen von Dateien finden Sie unter Beschränkungen des Application Gateway.

Für Application Gateway v2 Web Application Firewalls mit Core Rule Set 3.2 oder neuer kann die Durchsetzung der maximalen Größe des Anforderungstext und des maximalen Datei-Uploads deaktiviert werden, so dass die Web Application Firewall eine zu große Anforderung oder einen zu großen Datei-Upload nicht mehr zurückweist. Wenn die Durchsetzung der maximalen Größe des Anforderungstext und die Durchsetzung der maximalen Datei-Upload-Größe innerhalb der Web Application Firewall deaktiviert sind, bestimmen die Grenzen des Application Gateway die maximal zulässige Größe. Weitere Informationen finden Sie unter Azure Application Gateway Grenzen.

Nur Anforderungen mit dem Inhaltstyp multipart/form-data werden als Dateiuploads betrachtet. Für Inhalte, die als Dateiupload betrachtet werden sollen, muss es ein Teil eines mehrteiligen Formulars mit einem Dateinamen-Header sein. Für alle anderen Inhaltstypen gilt der Grenzwert für die Größenbeschränkung für Anforderungstext.

Hinweis

Wenn Sie Core Rule Set 3.2 oder höher verwenden und eine benutzerdefinierte Regel mit hoher Priorität haben, die auf der Grundlage des Inhalts der Kopfzeilen, Cookies oder URI einer Anfrage eine Aktion ausführt, hat diese Vorrang vor allen Beschränkungen der maximalen Anforderung oder der maximalen Datei-Upload-Größe. Diese Optimierung ermöglicht es der Web Application Firewall, benutzerdefinierte Regeln mit hoher Priorität auszuführen, bei denen die vollständige Anforderung nicht zuerst gelesen werden muss.

Beispiel: Wenn Sie eine benutzerdefinierte Regel mit der Priorität 0 (der höchsten Priorität) festgelegt haben, um eine Anforderung mit der Kopfzeile xyz zuzulassen, wird die Anforderung zugelassen, bevor die maximale Größe erzwungen wird, selbst wenn die Größe der Anforderung größer ist als die maximale Anfragegröße

Untersuchung des Anforderungstexts

Die Web Application Firewall bietet eine Konfigurationseinstellung, mit der Sie die Prüfung des Anforderungstext aktivieren oder deaktivieren können. Standardmäßig ist die Überprüfung des Anforderungstexts aktiviert. Wenn die Inspektion des Anforderungstext deaktiviert ist, wertet die Web Application Firewall den Inhalt des Textes einer HTTP-Nachricht nicht aus. In solchen Fällen setzt die Web Application Firewall weiterhin die Web Application Firewall-Regeln für Header, Cookies und URI durch. Wenn in Web Application Firewalls mit Core Rule Set 3.1 (oder niedriger) die Überprüfung des Anforderungstext deaktiviert ist, ist das Feld für die maximale Größe des Anforderungstext nicht anwendbar und kann nicht gesetzt werden.

Für Policy Web Application Firewalls mit Core Rule Set 3.2 (oder neuer) kann die Prüfung des Anforderungstext unabhängig von der Durchsetzung der Größe des Anforderungstext und der Größenbeschränkung für den Datei-Upload aktiviert/deaktiviert werden. Darüber hinaus können Policy Web Application Firewalls, die mit Core Rule Set 3.2 (oder neuer) arbeiten, das Limit für die Überprüfung des Anforderungstext unabhängig von der maximalen Größe des Anforderungstext festlegen. Der Grenzwert für die maximale Inspektion des Anforderungstext teilt der Web Application Firewall mit, wie tief sie in eine Anforderung eindringen und Regeln anwenden soll. Wenn Sie einen niedrigeren Wert für dieses Feld festlegen, kann die Leistung der Web Application Firewall verbessert werden, aber es kann sein, dass ungeprüfte bösartige Inhalte Ihre Web Application Firewall passieren.

Bei älteren Web Application Firewalls, auf denen Core Rule Set 3.1 (oder niedriger) läuft, ermöglicht das Deaktivieren der Prüfung des Anforderungstext, dass Nachrichten, die größer als 128 KB sind, an die Web Application Firewall gesendet werden, aber der Nachrichtentext wird nicht auf Sicherheitslücken geprüft. Bei Policy Web Application Firewalls mit Core Rule Set 3.2 (oder neuer) können Sie das gleiche Ergebnis erzielen, indem Sie die Begrenzung des maximalen Anforderungstext deaktivieren.

Wenn Ihre Web Application Firewall eine Anforderung erhält, die das Größenlimit überschreitet, hängt das Verhalten vom Modus Ihrer Web Application Firewall und der Version des von Ihnen verwendeten verwalteten Regelsatzes ab.

  • Wenn sich Ihre Web Application Firewall-Richtlinie im Präventionsmodus befindet, protokolliert und blockiert die Web Application Firewall Anfragen und Datei-Uploads, die die Größenbeschränkungen überschreiten.
  • Wenn sich Ihre Web Application Firewall-Richtlinie im Erkennungsmodus befindet, prüft die Web Application Firewall den Body bis zu dem angegebenen Limit und ignoriert den Rest. Wenn der Content-Length Header vorhanden ist und das Datei-Upload-Limit überschreitet, ignoriert die Web Application Firewall den gesamten Body und protokolliert die Anforderung.

Problembehandlung

Wenn Sie ein Application Gateway v2 Web Application Firewall-Kunde sind, der Core Rule Set 3.2 oder höher einsetzt, und Sie Probleme mit Anfragen oder Datei-Uploads haben, die aufgrund der maximalen Größe abgelehnt werden, oder wenn Sie feststellen, dass Anfragen nicht vollständig geprüft werden, müssen Sie möglicherweise überprüfen, ob alle Werte korrekt eingestellt sind. Mithilfe der PowerShell oder der Azure-Befehlszeilenschnittstelle können Sie überprüfen, wie die einzelnen Werte eingestellt sind, und die Werte bei Bedarf aktualisieren.

Durchsetzung der Prüfung des Anforderungstext

  • PS: "RequestBodyCheck"
  • CLI: "request_body_check"
  • Legt fest, ob Ihre Web Application Firewall den Anforderungstext untersucht und verwaltete und benutzerdefinierte Regeln auf den Datenverkehr im Anforderungstext gemäß den Einstellungen Ihrer Web Application Firewall-Richtlinie anwendet.

Maximale Inspektionsgrenze für den Anforderungstext (KB)

  • PS: "RequestBodyInspectLimitInKB"
  • CLI: "request_body_inspect_limit_in_kb"
  • Steuert, wie tief die Web Application Firewall den Anforderungstext untersucht und verwaltete/angepasste Regeln anwendet. Im Allgemeinen sollten Sie hier den höchstmöglichen Wert einstellen, aber einige Kunden möchten vielleicht einen niedrigeren Wert einstellen, um die Leistung zu verbessern.

Maximale Begrenzung des Anforderungstext durchsetzen

  • PS: "RequestBodyEnforcement"
  • CLI: "request_body_enforcement"
  • Legen Sie fest, ob Ihre Web Application Firewall eine maximale Größe für Anforderung erzwingen soll. Wenn Sie diese Option deaktivieren, werden keine zu großen Anfragen zurückgewiesen.

Maximale Größe des Anforderungstext (KB)

  • PS: "MaxRequestBodySizeInKB"
  • CLI: "max_request_body_size_in_kb"
  • Legt fest, wie groß ein Anforderungstext sein darf, bevor die Web Application Firewall ihn wegen Überschreitung der maximalen Größe zurückweist.

Konfigurieren der maximalen Dateiuploadgröße

  • PS: "FileUploadEnforcement"
  • CLI: "file_upload_enforcement"
  • Legt fest, ob Ihre Web Application Firewall eine maximale Größe für Datei-Uploads erzwingen soll. Wenn diese Option deaktiviert ist, werden Datei-Uploads nicht als zu groß zurückgewiesen.

Maximale Größe der hochgeladenen Datei (MB)

  • PS: "FileUploadLimitInMB"
  • CLI: file_upload_limit_in_mb
  • Steuert, wie groß eine hochgeladene Datei sein darf, bevor die Web Application Firewall sie wegen Überschreitung der maximalen Größe zurückweist.

Hinweis

Die Option "Anforderungstext inspizieren" kontrollierte früher, ob der Anforderungstext inspiziert und Regeln angewandt wurden und ob eine maximale Größenbeschränkung für Anforderungstext erzwungen wurde. Jetzt gibt es dafür zwei separate Felder, die unabhängig voneinander ein- und ausgeschaltet werden können.

PowerShell

Sie können die folgenden PowerShell-Befehle verwenden, um Ihre Azure-Richtlinie zurückzugeben und ihre aktuellen Einstellungen einzusehen.

$plcy = Get-AzApplicationGatewayFirewallPolicy -Name <policy-name> -ResourceGroupName <resourcegroup-name>
$plcy.PolicySettings

Mit diesen Befehlen können Sie die Richtlinieneinstellungen auf die gewünschten Werte für die Felder Inspektionslimit und maximale Größenbegrenzung aktualisieren. Sie können "RequestBodyEnforcement" im folgenden Beispiel für einen der anderen Werte austauschen, die Sie aktualisieren möchten.

$plcy = Get-AzApplicationGatewayFirewallPolicy -Name <policy-name> -ResourceGroupName <resourcegroup-name>
$plcy.PolicySettings.RequestBodyEnforcement=false
Set-AzApplicationGatewayFirewallPolicy -InputObject $plcy

Befehlszeilenschnittstelle

Sie können Azure CLI verwenden, um die aktuellen Werte für diese Felder aus Ihren Azure-Richtlinieneinstellungen abzurufen und die Felder mit diesen Befehlen auf die gewünschten Werte zu aktualisieren.

az network application-gateway waf-policy update --name <WAF Policy name> --resource-group <WAF policy RG> --set policySettings.request_body_inspect_limit_in_kb='2000' policySettings.max_request_body_size_in_kb='2000' policySettings.file_upload_limit_in_mb='3500' --query policySettings -o table

Ausgabe:

FileUploadEnforcement    FileUploadLimitInMb    MaxRequestBodySizeInKb    Mode       RequestBodyCheck    RequestBodyEnforcement    RequestBodyInspectLimitInKB    State
-----------------------  ---------------------  ------------------------  ---------  ------------------  ------------------------  -----------------------------  -------
True                     3500                   2000                      Detection  True                True                      2000                           Enabled

Nächste Schritte