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

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 administrados 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 administrados.

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 administrados 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 administrado 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 siga siendo evaluada por la ACL web.

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 administrado 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 una ACL web que utiliza el grupo de reglas administrado de la ATP. La 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:" }