Por que a regra que criei para o AWS WAF não está funcionando?

Última atualização em: 12/07/2022

Eu criei uma regra personalizada para o AWS WAF, mas ela não está funcionando como eu esperava. O que posso fazer para resolver o problema?

Resolução

Se a regra personalizada para o AWS WAF não estiver funcionando conforme o esperado, verifique o seguinte:

  • Prioridade da regra
  • Transformação de texto
  • Lógica booleana

Prioridade da regra

Verifique se a regra personalizada que você criou possui a prioridade correta. Para obter mais informações, consulte Ordem de processamento de regras e grupos de regras em uma ACL da Web.

Você pode acessar uma regra pelo seu nome no grupo de regras ou na ACL da Web em que ela estiver definida.

A ordem de avaliação de regras do AWS WAF é decrescente, ou seja, vai de cima para baixo, e a primeira regra de encerramento correspondente é aplicada: Permitir, Bloquear ou CAPTCHA. Se a sua solicitação coincidir com uma das regras de encerramento de maior prioridade do que a sua regra personalizada, o AWS WAF executará a ação especificada nessa regra. Assim, a sua solicitação não será avaliada em relação à sua regra personalizada. Para obter mais informações, consulte a seção Introdução à execução de ações das regras e grupos de regras em uma ACL da Web.

Por exemplo, vamos supor que você quer criar uma regra de permissão personalizada para uma solicitação que é bloqueada por um grupo de regras gerenciadas da AWS (AMR). Você deve posicionar a sua regra personalizada acima (com uma prioridade numérica mais baixa) da regra AMR que bloquearia a solicitação.

Você pode gerenciar a ordem de prioridade por meio do Criador de regras, que fica no console do AWS WAF e está disponível para ACLs da web e grupos de regras. Para alterar a ordem de prioridade usando a API da AWS, use as chamadas de API UpdateWebACL e UpdateRuleGroup. Para alterar a ordem de prioridade usando a AWS CLI, use os comandos update-web-acl e update-rule-group.

Transformação de texto

Se você estiver usando transformações de texto em sua regra personalizada, verifique se ela está aplicada corretamente. Para obter mais informações, consulte a seção Transformações de texto do AWS WAF.

O AWS WAF aplica a transformação antes de inspecionar a solicitação. Se você especificar mais de uma transformação, o AWS WAF irá processá-las na ordem listada. Você deve verificar a transformação e a ordem da transformação se estiver usando várias transformações em sua regra personalizada.

Por exemplo, vamos dizer que você criou uma regra personalizada para executar Base64 decode e URL decode para uma string no argumento de consulta. O AWS WAF irá executar primeiro o Base64 decode da string de consulta na solicitação recebida. A string resultante do Base64 decode é posteriormente transformada através do URL decode. Em seguida, a string resultante do URL decode é inspecionada em relação à string que você forneceu na configuração da regra.

Lógica booleana

Se você estiver usando instruções de regra lógicas, verifique se a lógica AND, OR ou NOT que foram usadas para a sua regra estão corretas. Para obter mais informações, consulte a seção Lista de instruções de regra e leia a subseção instruções de regras lógicas.

Para verificar isso através da lógica booleana, considere o seguinte exemplo:

Você está criando uma regra personalizada que corresponde a uma solicitação com os seguintes critérios: a solicitação contém a URI “/test”, AND (e) o IP de origem está no conjunto de IPs X, portanto executar Bloquear.

Solicitação 1

Se a solicitação contiver a URI “/test” (Booleano 1) AND (e) o IP NOT (não) estiver no conjunto de IPs X (Booleano 0), então o Booleano 1 AND (e) o Booleano 0 retornam Booleano 0.

A sua regra personalizada não corresponderá à essa solicitação.

Solicitação 2

Se a solicitação não contiver a URI “/test” (Booleano 0) AND (e) o IPNOT (não) estiver no conjunto de IPs X (Booleano 0), então o Booleano 0 AND (e) o Booleano 0 retornam Booleano 0.

A sua regra personalizada não corresponderá à essa solicitação.

Solicitação 3

Se a solicitação contiver a URI “/test” (Booleano 1) AND (e) o IP estiver no conjunto de IPs X (Booleano 1), então o Booleano 1 AND (e) o Booleano 1 retornam Booleano 1.

A sua regra personalizada corresponderá à essa solicitação.


Este artigo foi útil?


Precisa de ajuda com faturamento ou suporte técnico?