Direkt zum Inhalt

Wie erlaube ich explizit Datei-Uploads, die eine AWS WAF-Regel blockiert, ohne die Regel auszuschließen?

Lesedauer: 5 Minute
0

Ich möchte Benutzern den Upload von Dateien mit bestimmten Dateierweiterungen ermöglichen, ohne die aktuelle AWS-WAF-Konfigurationsregel blockieren zu müssen.

Kurzbeschreibung

Beim Upload von HTTP-Dateien handelt es sich in der Regel um einen der folgenden Typen:

  • Formulardaten: Daten, die als Teil mehrteiliger Formulardaten von Website-Formularen an APIs gesendet werden.
  • Binärdaten: Eine Datei, die etwas anderes als eine Text-Payload ist. Die Binärdatei kann eine JPEG-Datei, eine GZip-Datei oder eine PDF-Datei sein.

Um herauszufinden, warum AWS WAF eine POST-Anfrage blockiert, lies die allgemeinen Regeln, die Datei-Uploads blockieren. Wenn eine allgemeine Regel den Upload nicht blockiert, überprüfe die zusätzlichen Optionen zum Zulassen blockierter Dateien.

Die folgenden Regeln blockieren häufig Datei-Uploads:

  • CrossSiteScripting_BODY
  • SQLi_BODY
  • SizeRestrictions_BODY
  • Benutzerdefinierte Regeln, die den Anfrage-BODY auswerten

Lösung

Ermittele, welche Regel die Datei-Uploads blockiert

Gehe wie folgt vor, um zu ermitteln, welche Regel den Datei-Upload blockiert:

1.    Öffne die AWS-WAF-Konsole.

2.    Überprüfe die Stichproben-Webanfragen. Die gesampelten Anfragen enthalten sowohl Informationen über die Regel, die die Anfrage blockiert, als auch über die HTTP-Anfragekomponenten.

3.    Suche auf der Seite Übersicht unter Regel innerhalb der Regelgruppe nach den HTTP-Anfragekomponenten. Die Komponenten ähneln den folgenden Beispielen:

Regel innerhalb der Regelgruppe

awswaf:managed:aws:core-rule-set:CrossSiteScripting_Body

Anfrage

`POST /upload`  
`User-Agent: PostmanRuntime/7.30.0 Accept: */* Host: example.amazonaws.com Connection: keep-alive Content-Type: multipart/form-data; boundary=--------------------------421232031360350156757252 Content-Length: 4060737 `

4.   Überprüfe die umfassenden Protokolle von AWS WAF auf terminatingRuleMatchDetails.

Hinweis: Das Feld terminatingRuleMatchDetails wird nur für SQLi\ _BODY- und CrossSiteScripting\ _BODY-Angriffe ausgefüllt.

Den Inhaltstyp der POST-Daten identifizieren

Um den Inhaltstyp zu identifizieren, überprüfe den HTTP-Header in den POST-Daten auf Inhaltstyp. Im vorherigen Beispiel ist der Inhaltstyp multipart/form-data.

Inhalt der Formulardaten

Führe für den Inhalt der Formulardaten, die multipart/form-data als Header-Wert enthalten, die folgenden Schritte aus:

1.Öffnen Sie die AWS WAF-Konsole.

2.    Wähle im Navigationsbereich unter AWS WAF die Option Web-ACLs.
Hinweis: Die Standardauswahl für Region ist USA Ost (Nord-Virginia). Wähle die AWS-Region, in der du die Web-ACL erstellt hast. Wähle Global, wenn die Web-ACL für Amazon CloudFront eingerichtet ist.

3.    Wähle die Web-ACL.

4.    Wähle auf der Registerkarte Regeln Regeln hinzufügen und dann Eigene Regeln und Regelgruppen hinzufügen.

5.    Wähle auf dem Bildschirm Regel hinzufügen unter Regeltyp die Option Regel-Builder.
Gib unter Name einen Namen ein, um diese Regel zu identifizieren.
Wähle für Typ die Option Reguläre Regel.
Wähle für Wenn eine Anforderung die Option Entspricht der Aussage.
Wählen Sie für Prüfen die Option Text aus.
Wählen Sie als Inhaltstyp JSON aus.
Wählen Sie für den JSON-Übereinstimmungsbereich die Option Werte aus.
Wähle unter Wie AWS WAF die Anfrage behandeln soll, wenn der JSON-Code im Anforderungstext ungültig ist, die angemessene Option für deinen Fall.
Wählen Sie unter Zu prüfender Inhalt die Option Vollständiger JSON-Inhalt aus.
Wählen Sie für Übereinstimmungstyp die Option Entspricht regulärem Ausdruck aus.
Füge für Regulärer Ausdruck das folgende Beispiel-Regex-Muster ein:

(?:.pdf|.doc|.docx|.ppt)

(Optional) Wähle für Texttransformation eine Texttransformation oder Keine. Weitere Informationen findest du unter Texttransformationen.
Wähle für Handhabung von Übergrößen die für die Konfiguration geeignete Option. Weitere Informationen findest du unter Umgang mit übergroßen Webanforderungskomponenten in AWS WAF.
Wähle unter Aktion die Option Zulassen. Weitere Informationen findest du unter Regelaktion.

6.    Wähle Regel hinzufügen.

7.    Wähle unter Regelpriorität festlegen die Regel aus und verschiebe sie auf eine höhere Priorität als die Regel, die die Anfrage blockiert. AWS WAF bewertet die Regeln gemäß der festgelegten Priorität. Weitere Informationen findest du unter Verarbeitungsreihenfolge von Regeln und Regelgruppen in einer Web-ACL.

8.    Wähle Speichern. Stelle sicher, dass die Regeln wie erwartet funktionieren.

Inhalt der Binärdaten

Führe für Inhalte der Binärdaten, die einen ähnlichen Wert wie application/pdf oder application/ppt für den Header-Wert haben, die folgenden Schritte aus:

1.Öffnen Sie die AWS WAF-Konsole.

2.    Wähle im Navigationsbereich unter AWS WAF die Option Web-ACLs.
Hinweis: Die Standardauswahl für Region ist USA Ost (Nord-Virginia). Wähle die AWS-Region, in der du die Web-ACL erstellt hast. Wähle Global, wenn die Web-ACL für Amazon CloudFront eingerichtet ist.

3.    Wähle die Web-ACL.

4.    Wähle auf der Registerkarte Regeln Regeln hinzufügen und dann Eigene Regeln und Regelgruppen hinzufügen.

5.    Wähle auf dem Bildschirm Regel hinzufügen unter Regeltyp die Option Regel-Builder.
Gib unter Name einen Namen ein, um die Regel zu identifizieren.
Wähle für Typ die Option Reguläre Regel.
Wähle für Wenn eine Anforderung die Option Entspricht der Aussage.
Wählen Sie für Prüfen die Option Einzelner Header aus.
Geben Sie als Header-Feldname Inhaltstyp ein.
Wählen Sie für Übereinstimmungstyp die Option Entspricht regulärem Ausdruck aus.
Füge für Regulärer Ausdruck das folgende Beispiel-Regex-Muster ein:

(?:pdf|jpeg)

(Optional) Wähle für Texttransformation eine Texttransformation oder Keine. Weitere Informationen findest du unter Texttransformationen.
Wähle unter Aktion die Option Zulassen. Weitere Informationen findest du unter Regelaktion.

6.    Wähle Regel hinzufügen.

7.    Wähle unter Regelpriorität festlegen die Regel aus und verschiebe sie auf eine höhere Priorität als die Regel, die die Anfrage blockiert. AWS WAF bewertet die Regeln gemäß der festgelegten Priorität. Weitere Informationen findest du unter Verarbeitungsreihenfolge von Regeln und Regelgruppen in einer Web-ACL.

8.    Wähle Speichern. Stelle sicher, dass die Regel wie erwartet funktioniert.

Hinweis: Um die Regel auf einen bestimmten Upload-URI-Pfad zu beschränken, verwende eine AND-Anweisung innerhalb der Web-ACL-Regel.

Ähnliche Informationen

Wie aktiviere ich die AWS-WAF-Protokollierung und sende Protokolle an CloudWatch, Amazon S3 oder Kinesis Data Firehose?

AWS OFFICIALAktualisiert vor 3 Jahren