Wie verwende ich AWS WAF, um Uploads bestimmter Dateierweiterungen zu blockieren?

Lesedauer: 5 Minute
0

Ich möchte das Hochladen von Dateien (HTTP-POST-Anfragen) mit bestimmten Erweiterungen auf meinen Webserver einschränken.

Kurzbeschreibung

Wenn Sie die POST-Daten einer HTTP-Anfrage analysieren, kann es sich um einen von zwei Typen von hochgeladenen Inhalten handeln:

  • Formulardaten
  • Binärdaten

Hinweis: AWS WAF überprüft die ersten 8 KB (8.192 Byte) des Anforderungstexts. Dies ist ein festes Servicelimit, das Sie nicht ändern können.

Gehen Sie wie folgt vor, um Datei-Uploads einzuschränken, die eine bestimmte Dateierweiterung verwenden, z. B. .pdf, .docx oder .exe:

1.Erstellen Sie eine benutzerdefinierte Regel für die Web-Zugriffssteuerungsliste (Web-ACL), um den Text der Anfrage zu überprüfen.

2.Erstellen Sie innerhalb der Regel eine Regex-Übereinstimmungsbedingung. Verwenden Sie dieses Regex-Muster, um die Regel so zu konfigurieren, dass mehrere Dateierweiterungen eingeschränkt werden.

3.Stellen Sie die Regelaktion auf BLOCKIEREN ein.

4.Definieren Sie die Regelpriorität so, dass diese benutzerdefinierte Regel eine höhere Priorität hat als jede Web-ACL-Regel, die diese Regel blockieren kann.

5.Stellen Sie sicher, dass die Regel die spezifische Dateierweiterung erfolgreich blockiert.

Lösung

Die Art des Inhalts identifizieren, den die POST-Daten verwenden

Die POST-Daten in HTTP-Anfragen verwenden normalerweise entweder Formulardaten oder Binärdaten.

  • Formulardaten umfassen alle Daten, die ein Benutzer auf einer Webseite (oder einem „HTML-Formular“) eingibt und die HTTP an einen Webserver sendet (oder „veröffentlicht“).
  • Eine binäre Payload ist alles, das keine Text-Payload ist. Eine binäre Payload kann beispielsweise eine JPEG-Datei, eine GZIP-Datei oder eine XML-Datei sein. Dies schließt generische Binärdaten ein, z. B. aus einer PDF-Anwendung, einem JPEG-Bild oder einer ZIP-Anwendung. Informationen zu allen Dateierweiterungstypen finden Sie unter Medientypen auf der Website der Internet Assigned Numbers Authority (IANA).

Um den Typ der POST-Anforderung zu identifizieren, sehen Sie sich den Content-Type-Wert des HTTP-POST-Headers an. Das folgende Beispiel enthält den Content-Type multipart/form-data:

Content-Type: multipart/form-data

Wenn der Header „Content-Type“ den Wert „multipart/form-data“ hat, gehen Sie wie folgt vor, um eine Regel zu erstellen:

1.Öffnen Sie die AWS WAF-Konsole.

2.Wählen Sie im Navigationsbereich unter AWS WAF die Option Web-ACLs aus.

3.Wählen Sie für Region die AWS-Region aus, in der Sie Ihre Web-ACL erstellt haben.
Hinweis: Wenn Sie Ihre Web-ACL für Amazon CloudFront einrichten, wählen Sie Global aus.

4.Wählen Sie Ihre Web-ACL aus. Wählen Sie dann die Registerkarte Regeln aus.

5.Wählen Sie die Dropdownliste Regeln hinzufügen und dann Meine eigenen Regeln und Regelgruppen hinzufügen aus.

6.Wählen Sie für den Regeltyp Regel-Builder aus.

7.Geben Sie unter Name einen Namen ein, um diese Regel zu identifizieren.

8.Wählen Sie für Typ die Option Reguläre Regel aus.

9.Wählen Sie für Wenn eine Anforderung die Option Entspricht der Aussage aus. Füllen Sie dann die folgenden Felder für die Aussage aus:
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ählen Sie unter Wie AWS WAF die Anfrage behandeln soll, wenn der JSON-Code im Anforderungstext ungültig ist, die entsprechende Option für Ihren Anwendungsfall aus.
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.
Geben Sie für Regulärer Ausdruck ein passendes Regex-Muster ein. Siehe folgendes Beispiel:

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

10.(Optional) Für die Texttransformation können Sie eine Texttransformation hinzufügen oder diese Felder als Keine belassen.

11.Wählen Sie für Handhabung von Übergrößen die entsprechende Option für Ihren Anwendungsfall aus.

12.Wählen Sie unter Aktion die Option Blockieren aus.

13.Wählen Sie Regel hinzufügen aus.

14.(Optional) Wählen Sie unter Regelpriorität festlegen Ihre Regel aus und verändern Sie ihre Priorität. AWS WAF verarbeitet die Regeln in der Reihenfolge, in der sie erscheinen. Weitere Informationen finden Sie unter Verarbeitungsreihenfolge von Regeln und Regelgruppen in einer Web-ACL.

15.Wählen Sie Speichern aus.

Stellen Sie sicher, dass die Regel wie erwartet funktioniert.

Wenn der Header „Content-Type“ einen Binärwert wie „application/pdf“ oder „application/ppt“ enthält, gehen Sie wie folgt vor, um eine Regel zu erstellen:

1.Öffnen Sie die AWS WAF-Konsole.

2.Wählen Sie im Navigationsbereich unter AWS WAF die Option Web-ACLs aus.

3.Wählen Sie für Region die AWS-Region aus, in der Sie Ihre Web-ACL erstellt haben.
Hinweis: Wenn Sie Ihre Web-ACL für Amazon CloudFront einrichten, wählen Sie Global aus.

4.Wählen Sie Ihre Web-ACL aus. Wählen Sie dann die Registerkarte Regeln aus.

5.Wählen Sie die Dropdownliste Regeln hinzufügen und dann Meine eigenen Regeln und Regelgruppen hinzufügen aus.

6.Wählen Sie für den Regeltyp Regel-Builder aus.

7.Geben Sie unter Name einen Namen ein, um diese Regel zu identifizieren.

8.Wählen Sie für Typ die Option Reguläre Regel aus.

9.Wählen Sie für Wenn eine Anforderung die Option Entspricht der Aussage aus. Füllen Sie dann die folgenden Felder für die Aussage aus:
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.
Geben Sie für Regulärer Ausdruck ein passendes Regex-Muster ein. Siehe folgendes Beispiel für .pdf- und **.jpeg **-Dateien:

(?:pdf|jpeg)   

10.(Optional) Für die Texttransformation können Sie eine Texttransformation hinzufügen oder diese Felder als Keine belassen.

11.Wählen Sie unter Aktion die Option Blockieren aus.

12.Wählen Sie Regel hinzufügen aus.

13.(Optional) Wählen Sie unter Regelpriorität festlegen Ihre Regel aus und verändern Sie ihre Priorität. AWS WAF verarbeitet die Regeln in der Reihenfolge, in der sie erscheinen. Weitere Informationen finden Sie unter Verarbeitungsreihenfolge von Regeln und Regelgruppen in einer Web-ACL.

14.Wählen Sie Speichern aus.

Stellen Sie sicher, dass die Regel wie erwartet funktioniert.

Hinweis: Um die Regel auf einen bestimmten Upload-URI-Pfad zu beschränken, verwenden Sie eine AND-Anweisung innerhalb der Web-ACL-Regel, die den Pfad überprüft.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr