Pourquoi ma règle personnalisée AWS WAF ne fonctionne-t-elle pas ?

Dernière mise à jour : 12/07/2022

J'ai créé une règle AWS WAF personnalisée, mais elle ne fonctionne pas comme prévu. Que puis-je faire pour résoudre ce problème ?

Solution

Si votre règle AWS WAF personnalisée ne fonctionne pas comme prévu, vérifiez les points suivants :

  • Priorité d'une règle
  • Transformation du texte
  • Logique booléenne

Priorité d'une règle

Vérifiez que vous avez placé votre règle personnalisée sur la bonne priorité. Pour plus d'informations, consultez la section Ordre de traitement des règles et des groupes de règles dans une ACL Web.

Vous pouvez accéder à une règle par son nom dans le groupe de règles ou la liste ACL Web où elle est définie.

L'ordre d'évaluation des règles AWS WAF va de haut en bas, puis s'arrête à la première règle de terminaison Allow, Block ou CAPTCHA. Si votre demande correspond à l'une des règles de terminaison placées au-dessus de votre règle personnalisée, AWS WAF entreprendra l'action spécifiée dans cette règle. La demande ne sera pas évaluée par rapport à votre règle personnalisée. Pour plus d'informations, consultez la section Gestion de base des actions de règle et de groupe de règles dans une ACL Web.

Par exemple, imaginons que vous créez une règle d'autorisation personnalisée afin d'autoriser la demande bloquée par un groupe de règles gérées AWS (AMR). Vous devez placer votre règle personnalisée au-dessus (avec une priorité numérique inférieure) de l'AMR qui bloque la demande.

Vous pouvez gérer l'ordre de priorité via l'outil Rule Builder de la console AWS WAF, qui est disponible pour les listes ACL Web et les groupes de règles. Pour modifier l'ordre de priorité à l'aide de l'API AWS, utilisez les appels d'API UpdateWebACL et UpdateRuleGroup. Pour modifier l'ordre de priorité à l'aide de l'AWS CLI, utilisez les commandes update-web-acl et update-rule-group.

Transformation du texte

Si vous utilisez des transformations de texte dans votre règle personnalisée, vérifiez que vous les avez appliquées correctement. Pour plus d'informations, consultez la section Transformations de texte d'AWS WAF.

AWS WAF applique la transformation avant d'inspecter la demande. Si vous spécifiez plusieurs transformations, AWS WAF les traite dans l'ordre indiqué. Vous devez vérifier les transformations et leur ordre si vous en utilisez plusieurs dans votre règle personnalisée.

Par exemple, si vous avez créé une règle personnalisée pour effectuer un décodage Base64 et un décodage d'URL pour une chaîne dans l'argument de requête. AWS WAF effectue d'abord le décodage Base64 de la chaîne de requête dans la demande entrante. La chaîne consécutive au décodage Base64 est ensuite transformée davantage au moyen d'un décodage d'URL. Puis, la chaîne consécutive au décodage d'URL est inspectée par rapport à la chaîne que vous avez fournie dans la configuration de votre règle.

Logique booléenne

Si vous utilisez des instructions de règle logiques, vérifiez que la logique AND, OR ou NOT utilisée pour votre règle personnalisée est correcte. Pour plus d'informations, consultez la Liste des instructions de règle et suivez les instructions de la section Instructions de règles logiques.

Pour vérifier en utilisant la logique booléenne, considérez cet exemple :

Si vous créez une règle personnalisée qui correspond à une demande avec les critères suivants : l'URI de la demande est « /test » ET l'IP se trouve dans l'ensemble d'adresses IP X, alors Block.

Demande 1

Si l'URI de la demande est « /test » (valeur booléenne 1) ET que l'IP n'est PAS dans l'ensemble d'adresses IP X (valeur booléenne 0), alors les valeurs booléenne 1 ET booléenne 0 entraînent la valeur booléenne 0.

Cette demande ne correspondra pas à votre règle personnalisée.

Demande 2

Si l'URI de la demande n'est pas « /test » (valeur booléenne 0) ET que l'IP n'est PAS dans l'ensemble d'adresses IP X (valeur booléenne 0), alors les valeurs booléenne 0 ET booléenne 0 entraînent la valeur booléenne 0.

Cette demande ne correspondra pas à votre règle personnalisée.

Demande 3

Si l'URI de la demande est « /test » (valeur booléenne 1) ET que l'IP est dans l'ensemble d'adresses IP X (valeur booléenne 1), alors les valeurs booléenne 1 ET booléenne 1 entraînent la valeur booléenne 1.

Cette demande correspondra à votre règle personnalisée.


Cet article vous a-t-il été utile ?


Avez-vous besoin d'aide pour une question technique ou de facturation ?