¿Cómo puedo permitir las solicitudes de un bot bloqueado por el grupo de reglas administradas de AWS WAF Bot Control?

5 minutos de lectura
0

Quiero permitir las solicitudes de un bot que ha sido bloqueado por el grupo de reglas de AWS WAF Bot Control. ¿Cómo puedo permitir las solicitudes de un bot legítimo?

Descripción corta

Para permitir solicitudes de un bot bloqueado por el grupo de reglas de AWS WAF Bot Control, haga lo siguiente:

  1. Identifique la regla de Bot Control que bloquea las solicitudes de los registros de AWS WAF mediante una consulta a los registros de AWS WAF.
  2. Establezca la regla de Control de bots que bloquea el recuento de solicitudes.
  3. Cree una regla personalizada para que coincida con la etiqueta de la regla excluida y bloquee todas las solicitudes coincidentes excepto el bot que quiere permitir.
  4. Valide que se permita el tráfico de bots.

El grupo de reglas administradas de Control de bots verifica los bots con las direcciones IP de AWS WAF. Si ha verificado bots que se enrutan a través de un proxy o una CDN que no conserva la dirección IP del cliente al reenviar las solicitudes, debe permitir específicamente el bot.

Resolución

Identificar la regla de Bot Control que bloquea las solicitudes

Analice los registros de AWS WAF para identificar la regla de Bot Control que bloquea las solicitudes del bot requerido.

1.    Para analizar los registros de AWS WAF con Amazon Athena, cree una tabla para los registros de AWS WAF en Athena mediante la proyección de particiones. Para obtener instrucciones, consulte Creating the table for AWS WAF logs in Athena using partition projection (Creación de la tabla para registros de AWS WAF en Athena mediante proyección de particiones).

2.    Ejecute la siguiente consulta de Athena para encontrar los detalles de la solicitud bloqueada por el grupo de reglas de Control de bots:

Nota: Sustituya waf_logs por el nombre de la tabla. El intervalo de tiempo time > now() - interval '3' day puede sustituirse por el intervalo de tiempo 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 obtener consultas de Amazon Athena de muestra para filtrar registros durante un intervalo de tiempo específico, consulte Example queries for AWS WAF logs (Consultas de ejemplo para registros de AWS WAF).

3.    (Opcional) Para limitar aún más la búsqueda, agregue un filtro adicional en UserAgent mediante el operador AND de la cláusula Where. Para obtener una descripción de los campos de los registros de WAF, consulte Log Fields (Campos de registro). Por ejemplo, puede agregar el filtrokv['user-agent'] like 'Postman%' para acotar los resultados.

4.    Compruebe la columna matchedRule para identificar la regla que bloquea las solicitudes. Nota: Para obtener información adicional sobre las reglas de Bot Control, consulte Grupo de reglas de AWS WAF Bot Control.

Establecer la regla de Bot Control que bloquea el recuento de solicitudes

Edite el grupo Bot Control Rule (Regla de Bot Control) para establecer la regla que bloquea el recuento de solicitudes. Para configurar una regla para que cuente, consulte Setting rule actions to count in a rule group (Configurar acciones de regla para que cuenten en un grupo de reglas). Esto permite que la regla aplique su etiqueta a las solicitudes coincidentes y permita que el bot no esté bloqueado.

Crear una regla personalizada para que coincida con la etiqueta de la regla excluida y bloquear todas las solicitudes coincidentes excepto el bot que quiere permitir

Agregue una regla de coincidencia de etiquetas a la ACL web en función de la etiqueta de regla que bloquea la solicitud. La regla de coincidencia de etiquetas debe ir después del grupo de reglas gestionadas de Control de bots. Para obtener información sobre las etiquetas de grupos de reglas administradas de Control de bots, consulte Grupo de reglas de AWS WAF Bot Control.

Si una regla con la etiqueta de categoría bloquea la solicitud

Configure su regla personalizada para permitir un bot bloqueado específico. Importante: Reemplace las etiquetas de categoría y nombre de bot en la configuración de reglas por las etiquetas de categoría y nombre de bot de los resultados de la consulta de Athena.

Para todas las demás etiquetas de reglas

Cree una regla personalizada para crear una excepción para un agente de usuario bloqueado.
Importante: Reemplace la etiqueta de señal de bot y el valor de UserAgent en el campo SearchString de la configuración de reglas por la etiqueta de señal de bot y el valor de UserAgent de las etiquetas y UserAgent de los resultados de consultas de Athena.

Validar que el tráfico de bots esté permitido

Vuelva a comprobar los registros de AWS WAF para comprobar que el bot ya está permitido. Si el bot sigue bloqueado, repita el proceso anterior para identificar reglas adicionales que bloqueen las solicitudes.


Información relacionada

Falsos positivos con AWS WAF Bot Control

Ejemplos de AWS WAF Bot Control

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años