Utilisation de transformations de texte dans AWS WAF - AWS WAF, AWS Firewall Manager, et AWS Shield Advanced

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 des transformations pour AWS WAF à appliquer avant d'inspecter la demande.

Dans les instructions qui recherchent des modèles ou définissent des contraintes, vous pouvez fournir des transformations pour AWS WAF à appliquer avant d'inspecter la demande. Une transformation reformate une requête Web afin d'éliminer une partie du formatage inhabituel utilisé par les attaquants pour tenter de contourner AWS WAF.

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

Si vous fournissez plusieurs transformations, vous définissez également la commande pour AWS WAF pour les appliquer.

WCUs— Chaque transformation de texte vaut 10WCUs.

Le AWS WAF la console et API la documentation fournissent également des instructions concernant 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.

  • APIcontenu de la déclarationTextTransformations

Options pour les transformations de texte

Chaque liste de transformation indique la console et les API spécifications, suivies d'une description.

Base64 decode – BASE64_DECODE

AWS WAF décode une chaîne codée en Base64.

Base64 decode extension – BASE64_DECODE_EXT

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

Command line – CMD_LINE

Cette option limite les situations dans lesquelles des attaquants pourraient 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

Compress whitespace – COMPRESS_WHITE_SPACE

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

  • Formfeed (ASCII12)

  • Onglet (ASCII9)

  • Nouvelle ligne (ASCII10)

  • Retour en calèche (ASCII13)

  • Onglet vertical (ASCII11)

  • Espace indestructible (ASCII160)

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 aider à découvrir des ASCII caractères codés à l'aide d'un CSS codage qui ne le serait généralement pas. 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 au format décimal &#nnnn; par les caractères correspondants.

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

HTML-caractère codé

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 situe dans la plage de ASCII code 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.

Lowercase – LOWERCASE

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

MD5 – MD5

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

None – NONE

AWS WAF inspecte la demande 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 les barres obliques multiples, les références automatiques de répertoire et les références arrières 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 directes, puis traite la chaîne résultante à l'aide de la transformation. NORMALIZE_PATH

Remove nulls – REMOVE_NULLS

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

Replace comments – REPLACE_COMMENTS

AWS WAF remplace chaque occurrence d'un commentaire de style C (/*... */) par un seul espace. Il ne compresse pas plusieurs occurrences consécutives. Il remplace les commentaires non terminés par un espace (ASCII0x20). Cela ne change rien à 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 (ASCII0x20).

SQL hex decode – SQL_HEX_DECODE

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

URL decode – URL_DECODE

AWS WAF décode une valeur URL codée.

URL decode Unicode – URL_DECODE_UNI

CommeURL_DECODE, mais avec le support du codage spécifique à Microsoft. %u Si le code se situe dans la plage de ASCII code pleine largeur deFF01-FF5E, l'octet le plus élevé 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.