Exemplo de ACFP: resposta personalizada para credenciais comprometidas - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

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

Exemplo de ACFP: resposta personalizada para credenciais comprometidas

Por padrão, a verificação de credenciais realizada pelo AWSManagedRulesACFPRuleSet do grupo de regras trata as credenciais comprometidas rotulando e bloqueando a solicitação. Para obter detalhes sobre o grupo de regras e o comportamento das regras, consulte AWS WAF Grupo de regras de prevenção de fraudes (ACFP) para criação de contas de controle de fraudes.

Para informar ao usuário que as credenciais da conta que ele forneceu foram comprometidas, você pode fazer o seguinte:

  • Substituir a regra SignalCredentialCompromised por Count:Isso faz com que a regra conte e rotule somente as solicitações correspondentes.

  • Adicione uma regra de correspondência de rótulo com tratamento personalizado:Configure essa regra para corresponder ao rótulo do ACFP e para realizar seu tratamento personalizado.

As listagens de web ACL a seguir mostram o grupo de regras gerenciadas do ACFP do exemplo anterior, com a ação de regra SignalCredentialCompromised substituída para contar. Com essa configuração, quando esse grupo de regras avalia qualquer solicitação da web que usa credenciais comprometidas, ele rotula a solicitação, mas não a bloqueia.

Além disso, a web ACL agora tem uma resposta personalizada chamada aws-waf-credential-compromised e uma nova regra chamada AccountSignupCompromisedCredentialsHandling. A prioridade da regra é uma configuração numérica maior que a do grupo de regras, portanto, ela é executada após o grupo de regras na avaliação da web ACL. A nova regra corresponde a qualquer solicitação com o rótulo de credenciais comprometidas do grupo de regras. Quando a regra encontra uma correspondência, ela aplica a ação Block à solicitação com o corpo de resposta personalizado. O corpo de resposta personalizado fornece informações ao usuário final de que suas credenciais foram comprometidas e propõe uma ação a ser tomada.

{ "Name": "compromisedCreds", "Id": "... ", "ARN": "arn:aws:wafv2:us-east-1:111122223333:regional/webacl/compromisedCreds/...", "DefaultAction": { "Allow": {} }, "Description": "", "Rules": [ { "Name": "AWS-AWSManagedRulesACFPRuleSet", "Priority": 0, "Statement": { "ManagedRuleGroupStatement": { "VendorName": "AWS", "Name": "AWSManagedRulesACFPRuleSet", "ManagedRuleGroupConfigs": [ { "AWSManagedRulesACFPRuleSet": { "CreationPath": "/web/signup/submit-registration", "RegistrationPagePath": "/web/signup/registration", "RequestInspection": { "PayloadType": "JSON", "UsernameField": { "Identifier": "/form/username" }, "PasswordField": { "Identifier": "/form/password" }, "EmailField": { "Identifier": "/form/email" }, "PhoneNumberFields": [ { "Identifier": "/form/country-code" }, { "Identifier": "/form/region-code" }, { "Identifier": "/form/phonenumber" } ], "AddressFields": [ { "Identifier": "/form/name" }, { "Identifier": "/form/street-address" }, { "Identifier": "/form/city" }, { "Identifier": "/form/state" }, { "Identifier": "/form/zipcode" } ] }, "EnableRegexInPath": false } } ], "RuleActionOverrides": [ { "Name": "SignalCredentialCompromised", "ActionToUse": { "Count": {} } } ] } }, "OverrideAction": { "None": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AWS-AWSManagedRulesACFPRuleSet" } }, { "Name": "AccountSignupCompromisedCredentialsHandling", "Priority": 1, "Statement": { "LabelMatchStatement": { "Scope": "LABEL", "Key": "awswaf:managed:aws:acfp:signal:credential_compromised" } }, "Action": { "Block": { "CustomResponse": { "ResponseCode": 406, "CustomResponseBodyKey": "aws-waf-credential-compromised", "ResponseHeaders": [ { "Name": "aws-waf-credential-compromised", "Value": "true" } ] } } }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "AccountSignupCompromisedCredentialsHandling" } } ], "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "compromisedCreds" }, "Capacity": 51, "ManagedByFirewallManager": false, "LabelNamespace": "awswaf:111122223333:webacl:compromisedCreds:", "CustomResponseBodies": { "aws-waf-credential-compromised": { "ContentType": "APPLICATION_JSON", "Content": "{\n \"credentials-compromised\": \"The credentials you provided have been found in a compromised credentials database.\\n\\nTry again with a different username, password pair.\"\n}" } } }