Bloqueo de solicitudes que no tienen un token AWS WAF válido - AWS WAF, AWS Firewall Manager, AWS Shield Advanced y director de seguridad de red AWS Shield

Presentamos una nueva experiencia de consola para AWS WAF

Ahora puede usar la experiencia actualizada para acceder a las funciones de AWS WAF desde cualquier parte de la consola. Para obtener más información, consulta Trabajo con la experiencia de consola actualizada.

Bloqueo de solicitudes que no tienen un token AWS WAF válido

En esta sección, se explica cómo bloquear las solicitudes de inicio de sesión a las que les faltan sus tókenes cuando utilice el SDK para móviles de AWS WAF.

Cuando se utilizan los grupos de reglas administradas de AWS de amenazas inteligentes AWSManagedRulesACFPRuleSet, AWSManagedRulesATPRuleSet y AWSManagedRulesBotControlRuleSet, los grupos de reglas invocan la administración de tókenes de AWS WAF para evaluar su estado en las solicitudes web y etiquetar las solicitudes en consecuencia.

nota

El etiquetado de los tokens solo se aplica a las solicitudes web que se evalúan mediante uno de estos grupos de reglas administradas.

Para obtener información sobre el etiquetado que aplica la administración de los tókenes, consulte la sección anterior, Tipos de etiquetas de token en AWS WAF.

Luego, los grupos de reglas administradas de mitigación de amenazas inteligentes gestionan los requisitos de los tokens de la siguiente manera:

  • La regla AllRequests de AWSManagedRulesACFPRuleSet está configurada para ejecutar la acción Challenge contra todas las solicitudes y bloquear de forma efectiva las que no tengan la etiqueta de token accepted.

  • AWSManagedRulesATPRuleSet bloquea las solicitudes que tienen la etiqueta de token rejected, pero no bloquea las solicitudes con la etiqueta de token absent.

  • El nivel de protección específica de AWSManagedRulesBotControlRuleSet desafía a los clientes después de enviar cinco solicitudes sin una etiqueta de token accepted. No bloquea una solicitud individual que no tenga un token válido. El nivel de protección común del grupo de reglas no administra los requisitos de los tokens.

Para obtener más información sobre los grupos de reglas de amenazas inteligentes, consulte Grupo de reglas de prevención contra fraude en la creación de cuentas (ACFP) de control de fraudes de AWS WAF, Grupo de reglas de Prevención contra apropiación de cuentas (ATP) del control de fraudes de AWS WAF y Grupo de reglas de control de bots de AWS WAF.

Para bloquear las solicitudes a las que les faltan tokens cuando se utiliza el grupo de reglas administradas de control de bots o ATP

Con los grupos de reglas de control de bots y ATP, es posible que una solicitud sin un token válido salga de la evaluación del grupo de reglas y que sea el paquete de protección (ACL web) el que continúe con la evaluación.

Para bloquear todas las solicitudes a las que les falte su token o cuyo token haya sido rechazado, agregue una regla que se ejecute inmediatamente después del grupo de reglas administradas para capturar y bloquear las solicitudes que el grupo de reglas no gestione por usted.

A continuación, se muestra un ejemplo de lista de JSON de un paquete de protección (ACL web) que utiliza el grupo de reglas administradas de la ATP. El paquete de protección (ACL web) tiene una regla adicional para capturar la etiqueta awswaf:managed:token:absent y gestionarla. La regla limita su evaluación a las solicitudes web que se dirigen al punto de conexión de inicio de sesión para que coincidan con el alcance del grupo de reglas de la ATP. La regla agregada aparece en negrita.

{ "Name": "exampleWebACL", "Id": "55555555-6666-7777-8888-999999999999", "ARN": "arn:aws:wafv2:us-east-1:111111111111:regional/webacl/exampleWebACL/55555555-4444-3333-2222-111111111111", "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesATPRuleSet", "Priority": 1, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesATPRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesATPRuleSet": { "LoginPath": "/web/login", "RequestInspection": { "PayloadType": "JSON", "UsernameField": { "Identifier": "/form/username" }, "PasswordField": { "Identifier": "/form/password" } }, "ResponseInspection": { "StatusCode": { "SuccessCodes": [ 200 ], "FailureCodes": [ 401, 403, 500 ] } } } } ] } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesATPRuleSet" } }, { "Name": "RequireTokenForLogins", "Priority": 2, "Statement": { "AndStatement": { "Statements": [ { "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:token:absent" } } }, { "ByteMatchStatement": { "SearchString": "/web/login", "FieldToMatch": { "UriPath": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "STARTS_WITH" } }, { "ByteMatchStatement": { "SearchString": "POST", "FieldToMatch": { "Method": {} }, "TextTransformations": [ { "Priority": 0, "Type": "NONE" } ], "PositionalConstraint": "EXACTLY" } } ] } }, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "RequireTokenForLogins" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "exampleWebACL" }, "Capacity": 51, "ManagedByFirewallManager": false, "RetrofittedByFirewallManager": false, "LabelNamespace": "awswaf:111111111111:webacl:exampleWebACL:" }