View a markdown version of this page

Utilisation de transformations de texte dans AWS WAF - AWS WAF, AWS Firewall Manager, AWS Shield Advanced, et AWS Shield directeur de la sécurité réseau

Présentation d'une nouvelle expérience de console pour AWS WAF

Vous pouvez désormais utiliser l'expérience mise à jour pour accéder aux AWS WAF fonctionnalités n'importe où dans la console. Pour plus de détails, consultez la section Utilisation de la console.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Utilisation de transformations de texte dans AWS WAF

Cette section explique comment fournir les transformations AWS WAF à appliquer avant d'inspecter la demande.

Dans les instructions qui recherchent des modèles ou définissent des contraintes, vous pouvez indiquer les transformations AWS WAF à appliquer avant d'inspecter la demande. Les transformations de texte éliminent certaines mises en forme inhabituelles que les pirates informatiques utilisent afin de contourner AWS WAF.

Lorsque vous l'utilisez avec la sélection du composant de requête de corps JSON, elle AWS WAF applique vos transformations après avoir analysé et extrait les éléments à inspecter du JSON. Pour de plus amples informations, veuillez consulter corps JSON.

Si vous fournissez plusieurs transformations, vous définissez également l'ordre que AWS WAF doit leur appliquer.

WCU — Chaque transformation de texte correspond à 10 WCU.

La documentation de la AWS WAF console et de l'API fournit également des conseils pour ces paramètres aux emplacements suivants :

  • Générateur de règles sur la console — Transformation de texte. Cette option est disponible lorsque vous utilisez les composants de demande.

  • Contenu de la déclaration d'API TextTransformations

Options pour les transformations de texte

Chaque liste de transformations indique les spécifications de la console et de l'API, suivies de la description.

Base64 decode – BASE64_DECODE

AWS WAF décode une Base64-encoded chaîne.

Base64 decode extension – BASE64_DECODE_EXT

AWS WAF décode une Base64-encoded chaîne, mais utilise une implémentation indulgente qui ignore les caractères non valides.

Command line – CMD_LINE

Cette option permet d'atténuer les situations dans lesquelles les attaquants peuvent injecter une commande de ligne de commande du système d'exploitation et utiliser un formatage inhabituel pour masquer une partie ou la totalité de la commande.

Utilisez cette option pour exécuter les transformations suivantes :

  • Supprimer les caractères suivants : \ " ' ^

  • Supprimer les espaces avant les caractères suivants : / (

  • Remplacer les caractères suivants par un espace : , ;

  • Remplacer plusieurs espaces par un espace

  • Convertir les lettres majuscules A-Z, en minuscules, a-z

Command line Unix – CMD_LINE_UNIX

Cette option permet d'atténuer les situations dans lesquelles les attaquants peuvent injecter une commande de ligne de commande du système d'exploitation Unix ou Linux et utiliser un formatage inhabituel pour masquer une partie ou la totalité de la commande.

Utilisez cette option pour exécuter les transformations suivantes :

  • Supprimer les caractères suivants : \ " '

  • Remplacez les caractères suivants par un espace : tab \t (ASCII 9), nouvelle ligne \n (ASCII 10), chariot return (ASCII 13), onglet vertical \r (ASCII 11) et formfeed \v (ASCII 12) \f

  • Remplacer plusieurs espaces par un espace

  • Supprimer les espaces de début et de fin

  • Convertir les lettres majuscules A-Z, en minuscules, a-z

Command line Windows – CMD_LINE_WIN

Cette option permet d'atténuer les situations dans lesquelles les attaquants peuvent injecter une ligne de PowerShell commande ou une commande du système d'exploitation Windows et utiliser un formatage inhabituel pour masquer une partie ou la totalité de la commande.

Utilisez cette option pour exécuter les transformations suivantes :

  • Supprimer les caractères suivants : " ' ^ `

  • Supprimer les séquences de continuation de ligne du curseur, un caret suivi d'une nouvelle ligne \n ou d'un retour de chariot et d'une nouvelle ligne, en une seule unité \r\n

  • Remplacez les caractères suivants par un espace : tab \t (ASCII 9), nouvelle ligne \n (ASCII 10), chariot return (ASCII 13), onglet vertical \r (ASCII 11) et formfeed \v (ASCII 12) \f

  • Remplacer plusieurs espaces par un espace

  • Supprimer les espaces de début et de fin

  • Convertir les lettres majuscules A-Z, en minuscules, a-z

  • Remplacez les barres obliques inverses consécutives par une seule barre oblique inverse. Les barres obliques inverses uniques sont préservées, de sorte que les chemins Windows tels que les chemins UNC c:\windows\system32\cmd.exe restent intacts.

Compress whitespace – COMPRESS_WHITE_SPACE

AWS WAF compresse les espaces blancs en remplaçant plusieurs espaces par un seul espace et en remplaçant les caractères suivants par un espace (ASCII 32) :

  • Flux de formulaires (ASCII 12)

  • Onglet (ASCII 9)

  • Nouvelle ligne (ASCII 10)

  • Retour du chariot (ASCII 13)

  • Onglet vertical (ASCII 11)

  • Non-breaking espace (ASCII 160)

CSS decode – CSS_DECODE

AWS WAF décode les caractères codés à l'aide des règles d'échappement CSS 2.x. syndata.html#characters Cette fonction utilise jusqu'à deux octets dans le processus de décodage. Elle peut donc contribuer à découvrir les caractères ASCII qui ont été codés à l'aide d'un codage CSS et qui ne serait généralement pas codés. Elle est également utile pour contrer l'évasion, qui est une combinaison d'une barre oblique inversée et de caractères non hexadécimaux. Par exemple, ja\vascript ou javascript.

Escape sequences decode – ESCAPE_SEQ_DECODE

AWS WAF décode les séquences d'échappement ANSI C suivantes :\a,,,\b,\f,\n,,\r,\t,\v, \\ \?\', \xHH (hexadécimal)\", \0OOO (octal). Les encodages qui ne sont pas valides restent dans la sortie.

Hex decode – HEX_DECODE

AWS WAF décode une chaîne de caractères hexadécimaux en binaire.

HTML entity decode – HTML_ENTITY_DECODE

AWS WAF remplace les caractères représentés au format hexadécimal &#xhhhh; ou décimal &#nnnn; par les caractères correspondants.

AWS WAF remplace les HTML-encoded caractères suivants par des caractères non codés. Cette liste utilise un codage HTML en minuscules, mais la gestion ne tient pas compte des majuscules, par exemple, &QuOt; et est traitée de la " même manière.

HTML-encoded personnage

remplacé par...

"

"

&

&

<

<

&gt;

>

&nbsp; ou &NonBreakingSpace;

Espace insécable, décimale 160

&NewLine;

\n, décimal 10

&Tab;

\t, décimal 9

&lcub; ou &lbrace;

{

&verbar;, &vert; ou &VerticalLine;

|

&rcub; ou &rbrace;

}

&excl;

!

&num;

#

&dollar;

$

&percent; ou &percnt;

%

&apos;

\

&lpar;

(

&rpar;

)

&ast; ou &midast;

*

&plus;

+

&comma;

,

&period;

.

&sol;

/

&colon;

:

&semi;

;

&equals;

=

&quest;

?

&tilde; ou &DiacriticalTilde;

~

&minus;

-

&lsqb; ou &lbrack;

[

&bsol;

\\

&rsqb; ou &rbrack;

]

&hat;

^

&lowbar; ou &underbar;

_

&grave; ou &DiacriticalGrave;

`

JS decode – JS_DECODE

AWS WAF décode les séquences JavaScript d'échappement. Si un \uHHHH code se trouve dans la plage de codes ASCII pleine largeur deFF01-FF5E, l'octet le plus élevé est utilisé pour détecter et ajuster l'octet inférieur. Dans le cas contraire, seul l'octet inférieur est utilisé et l'octet supérieur est mis à zéro, ce qui peut entraîner une perte d'informations.

JS decode extended – JS_DECODE_EXT

AWS WAF décode les séquences d' JavaScript échappement telles queJS_DECODE, mais utilise une implémentation indulgente afin que les chemins de fichiers Microsoft Windows ne soient pas modifiés. JS_DECODE_EXTdiffère de JS_DECODE ce qui suit :

  • Décodez les échappements\\, \/\', et \" en supprimant la barre oblique inverse et en conservant le caractère suivant.

  • Préservez les échappements à caractère unique\a,\b,\f, \n \r\t, et \v en conservant à la fois la barre oblique inverse et le caractère suivant.

  • Préservez toute autre séquence d'\Céchappement non reconnue (par exemple \d ou\w) en conservant à la fois la barre oblique inverse et le caractère suivant, afin que les chemins de fichiers Windows tels que \default et \windows ne soient pas modifiés.

Lowercase – LOWERCASE

AWS WAF convertit les lettres majuscules (A-Z) en minuscules (a-z).

MD5 – MD5

AWS WAF calcule un hachage MD5 à partir des données de l'entrée. Le hachage calculé est au format binaire brut.

None – NONE

AWS WAF inspecte la requête Web telle qu'elle a été reçue, sans aucune transformation de texte.

Normalize path – NORMALIZE_PATH

AWS WAF normalise la chaîne d'entrée en supprimant plusieurs barres obliques, les autoréférences de répertoire et les références arrière de répertoire qui ne se trouvent pas au début de l'entrée.

Normalize path Windows – NORMALIZE_PATH_WIN

AWS WAF convertit les barres obliques inverses en barres obliques avant, puis traite la chaîne résultante à l'aide de la transformation. NORMALIZE_PATH

Remove comments characters – REMOVE_COMMENTS_CHAR

AWS WAF supprime les caractères de commentaire courants de l'entrée : /*, */, -- et #.

Remove nulls – REMOVE_NULLS

AWS WAF supprime tous les NULL octets de l'entrée.

Remove whitespace – REMOVE_WHITESPACE

AWS WAF supprime tous les caractères d'espacement de l'entrée.

Replace comments – REPLACE_COMMENTS

AWS WAF remplace chaque occurrence d'un C-style commentaire (/*... */) par un seul espace. Il ne compresse pas plusieurs occurrences consécutives. Il remplace les commentaires non terminés par un espace (ASCII 0x20). Cela ne modifie pas la fin autonome d'un commentaire (*/).

Replace nulls – REPLACE_NULLS

AWS WAF remplace chaque NULL octet de l'entrée par le caractère espace (ASCII 0x20).

SHA256 – SHA256

AWS WAF calcule un SHA-256 hachage à partir des données de l'entrée. Le hachage calculé est au format binaire brut.

SQL hex decode – SQL_HEX_DECODE

AWS WAF décode les données hexadécimales SQL. Par exemple, AWS WAF décode (0x414243) en (ABC).

Trim – TRIM

AWS WAF supprime les espaces sur les côtés gauche et droit de l'entrée.

Trim left – TRIM_LEFT

AWS WAF supprime les espaces sur le côté gauche de l'entrée.

Trim right – TRIM_RIGHT

AWS WAF supprime les espaces sur le côté droit de l'entrée.

Uppercase – UPPERCASE

AWS WAF convertit toutes les lettres minuscules (a-z) en majuscules (). A-Z

URL decode – URL_DECODE

AWS WAF décode une URL-encoded valeur.

URL decode Unicode – URL_DECODE_UNI

CommeURL_DECODE, mais avec prise en charge de l'Microsoft-specific %uencodage. Si le code se trouve dans la plage de codes ASCII dans toute sa largeur de FF01-FF5E, l'octet supérieur est utilisé pour détecter et ajuster l'octet inférieur. Sinon, seul l'octet inférieur est utilisé et l'octet supérieur est mis à zéro.

UTF8 to Unicode – UTF8_TO_UNICODE

AWS WAF convertit toutes les séquences de UTF-8 caractères en Unicode. Cela permet de normaliser la saisie et de minimiser les faux positifs et les faux négatifs pour les langues autres que l'anglais.