En bref. AWS WAF peut soumettre les requêtes répétées sans jeton à un défi au moyen de la règle de cumul de Bot Control de niveau ciblé.
Définition : AWS WAF peut soumettre une requête sans jeton valide à un défi (challenge), car le groupe de règles Bot Control de niveau ciblé comprend une action Challenge pour une condition portant sur un cumul de requêtes sans jeton. La règle qui examine chaque requête sans jeton utilise Count, tandis que la règle de cumul soumet le client à un défi après des requêtes répétées sans jeton accepté.
Points clés
- Dans sa référence des règles gérées Bot Control, AWS indique que
TGT_TokenAbsentinspecte les requêtes de bots non vérifiés dépourvues de jeton de défi valide et utilise l’action Count. - Le niveau de protection ciblé soumet les clients à un défi après cinq requêtes sans étiquette de jeton accepté. AWS précise dans ses consignes de blocage fondé sur les jetons qu’il ne bloque pas une requête individuelle sans jeton valide.
- Pour une action Challenge, AWS WAF arrête l’évaluation de la liste de contrôle d’accès web (web ACL) lorsque le jeton est absent, invalide ou expiré, selon la documentation sur le comportement des actions CAPTCHA et Challenge.
- AWS WAF utilise un jeton chiffré transmis par le client et en vérifie le contenu, comme l’explique la documentation sur l’utilisation des jetons dans la protection intelligente contre les menaces d’AWS WAF.
Quelle règle ciblée déclenche le défi ?
Les règles Bot Control de niveau ciblé portent un nom commençant par TGT_. AWS décrit ce niveau de protection comme ajoutant la détection des bots sophistiqués qui ne s’identifient pas et combinant la limitation de débit avec des CAPTCHA et des défis exécutés en arrière-plan dans le navigateur.
La règle qui examine directement l’absence de jeton est TGT_TokenAbsent. Elle inspecte les requêtes provenant de bots qu’AWS n’a pas vérifiés lorsqu’elles ne comportent pas de jeton de défi valide. Son action documentée est Count et elle ajoute l’étiquette awswaf:managed:aws:bot-control:TGT_TokenAbsent.
Le défi provient de TGT_VolumetricIpTokenAbsent. Cette règle examine le trafic de bots non vérifiés lorsqu’au moins 5 requêtes d’un même client au cours des 5 dernières minutes ne comportent pas de jeton de défi valide. Son action est Challenge. AWS précise aussi que la règle compte les requêtes sans jeton pour chaque adresse IP cliente : une requête ultérieure peut donc correspondre à la règle même si elle contient un jeton, lorsque le même client a récemment dépassé le seuil de requêtes sans jeton.
TGT_TokenAbsent: Count
TGT_VolumetricIpTokenAbsent: Challenge
Que fait l’action Challenge en l’absence de jeton ?
AWS explique qu’une règle Challenge ou CAPTCHA vérifie d’abord l’état du jeton et la durée d’immunité configurée. Un jeton valide est traité de façon similaire à l’action Count, puis l’évaluation se poursuit. Un jeton absent, invalide ou expiré arrête l’évaluation de la web ACL et empêche la requête d’atteindre sa destination.
Pour la réponse Challenge, AWS documente l’en-tête x-amzn-waf-action avec la valeur challenge et le statut HTTP 202 Request Accepted. Lorsque la requête accepte le HTML, la réponse comprend une page interstitielle JavaScript contenant un script de défi. Une fois le défi réussi, la page interstitielle initialise un jeton si le client n’en possède pas, puis le met à jour avec l’horodatage de résolution du défi.
x-amzn-waf-action: challenge
HTTP status: 202 Request Accepted
La requête qui déclenche la règle de cumul reçoit donc une réponse de défi. La règle peut déclencher l’action Challenge sans jeton valide préalable ; cette action demande au client d’en obtenir un ou de l’actualiser.
Quelles autres règles ciblées inspectent les jetons ?
La référence des règles gérées répertorie aussi des signaux fondés sur les jetons et des contrôles de réutilisation. TGT_VolumetricSession et TGT_VolumetricSessionMaximum inspectent le volume de requêtes de la session lorsqu’une requête possède un jeton ; leurs actions documentées sont CAPTCHA et Block. TGT_SignalAutomatedBrowser, TGT_SignalBrowserAutomationExtension et TGT_SignalBrowserInconsistency inspectent les données du jeton ou du navigateur et utilisent CAPTCHA.
Les règles de réutilisation des jetons examinent l’utilisation d’un même jeton depuis plusieurs emplacements au cours des 5 dernières minutes. Les familles IP, pays et ASN suivent chacune le même schéma d’actions : Low utilise Count, Medium utilise CAPTCHA et High utilise Block. La référence donne des seuils distincts pour chaque famille : plus de 2, 5 et 8 adresses IP pour la famille IP, plus de 1, 2 et 3 pays pour la famille pays, et plus de 1, 2 et 3 ASN pour la famille ASN.
Comment un site peut-il bloquer une requête sans jeton ?
AWS indique que le niveau ciblé de Bot Control déclenche un défi lorsque la condition de requêtes répétées est remplie et laisse une requête sans jeton valide sortir de l’évaluation du groupe de règles gérées. Une règle distincte peut s’exécuter immédiatement après le groupe géré et rechercher l’étiquette de jeton awswaf:managed:token:absent ; l’exemple d’AWS utilise une instruction LabelMatchStatement et une action Block. La politique relative aux jetons absents repose ainsi sur une règle distincte de la web ACL, plutôt que sur une interprétation de l’action Count de TGT_TokenAbsent.
Termes associés
- Quelles différences entre les niveaux d’inspection d’AWS WAF Bot Control ?
- Comment les règles AWS WAF Bot Control traitent-elles les robots vérifiés ?
- AWS WAF Bot Control : peut-on désactiver séparément les règles d’apprentissage automatique du niveau Targeted ?
- Quand une règle AWS WAF exécutée plus tard peut-elle reconnaître une étiquette ajoutée par une autre règle ?
Questions fréquentes
Chaque requête sans jeton reçoit-elle un défi ?
Non. AWS documente TGT_TokenAbsent avec l’action Count. Le niveau de protection ciblé applique Challenge au moyen de TGT_VolumetricIpTokenAbsent lorsque la condition documentée de requêtes répétées est remplie.
Que se passe-t-il après la résolution du défi ?
Après votre réponse réussie, la page interstitielle du défi initialise un jeton si vous n’en possédez pas déjà et le met à jour avec l’horodatage de résolution du défi. Une requête ultérieure peut alors présenter ce jeton pour qu’AWS WAF le vérifie.
Pouvez-vous bloquer immédiatement les requêtes sans jeton ?
Oui. AWS documente une règle distincte, placée après le groupe de règles gérées, qui recherche awswaf:managed:token:absent et utilise Block. L’exemple limite la règle au point de terminaison et à la méthode protégés.
Sources
- AWS, « AWS WAF Bot Control rule group », sans date
- AWS, « Blocking requests that don't have a valid AWS WAF token », sans date
- AWS, « CAPTCHA and Challenge action behavior », sans date
- AWS, « Token use in AWS WAF intelligent threat mitigation », sans date
Vérifiez comment une page se lit pour les moteurs de réponse. Ouvrir l’analyseur de score GEO