Como bloquear solicitações sem um token do AWS WAF válido - AWS WAF, AWS Firewall Manager, AWS Shield Advanced, e diretor AWS Shield de segurança de rede

Apresentando uma nova experiência de console para AWS WAF

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Consulte mais detalhes em Trabalhando com a experiência atualizada do console.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como bloquear solicitações sem um token do AWS WAF válido

Esta seção explica como bloquear solicitações de login que não têm seus tokens ao usar o SDK AWS WAF móvel.

Quando você usa os grupos de regras AWS gerenciadas de ameaças inteligentesAWSManagedRulesACFPRuleSet, e AWSManagedRulesATPRuleSetAWSManagedRulesBotControlRuleSet, os grupos de regras invocam o gerenciamento de AWS WAF tokens para avaliar o status do token de solicitação da web e rotular as solicitações adequadamente.

nota

A rotulagem de token é aplicada somente às solicitações da web que você avalia usando um desses grupos de regras gerenciadas.

Para obter informações sobre a rotulagem que o gerenciamento de token aplica, consulte a seção anterior, Tipos de rótulos simbólicos em AWS WAF.

Os grupos de regras gerenciadas de mitigação de ameaças inteligentes, então, lidam com os requisitos de token da seguinte forma:

  • A regra AllRequests de AWSManagedRulesACFPRuleSet está configurada para executar a ação Challenge em todas as solicitações, bloqueando efetivamente qualquer uma que não tenha o rótulo de token accepted.

  • O AWSManagedRulesATPRuleSet bloqueia as solicitações que têm o rótulo de token rejected, mas não bloqueia as solicitações com o rótulo de token absent.

  • O nível de proteção direcionada do AWSManagedRulesBotControlRuleSet desafia os clientes depois que eles enviam cinco solicitações sem um rótulo de token accepted. Ele não bloqueia uma solicitação individual que não tenha um token válido. O nível de proteção comum do grupo de regras não gerencia os requisitos de token.

Para obter detalhes adicionais sobre os grupos de regras de ameaças inteligentes, consulte AWS WAF Grupo de regras de prevenção de fraudes (ACFP) para criação de contas de controle de fraudes, AWS WAF Grupo de regras de prevenção de aquisição de contas (ATP) de controle de fraudes e AWS WAF Grupo de regras do Bot Control.

Para bloquear solicitações sem tokens ao usar o grupo de regras gerenciadas do Controle de Bots ou do ATP

Com os grupos de regras do Bot Control e do ATP, é possível que uma solicitação sem um token válido saia da avaliação do grupo de regras e continue sendo avaliada pelo pacote de proteção ou pela ACL da web.

Para bloquear todas as solicitações sem token ou cujo token foi rejeitado, adicione uma regra a ser executada imediatamente após o grupo de regras gerenciadas para capturar e bloquear solicitações que o grupo de regras não processa para você.

Veja a seguir um exemplo de listagem JSON para um pacote de proteção ou Web ACL que usa o grupo de regras gerenciadas ATP. O pacote de proteção ou Web ACL tem uma regra adicional para capturar o awswaf:managed:token:absent rótulo e manipulá-lo. A regra restringe sua avaliação às solicitações da web que vão para o endpoint de login, de acordo com o escopo do grupo de regras do ATP. A regra adicionada está listada em negrito.

{ "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:" }