Come posso consentire le richieste provenienti da un bot bloccato dal gruppo di regole gestito di AWS WAF Bot Control?

Ultimo aggiornamento: 28/06/2022

Voglio consentire le richieste da un bot che è stato bloccato dal gruppo di regole AWS WAF Bot Control. Come posso consentire le richieste di un bot legittimo?

Breve descrizione

Per consentire le richieste provenienti da un bot bloccato dal gruppo di regole di AWS WAF Bot Control, procedi come segue:

  1. Identifica la regola di Bot Control che blocca le richieste dai registri di AWS WAF interrogando i registri di AWS WAF.
  2. Imposta la regola di Bot Control che blocca il conteggio delle richieste.
  3. Crea una regola personalizzata per soddisfare la corrispondenza con l'etichetta della regola esclusa e per bloccare tutte le richieste corrispondenti, con l'eccezione del bot che desideri consentire.
  4. Verifica che il traffico bot sia consentito.

Il gruppo di regole gestito di Bot Control verifica i bot utilizzando gli indirizzi IP di AWS WAF. Se hai bot verificati che instradano attraverso un proxy o una CDN che non conserva l'indirizzo IP del client durante l'inoltro delle richieste, devi consentire specificamente il bot.

Risoluzione

Identificare la regola di Bot Control che blocca le richieste

Analizza i registri di AWS WAF per identificare la regola di Bot Control che blocca le richieste provenienti dal bot richiesto.

1.    Per analizzare i registri di AWS WAF utilizzando Amazon Athena, crea una tabella per i registri di AWS WAF in Athena utilizzando la proiezione delle partizioni. Per istruzioni, consulta la sezione Creazione della tabella per i registri di AWS WAF in Athena utilizzando la proiezione delle partizioni.

2.    Esegui la seguente query Athena per trovare i dettagli della richiesta bloccata dal gruppo di regole di Bot Control:

Nota: sostituisci waf_logs con il nome della tua tabella. L'intervallo di tempo `time > now () - interval '3' day` può essere sostituito con l'intervallo di tempo specificato.
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

Per vedere delle query di esempio di Amazon Athena per filtrare i record per un intervallo di tempo specificato, consulta la sezione Query di esempio per i registri di AWS WAF.

3.    (Facoltativo) Per restringere ulteriormente la ricerca, aggiungi un filtro ulteriore su UserAgent utilizzando l'operatore AND nella clausola Where. Per una descrizione dei campi nei registri WAF, consulta la sezione Campi dei registri. Ad esempio, puoi aggiungere il filtro kv ['user-agent'] like 'Postman%' per restringere i risultati.

4.    Controlla la colonna matchedRule per identificare la regola che sta bloccando le richieste.
Nota:
per ulteriori informazioni sulle regole di Bot Control, consulta la sezione Gruppo di regole di AWS WAF Bot Control.

Impostare la regola di Bot Control che blocca il conteggio delle richieste

Modifica il gruppo di regole di Bot Control per impostare la regola che blocca il conteggio delle richieste. Per impostare una regola per il conteggio, consulta la sezione Impostazione delle operazioni delle regole per il conteggio in un gruppo di regole. Ciò consente alla regola di applicare la propria etichetta alle richieste corrispondenti e di consentire il bot che non è bloccato.

Creare una regola personalizzata per soddisfare la corrispondenza con l'etichetta della regola esclusa e per bloccare tutte le richieste corrispondenti, con l'eccezione del bot che si desidera consentire

Aggiungi un'etichetta corrispondente alla regola alla tua ACL Web in base all'etichetta della regola che sta bloccando la richiesta. L'etichetta corrispondente alla regola deve essere successiva al gruppo di regole gestito da Bot Control. Per informazioni sulle etichette dei gruppi di regole gestite da Bot Control, consulta la sezione Gruppo di regole di AWS WAF Bot Control.

Se una regola con l'etichetta di categoria sta bloccando la richiesta

Configura la tua regola personalizzata per consentire un bot bloccato specifico.
Importante:
sostituisci le etichette della categoria e del nome del bot nella configurazione della regola con le etichette della categoria del bot e del nome del bot dai risultati della query Athena.

Per tutte le altre etichette delle regole

Crea una regola personalizzata per creare un'eccezione per un agente utente bloccato.
Importante: sostituisci l'etichetta del segnale del bot e il valore UserAgent nel campo SearchString nella configurazione della regola con l'etichetta del segnale del bot e il valore UserAgent dalle colonne labels (etichette) e UserAgent dei risultati delle query di Athena.

Verificare che il traffico bot sia consentito

Controlla nuovamente i registri di AWS WAF per verificare che il bot sia ora consentito. Se il bot è ancora bloccato, ripeti la procedura precedente per identificare le regole aggiuntive che bloccano le richieste.


Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?