Como usar endereços IP encaminhados no AWS WAF - AWS WAF, AWS Firewall Manager, e AWS Shield Advanced

Como usar endereços IP encaminhados no AWS WAF

Esta seção se aplica às instruções de regras que usam o endereço IP de uma solicitação da web. Por padrão, o AWS WAF usa o endereço IP da origem da solicitação da web. No entanto, se uma solicitação da web passar por um ou mais proxies ou balanceadores de carga, a origem da solicitação da web conterá o endereço do último proxy, e não o endereço de origem do cliente. Nesse caso, o endereço do cliente de origem geralmente é encaminhado em outro cabeçalho HTTP. Esse cabeçalho normalmente é X-Forwarded-For (XFF), mas pode ser diferente.

Instruções de regra que usam endereços IP

As instruções de regra que usam endereços IP são as seguintes:

  • Correspondência de conjunto de IPs: Inspeciona o endereço IP em busca de uma correspondência com os endereços definidos em um conjunto de IPs.

  • Correspondência geográfica: Usa o endereço IP para determinar o país e a região de origem e corresponde o país de origem com uma lista de países.

  • Como usar instruções de regras baseadas em intervalos: Pode agregar solicitações por seus endereços IP para garantir que nenhum endereço IP individual envie solicitações em intervalos muito altos. Você pode usar a agregação de endereços IP sozinha ou em combinação com outras chaves de agregação.

Você pode instruir o AWS WAF a usar um endereço IP encaminhado para qualquer uma dessas instruções de regra, seja do cabeçalho X-Forwarded-For ou de outro cabeçalho HTTP, em vez de usar a origem da solicitação da web. Para obter detalhes sobre como fornecer as especificações, consulte a orientação para os tipos individuais de instrução de regra.

nota

Se o cabeçalho especificado não estiver presente na solicitação, o AWS WAF não aplicará a regra à solicitação Web.

Comportamento de fallback

Quando usa o endereço IP encaminhado, você indica que o status de correspondência a ser atribuído à solicitação da Web por AWS WAF se a solicitação não tiver um endereço IP válido na posição especificada:

  • Correspondência: tratar a solicitação Web como correspondente à instrução da regra. O AWS WAF aplica a ação da regra a essa solicitação.

  • Sem correspondência: tratar a solicitação da Web como não correspondente à instrução de regra.

Endereços IP usados no Controle de Bots do AWS WAF

O grupo de regras gerenciadas do Controle de Bots verifica os bots usando os endereços IP do AWS WAF. Se você usa o Controle de Bots e verificou que os bots são roteados por meio de um proxy ou balanceador de carga, é necessário permitir explicitamente que eles usem uma regra personalizada. Por exemplo, você pode configurar uma regra personalizada de correspondência de conjuntos de IP que usa endereços IP encaminhados para detectar e permitir que seus bots sejam verificados. Você pode usar a regra para personalizar seu gerenciamento de bots de várias maneiras. Para obter informações e exemplos, consulte Como proteger seus aplicativos contra bots com o Controle de Bots no AWS WAF.

Considerações gerais sobre o uso de endereços IP encaminhados

Antes de usar um endereço IP encaminhado, observe as seguintes advertências gerais:

  • Um cabeçalho pode ser modificado por proxies ao longo do caminho, e os proxies podem tratar o cabeçalho de maneiras diferentes.

  • Os invasores podem alterar o conteúdo do cabeçalho na tentativa de contornar as inspeções do AWS WAF.

  • O endereço IP dentro do cabeçalho pode estar incorreto ou ser inválido.

  • O cabeçalho que você especifica pode não estar presente em uma solicitação.

Considerações sobre o uso de endereços IP encaminhados com o AWS WAF

A lista a seguir descreve os requisitos e as advertências para o uso de endereços IP encaminhados no AWS WAF:

  • Para qualquer regra única, você pode especificar um cabeçalho para o endereço IP encaminhado. A especificação do cabeçalho não diferencia maiúsculas de minúsculas.

  • Para instruções de regras baseadas em intervalos, nenhuma instrução de escopo aninhada herda a configuração de IP encaminhada. Especifique a configuração para cada instrução que usa um endereço IP encaminhado.

  • Para regras de correspondência geográfica e baseadas em taxas, o AWS WAF usa o primeiro endereço no cabeçalho. Por exemplo, se um cabeçalho contiver 10.1.1.1, 127.0.0.0, 10.10.10.10, o AWS WAF usa 10.1.1.1

  • Para correspondência de conjunto de IP, você indica se deseja corresponder ao primeiro, ao último ou a qualquer endereço no cabeçalho. Se você especificar algum, o AWS WAF inspeciona todos os endereços no cabeçalho em busca de uma correspondência, até 10 endereços. Se o cabeçalho tiver mais de 10 endereços IP, o AWS WAF inspecionará os últimos 10.

  • Os cabeçalhos que contêm vários endereços devem usar um separador de vírgula entre os endereços. Se uma solicitação usar um separador diferente de uma vírgula, o AWS WAF considerará os endereços IP no cabeçalho incorretos.

  • Se os endereços IP dentro do cabeçalho estiverem incorretos ou forem inválidos, o AWS WAF designa a solicitação da web como compatível ou não com a regra, de acordo com o comportamento de fallback especificado na configuração de IP encaminhado.

  • Se o cabeçalho especificado não estiver presente na solicitação, o AWS WAF não aplicará a regra à solicitação em nenhuma hipótese. Isso significa que o AWS WAF não aplica a ação de regra e não aplica o comportamento de fallback.

  • Uma instrução de regra que usa um cabeçalho IP encaminhado para o endereço IP não usará o endereço IP informado pela origem da solicitação da web.

Práticas recomendadas para usar endereços IP encaminhados com o AWS WAF

Ao usar endereços IP encaminhados, siga as seguintes práticas recomendadas:

  • Considere cuidadosamente todos os estados possíveis dos cabeçalhos de sua solicitação antes de ativar a configuração de IP encaminhado. Talvez seja necessário usar mais de uma regra para obter o comportamento desejado.

  • Para inspecionar vários cabeçalhos de IP encaminhados ou inspecionar a origem da solicitação da web e um cabeçalho de IP encaminhado, use uma regra para cada fonte de endereço IP.

  • Para bloquear solicitações da web que tenham um cabeçalho inválido, defina a ação de regra para bloquear e defina o comportamento de fallback para que a configuração de IP encaminhado corresponda.

Exemplo de JSON para endereços IP encaminhados

A seguinte instrução de correspondência geográfica corresponde somente se o cabeçalho X-Forwarded-For contiver um IP cujo país de origem seja US:

{ "Name": "XFFTestGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestGeo" }, "Statement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }

A seguinte regra baseada em intervalos agrega solicitações com base no primeiro IP no cabeçalho X-Forwarded-For. A regra conta somente as solicitações que correspondem à instrução de correspondência geográfica aninhada e bloqueia somente as solicitações que correspondem à instrução de correspondência geográfica. A instrução de correspondência geográfica aninhada também usa o cabeçalho X-Forwarded-For para determinar se o endereço IP indica um país de origem de US. Em caso afirmativo, ou se o cabeçalho estiver presente, mas malformado, a instrução de correspondência geográfica retornará uma correspondência.

{ "Name": "XFFTestRateGeo", "Priority": 0, "Action": { "Block": {} }, "VisibilityConfig": { "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true, "MetricName": "XFFTestRateGeo" }, "Statement": { "RateBasedStatement": { "Limit": "100", "AggregateKeyType": "FORWARDED_IP", "ScopeDownStatement": { "GeoMatchStatement": { "CountryCodes": [ "US" ], "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } }, "ForwardedIPConfig": { "HeaderName": "x-forwarded-for", "FallbackBehavior": "MATCH" } } } }