Como permito solicitações de um bot bloqueado pelo grupo de regras gerenciadas do AWS WAF Bot Control?

Data da última atualização: 28/06/2022

Quero permitir solicitações de um bot que foi bloqueado pelo grupo de regras do AWS WAF Bot Control. Como faço para permitir solicitações de um bot legítimo?

Breve descrição

Para permitir solicitações de um bot bloqueada pelo Grupo de regras do AWS WAF Bot Control, faça o seguinte:

  1. Identifique a regra do Bot Control que está bloqueando as solicitações dos logs do AWS WAF consultando logs do AWS WAF.
  2. Defina a regra do Bot Control que está bloqueando as solicitações de contagem.
  3. Crie uma regra personalizada para corresponder ao rótulo da regra excluída e bloquear todas as solicitações correspondentes, exceto para o bot que você deseja permitir.
  4. Valide se o tráfego do bot é permitido.

O grupo de regras gerenciadas do Bot Control verifica bots usando os endereços IP do AWS WAF. Se você tiver verificado bots que realizam roteamentos por meio de um proxy ou de uma CDN que não preserva o endereço IP do cliente ao encaminhar as solicitações, deverá permitir especificamente o bot.

Resolução

Identificar a regra do Bot Control que está bloqueando as solicitações

Analise os logs do AWS WAF para identificar a regra do Bot Control que está bloqueando solicitações do bot necessário.

1.    Para analisar logs do AWS WAF usando o Amazon Athena, crie uma tabela para logs do AWS WAF no Athena usando a projeção de partições. Para obter instruções, consulte Criar a tabela para logs do AWS WAF no Athena usando a projeção de partições.

2.    Execute a seguinte consulta do Athena para encontrar os detalhes da solicitação bloqueada pelo grupo de regras do Bot Control:

Observação: substitua waf_logs pelo nome da tabela. O intervalo de tempo `time > now() - interval '3' day` pode ser substituído pelo seu intervalo de tempo especificado.
WITH waf_data AS
    (SELECT from_unixtime(waf.timestamp / 1000) as time,
    waf.terminatingRuleId,
    waf.action,
    waf.httprequest.clientip as clientip,
    waf.httprequest.requestid as requestid,
    waf.httprequest.country as country,
    rulegroup.terminatingrule.ruleid as matchedRule,
labels as Labels,
         map_agg(LOWER(f.name),
         f.value) AS kv
    FROM waf_logs waf,
    UNNEST(waf.httprequest.headers)
AS t(f), UNNEST(waf.rulegrouplist) AS t(rulegroup)
    WHERE rulegroup.terminatingrule.ruleid IS NOT NULL
    GROUP BY 1, 2, 3, 4, 5, 6, 7,8)
SELECT waf_data.time,
       waf_data.action,
       waf_data.terminatingRuleId,
       waf_data.matchedRule,
       waf_data.kv['user-agent'] as UserAgent,
waf_data.clientip,
       waf_data.country,
       waf_data.Labels
FROM waf_data
Where terminatingRuleId='AWS-AWSManagedRulesBotControlRuleSet' and time > now() - interval '3' day
ORDER BY time
DESC

Para conhecer consultas de amostras do Amazon Athena para filtrar registros para um intervalo de tempo especificado, consulte Exemplo de consultas para logs do AWS WAF.

3.    (Opcional) Para restringir ainda mais a sua pesquisa, adicione mais um filtro em UserAgent usando o operador AND na cláusula Where. Para obter uma descrição dos campos nos logs do WAF, consulte Campos de logs. Por exemplo, você pode adicionar o filtro kv['user-agent'] like 'Postman%' para restringir seus resultados.

4.    Verifique a coluna matchedRule para identificar a regra que está bloqueando as solicitações.
Observação:
para obter informações adicionais sobre regras do Bot Control, consulte Grupo de regras do AWS WAF Bot Control.

Defina a regra do Bot Control que está bloqueando as solicitações de contagem.

Edite o grupo de regras do Bot Control para definir a regra que está bloqueando as solicitações de contagem. Para definir uma regra de contagem, consulte Definir ações de regras para contagem em um grupo de regras. Isso permite que a regra aplique seu rótulo a solicitações correspondentes e permita o bot que não está bloqueado.

Crie uma regra personalizada para corresponder ao rótulo da regra excluída e bloquear todas as solicitações correspondentes, exceto para o bot que você deseja permitir

Adicione uma regra de correspondência de rótulo à sua ACL da Web com base no rótulo da regra que está bloqueando a solicitação. A regra de correspondência de rótulo deve vir após o grupo de regras gerenciadas do Bot Control. Para obter informações sobre rótulos de grupos de regras gerenciados do Bot Control, consulte Grupo de regras do AWS WAF Bot Control.

Se uma regra com o rótulo de categoria estiver bloqueando a solicitação

Configure sua regra personalizada para permitir um bot bloqueado específico.
Importante:
substitua os rótulos de categoria do bot e nome do bot na configuração da regra pelos rótulos de categoria do bot e nome do bot provenientes dos resultados da consulta do Athena.

Para todos os outros rótulos de regras

Crie uma regra personalizada para Criar uma exceção para um agente de usuário bloqueado.
Importante: substitua o rótulo de sinal do bot e o valor de UserAgent no campo SearchString na configuração da regra pelo rótulo de sinal do bot e o valor de UserAgent das colunas labels e UserAgent dos resultados da consulta do Athena.

Validar se o tráfego do bot é permitido

Verifique os logs do AWS WAF novamente para verificar se o bot agora está sendo permitido. Se o bot ainda estiver bloqueado, repita o processo anterior para identificar regras adicionais que estejam bloqueando as solicitações.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?