View a markdown version of this page

Verwenden von Texttransformationen in AWS WAF - AWS WAF, AWS Firewall Manager, AWS Shield Advanced, und AWS Shield Direktor für Netzwerksicherheit

Wir stellen ein neues Konsolenerlebnis vor für AWS WAF

Sie können die aktualisierte Oberfläche jetzt verwenden, um überall in der Konsole auf AWS WAF Funktionen zuzugreifen. Weitere Informationen finden Sie unter Arbeiten mit der Konsole.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden von Texttransformationen in AWS WAF

In diesem Abschnitt wird erklärt, wie Sie Transformationen bereitstellen, die vor der Prüfung der Anfrage angewendet werden AWS WAF müssen.

In Anweisungen, die nach Mustern suchen oder Einschränkungen festlegen, können Sie Transformationen angeben, die vor der Prüfung der Anfrage angewendet werden. AWS WAF Eine Transformation formatiert eine Webanforderung neu, um einige der unüblichen Formatierungen zu beseitigen, die Angreifer verwenden, um AWS WAF zu umgehen.

Wenn Sie dies mit der Auswahl der JSON-Text-Anforderungskomponente verwenden, wendet AWS WAF Ihre Transformationen nach dem Analysieren und Extrahieren der zu prüfenden Elemente aus dem JSON-Code an. Weitere Informationen finden Sie unter JSON-Text.

Wenn Sie mehr als eine Transformation bereitstellen, legen Sie auch die Reihenfolge fest, in der AWS WAF sie anwenden soll.

WCUs – Jede Texttransformation besteht aus 10 WCUs.

In der AWS WAF Konsole und der API-Dokumentation finden Sie an den folgenden Stellen auch Anleitungen zu diesen Einstellungen:

  • Rule Builder in der Konsole – Text transformation (Texttransformation). Diese Option ist verfügbar, wenn Sie Anforderungskomponenten verwenden.

  • API-Anweisungsinhalt – TextTransformations

Optionen für Texttransformationen

Jede Transformationsliste enthält die Konsolen- und API-Spezifikationen, gefolgt von der Beschreibung.

Base64 decode – BASE64_DECODE

AWS WAF dekodiert eine Base64-encoded Zeichenfolge.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF dekodiert eine Base64-encoded Zeichenfolge, verwendet jedoch eine fehlerverzeihende Implementierung, die ungültige Zeichen ignoriert.

Command line – CMD_LINE

Diese Option entschärft Situationen, in denen Angreifer möglicherweise einen Betriebssystem-Befehlszeilenbefehl eingeben und dabei ungewöhnliche Formatierungen verwenden, um einen Teil oder den gesamten Befehl zu verschleiern.

Verwenden Sie diese Option, um die folgenden Transformationen durchzuführen:

  • Löschen der folgenden Zeichen: \ " ' ^

  • Löschen von Leerzeichen vor den folgenden Zeichen: / (

  • Ersetzen der folgenden Zeichen durch ein Leerzeichen: , ;

  • Ersetzen mehrerer Leerzeichen durch ein Leerzeichen

  • Großbuchstaben (A-Z) in Kleinbuchstaben (a-z) umwandeln

Command line Unix – CMD_LINE_UNIX

Diese Option entschärft Situationen, in denen Angreifer möglicherweise einen Befehlszeilenbefehl eines Unix- oder Linux-Betriebssystems eingeben und dabei ungewöhnliche Formatierungen verwenden, um einen Teil oder den gesamten Befehl zu verschleiern.

Verwenden Sie diese Option, um die folgenden Transformationen durchzuführen:

  • Löschen der folgenden Zeichen: \ " '

  • Ersetzen Sie die folgenden Zeichen durch ein Leerzeichen: Tabulator \t (ASCII 9), Zeilenumbruch (ASCII 10), Zeilenumbruch \n (ASCII 13), vertikaler Tabulator \r (ASCII 11) und Formfeed (ASCII 12) \v \f

  • Ersetzen mehrerer Leerzeichen durch ein Leerzeichen

  • Entfernen Sie führende und nachfolgende Leerzeichen

  • Großbuchstaben (A-Z) in Kleinbuchstaben (a-z) umwandeln

Command line Windows – CMD_LINE_WIN

Diese Option verhindert Situationen, in denen Angreifer möglicherweise eine Befehlszeile oder einen Befehl des Windows-Betriebssystems PowerShell eingeben und dabei ungewöhnliche Formatierungen verwenden, um einen Teil oder den gesamten Befehl zu verschleiern.

Verwenden Sie diese Option, um die folgenden Transformationen durchzuführen:

  • Löschen der folgenden Zeichen: " ' ^ `

  • Löschen Sie Caret-Fortsetzungssequenzen, d. h. ein Caret, gefolgt von einem Zeilenumbruch \n oder einem Zeilenumbruch und einem Zeilenumbruch, als eine Einheit \r\n

  • Ersetzen Sie die folgenden Zeichen durch ein Leerzeichen: Tabulator \t (ASCII 9), Zeilenumbruch (ASCII 10), Zeilenumbruch \n (ASCII 13), vertikaler Tabulator \r (ASCII 11) und Formfeed (ASCII 12) \v \f

  • Ersetzen mehrerer Leerzeichen durch ein Leerzeichen

  • Entfernen Sie führende und nachfolgende Leerzeichen

  • Großbuchstaben (A-Z) in Kleinbuchstaben (a-z) umwandeln

  • Ersetzen Sie aufeinanderfolgende umgekehrte Schrägstriche durch einen einzelnen umgekehrten Schrägstrich. Einzelne umgekehrte Schrägstriche werden beibehalten, sodass Windows-Pfade wie c:\windows\system32\cmd.exe und UNC-Pfade erhalten bleiben.

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF komprimiert Leerzeichen, indem mehrere Leerzeichen durch ein Leerzeichen und die folgenden Zeichen durch ein Leerzeichen ersetzt werden (ASCII 32):

  • Formfeed (ASCII 12)

  • Registerkarte (ASCII 9)

  • Zeilenumbruch (ASCII 10)

  • Rückfahrt (ASCII 13)

  • Vertikaler Tabulator (ASCII 11)

  • Non-breaking Leerzeichen (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF dekodiert Zeichen, die mit den CSS 2.x-Escape-Regeln codiert wurden. syndata.html#characters Diese Funktion verwendet bei der DeCodierung bis zu zwei Bytes, sodass ASCII-Zeichen aufgedeckt werden können, die mit CSS-Codierung kodiert wurden und normalerweise nicht kodiert werden würden. Sie ist auch nützlich, um eine Umgehung zu verhindern, also eine Kombination aus einem Rückwärtsschrägstrich und nicht-hexadezimalen Zeichen. Beispielsweise ja\vascript für javascript.

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF dekodiert die folgenden ANSI C-Escape-Sequenzen:\a,,,\b,\f,,\n,\r,, \t \v\\, \xHH (hexadezimal) \? \'\", (oktal). \0OOO Ungültige Codierungen verbleiben in der Ausgabe.

Hex decode – HEX_DECODE

AWS WAF dekodiert eine Reihe von Hexadezimalzeichen in eine Binärdatei.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF ersetzt Zeichen, die im Hexadezimalformat &#xhhhh; oder Dezimalformat dargestellt werden, durch die entsprechenden Zeichen. &#nnnn;

AWS WAF ersetzt die folgenden HTML-encoded Zeichen durch unverschlüsselte Zeichen. Diese Liste verwendet die HTML-Kodierung in Kleinbuchstaben, aber die Behandlung unterscheidet beispielsweise nicht zwischen Groß- und Kleinschreibung &QuOt; und " wird genauso behandelt.

HTML-encoded Zeichen

ersetzt durch...

"

"

&

&

<

<

&gt;

>

&nbsp; oder &NonBreakingSpace;

geschütztes Leerzeichen, Dezimalzahl 160

&NewLine;

\n, Dezimalzahl 10

&Tab;

\t, Dezimalzahl 9

&lcub; oder &lbrace;

{

&verbar;, &vert; oder &VerticalLine;

|

&rcub; oder &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; oder &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; oder &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; oder &DiacriticalTilde;

~

&minus;

-

&lsqb; oder &lbrack;

[

&bsol;

\\

&rsqb; oder &rbrack;

]

&hat;

^

&lowbar; oder &underbar;

_

&grave; oder &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF dekodiert JavaScript Escape-Sequenzen. Falls sich im ASCII-Codebereich mit voller Zeichenbreite von \uHHHH ein FF01-FF5E-Code befindet, wird das höhere Byte verwendet, um das untere Byte zu erkennen und anzupassen. Wenn nicht, wird nur das niedrigere Byte verwendet und das höhere Byte wird auf Null gesetzt, was zu einem möglichen Datenverlust führt.

JS decode extended – JS_DECODE_EXT

AWS WAF dekodiert JavaScript Escape-Sequenzen wieJS_DECODE, verwendet aber eine fehlerverzeihende Implementierung, sodass Microsoft Windows-Dateipfade nicht verändert werden. JS_DECODE_EXTunterscheidet sich von JS_DECODE wie folgt:

  • Dekodieren Sie die Escapes\\, \/\', und \" indem Sie den Backslash entfernen und das nachfolgende Zeichen beibehalten.

  • Behalten Sie die einzelnen Escape-Zeichen\a,,,, und bei \b \f \n \r\t, \v indem Sie sowohl den umgekehrten Schrägstrich als auch das nachfolgende Zeichen beibehalten.

  • Bewahren Sie alle anderen unbekannten \C Escape-Sequenzen (z. B. \d oder\w) bei, indem Sie sowohl den umgekehrten Schrägstrich als auch das nachfolgende Zeichen beibehalten, sodass Windows-Dateipfade wie und nicht geändert werden. \default \windows

Lowercase – LOWERCASE

AWS WAF wandelt Großbuchstaben () in Kleinbuchstaben (A-Za-z) um.

MD5 – MD5

AWS WAF berechnet einen MD5-Hash aus den Daten in der Eingabe. Der berechnete Hash liegt in einer rohen binären Form vor.

None – NONE

AWS WAF prüft die Webanforderung so, wie sie empfangen wurde, ohne Texttransformationen.

Normalize path – NORMALIZE_PATH

AWS WAF normalisiert die Eingabezeichenfolge, indem mehrere Schrägstriche, Verzeichnis-Selbstverweise und Verzeichnisrückverweise entfernt werden, die sich nicht am Anfang der Eingabe befinden.

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF konvertiert Backslash-Zeichen in Schrägstriche und verarbeitet dann die resultierende Zeichenfolge mithilfe der Transformation. NORMALIZE_PATH

Remove comments characters – REMOVE_COMMENTS_CHAR

AWS WAF entfernt häufig verwendete Kommentarzeichen aus der Eingabe: /*, */, -- und #.

Remove nulls – REMOVE_NULLS

AWS WAF entfernt alle NULL Bytes aus der Eingabe.

Remove whitespace – REMOVE_WHITESPACE

AWS WAF entfernt alle Leerzeichen aus der Eingabe.

Replace comments – REPLACE_COMMENTS

AWS WAF ersetzt jedes Vorkommen eines C-style Kommentars (/*... */) durch ein einzelnes Leerzeichen. Mehrere aufeinanderfolgende Vorkommen werden nicht komprimiert. Nicht beendete Kommentare werden durch ein Leerzeichen (ASCII 0x20) ersetzt. Eigenständige Beendigungen von Kommentaren (*/) werdem nicht geändert.

Replace nulls – REPLACE_NULLS

AWS WAF ersetzt jedes NULL Byte in der Eingabe durch das Leerzeichen (ASCII 0x20).

SHA256 – SHA256

AWS WAF berechnet einen SHA-256 Hash aus den Daten in der Eingabe. Der berechnete Hash liegt in einer rohen binären Form vor.

SQL hex decode – SQL_HEX_DECODE

AWS WAF dekodiert SQL-Hex-Daten. AWS WAF Decodiert beispielsweise (0x414243) nach (ABC).

Trim – TRIM

AWS WAF entfernt Leerzeichen sowohl von der linken als auch von der rechten Seite der Eingabe.

Trim left – TRIM_LEFT

AWS WAF entfernt Leerzeichen von der linken Seite der Eingabe.

Trim right – TRIM_RIGHT

AWS WAF entfernt Leerzeichen von der rechten Seite der Eingabe.

Uppercase – UPPERCASE

AWS WAF wandelt alle Kleinbuchstaben (a-z) in Großbuchstaben () um. A-Z

URL decode – URL_DECODE

AWS WAF dekodiert einen Wert. URL-encoded

URL decode Unicode – URL_DECODE_UNI

WieURL_DECODE, aber mit Unterstützung für die Microsoft-specific %u Kodierung. Falls sich der Code im ASCII-Codebereich mit voller Zeichenbreite von FF01-FF5E befindet, wird das höhere Byte verwendet, um das untere Byte zu erkennen und anzupassen. Andernfalls wird nur das niedrigere Byte verwendet und das höhere Byte wird auf Null gesetzt.

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF konvertiert alle UTF-8 Zeichenfolgen in Unicode. Dies hilft bei der Normalisierung der Eingabe und minimiert Falschpositive und Falsch-Negative für Sprachen, die nicht Englisch sind.