Direkt zum Inhalt

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

Lesedauer: 4 Minute
0

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

Kurzbeschreibung

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

  • Formulardaten
  • Binärdaten

Um Datei-Uploads mit bestimmten Erweiterungen (.pdf, .docx, .exe) einzuschränken, erstelle und konfiguriere eine benutzerdefinierte Web Access Control List (Web ACL)-Regel in AWS WAF.

Hinweis: AWS WAF überprüft die ersten 8 KB (8.192 Byte) des Anforderungstexts. Informationen zu größeren Textanfragen findest du unter Übergroße Webanforderungskomponenten in AWS WAF.

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 findest du unter Medientypen auf der Website der Internet Assigned Numbers Authority (IANA).

Um deinen POST-Anforderungstyp zu identifizieren, überprüfe den Content-Type-Wert im HTTP-POST-Header. Zum Beispiel:

Content-Type: multipart/form-data

Lies basierend auf deiner Content-Type-Ausgabe den entsprechenden Abschnitt, der deinem Header-Wert entspricht.

Erstelle eine Regel für Inhalte aus mehreren Teilen und Formulardaten

Führe die folgenden Schritte aus:

  1. Öffne die AWS WAF-Konsole.
  2. Wähle im Navigationsbereich AWS WAF aus.
  3. Wähle Ressourcen und Schutzpakete aus.
  4. Wähle dein Schutzpaket aus.
  5. Wähle in deinem ausgewählten Schutzpaket die Option Regeln aus.
  6. Wähle neben Regeln die Option Anzeigen und bearbeiten aus, um die mit deinem Schutzpaket verknüpften Regeln anzuzeigen oder zu ändern.
  7. Wähle im rechten Bereich für Regeln verwalten die Option Regeln hinzufügen aus.
  8. Wähle Neue Regel erstellen aus.
  9. Wähle Benutzerdefinierte Regel und dann Weiter aus.
  10. Wähle für Regeltyp die Option Benutzerdefinierte Regel und dann Weiter aus.
  11. Um die Regel einzurichten, konfiguriere die folgenden Werte:
    Wähle für Aktion die Option Blockieren für benutzerdefinierte Regeln aus.
    Gib unter Name einen Namen ein, um diese Regel zu identifizieren.
    Wähle für Wenn eine Anforderung die Option der Aussage entspricht. Fülle dann die folgenden Felder für die Aussage aus:
    Wähle für Prüfen JSON-Text aus.
    Wähle für den JSON-Übereinstimmungsbereich die Option Werte aus.
    Wähle unter Aktion für ungültige JSON-Textanfragen die für dich passende Option aus.
    Wähle unter Zu prüfender Inhalt die Option Vollständiger JSON-Inhalt aus.
    Wähle für Übereinstimmungstyp die Option Entspricht regulärem Ausdruck aus.
    Gib für Regulärer Ausdruck ein passendes Regex-Muster ein. Siehe folgendes Beispiel:
(?:.pdf|.doc|.docx|.ppt)
  1. (Optional) Füge für die Texttransformation eine Texttransformation hinzu oder belasse diese Felder als Keine.
  2. Wähle für Handhabung von Übergrößen die entsprechende Option für deinen Anwendungsfall aus.
  3. Wähle Regel erstellen aus.
  4. Wähle Speichern aus.

Erstelle eine Regel für Binärwerte

Führe die folgenden Schritte aus:

  1. Öffne die AWS WAF-Konsole.
  2. Wähle im Navigationsbereich AWS WAF aus.
  3. Wähle Ressourcen und Schutzpakete aus.
  4. Wähle dein Schutzpaket aus.
  5. Wähle in deinem ausgewählten Schutzpaket die Option Regeln aus.
  6. Wähle neben Regeln die Option Anzeigen und bearbeiten aus, um die mit deinem Schutzpaket verknüpften Regeln anzuzeigen oder zu ändern.
  7. Wähle im rechten Bereich für Regeln verwalten die Option Regeln hinzufügen aus.
  8. Wähle Neue Regel erstellen aus.
  9. Wähle Benutzerdefinierte Regel und dann Weiter aus.
  10. Wähle für Regeltyp die Option Benutzerdefinierte Regel und dann Weiter aus.
  11. Um die Regel einzurichten, konfiguriere die folgenden Werte:
    Wähle für Aktion die Option Blockieren für benutzerdefinierte Regeln aus.
    Gib unter Name einen Namen ein, um diese Regel zu identifizieren.
    Wähle für Wenn eine Anforderung die Option der Aussage entspricht aus.
    Fülle die folgenden Felder für die Aussage aus:
    Wähle für Prüfen die Option Einzelner Header aus.
    Gib als Header-Feldname Inhaltstyp ein.
    Wähle für Übereinstimmungstyp die Option Entspricht regulärem Ausdruck aus.
    Gib für Regulärer Ausdruck ein passendes Regex-Muster ein.
    Siehe folgendes Beispiel für .pdf- und .jpeg-Dateien:
(?:pdf|jpeg)
  1. (Optional) Füge für die Texttransformation eine Texttransformation hinzu oder belasse diese Felder als Keine.
  2. Wähle Regel erstellen aus.

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

AWS OFFICIALAktualisiert vor 9 Monaten