¿Cómo puedo mitigar los ataques DDoS con AWS WAF?

13 minutos de lectura
0

¿Cómo puedo usar AWS WAF para ayudar a prevenir los ataques de denegación de servicio distribuido (DDoS)?

Descripción corta

Losataques DDoS son intentos de un atacante de interrumpir la disponibilidad de los sistemas objetivo.

Para los ataques a la capa de infraestructura, puede usar los servicios de AWS, como Amazon CloudFront y Elastic Load Balancing (ELB), para proporcionar protección automática contra DDoS. Para obtener más información, consulte las prácticas recomendadas de AWS para la resiliencia de DDoS.

Para los ataques a la capa de aplicación, puede usar AWS WAF como principal mitigación. Las listas de control de acceso web (ACL web) de AWS WAF minimizan los efectos de un ataque DDoS en la capa de aplicación. Para ello, haga lo siguiente:

  • Usar reglas basadas en tasas.
  • Revise las reglas basadas en tasas existentes y considere reducir el umbral de límite de velocidad para bloquear las solicitudes incorrectas.
  • Consulte los registros de AWS WAF para recopilar información específica sobre actividades no autorizadas.
  • Cree una regla de coincidencia geográfica para bloquear las solicitudes incorrectas que se originan en un país que no se prevea para su empresa.
  • Cree una regla de coincidencia de conjuntos de IP para bloquear las solicitudes incorrectas en función de las direcciones IP.
  • Cree una regla de coincidencia de expresiones regulares para bloquear las solicitudes incorrectas.

Resolución

Usar reglas basadas en tasas

Puede crear reglas basadas en tasas específicas de URI para proteger su aplicación web contra los ataques DDoS. Para obtener más información, consulte Las tres reglas basadas en tasas más importantes de AWS WAF.

Cree una regla basada en tarifas generales desde la consola de AWS WAF

Una regla basada en tarifas generales le permite establecer un umbral para el número de solicitudes que las IP pueden realizar a su aplicación web.

  1. Abra la consola de AWS WAF.
  2. Seleccione la web ACL (ACL web) que no tenga definida una RBR y, a continuación, seleccione Rate-based rule(Regla basada en tasas).
  3. Ingrese un nombre para su regla.
  4. Introduzca un límite de tasa. El límite de velocidad es la cantidad máxima de solicitudes permitidas en un período de cinco minutos desde una sola dirección IP. Una vez alcanzado este límite, la acción de regla basada en tasas se aplica a la dirección IP. Cuando las solicitudes de la dirección IP caen por debajo del límite, la acción se interrumpe.
    Nota: El umbral de límite de velocidad es una representación del número de solicitudes de una sola dirección IP que se consideran demasiadas y potencialmente maliciosas. De lo contrario, podría bloquear las solicitudes válidas. Si no está seguro de qué límite establecer, se recomienda configurar la acción de la regla para que cuente y supervise su patrón de solicitudes.
  5. Para que la dirección IP se utilice como límite de velocidad, seleccione Source IP address (Dirección IP de origen) o IP address in header (Dirección IP en el encabezado).

IP address in header (Dirección IP en el encabezado): cuando una solicitud llega a través de una CDN u otra red proxy, la dirección IP de origen identifica al proxy y la dirección IP original se envía en un encabezado. Tenga cuidado al utilizar la opción IP addresss in header (Dirección IP en el encabezado), ya que los proxies pueden gestionar los encabezados de manera incoherente. Además, los encabezados se pueden modificar para evitar la inspección.

Source IP address (Dirección IP de origen): en Criterios para contar las solicitudes en el límite de velocidad, elija count requests that match the criteria of a rule statement(contar las solicitudes que coincidan con los criterios de una declaración de regla). 6. Establezca la acción de regla para contar o bloquear las solicitudes de las direcciones IP mientras sus recuentos de solicitudes superen el límite. La aplicación y la eliminación de la acción de regla pueden tener efecto uno o dos minutos después del cambio de la tasa de solicitud de la dirección IP. 7. Seleccione Add rule (Agregar regla). 8. Seleccione Next (Siguiente).

Para obtener información sobre cómo crear una declaración de reglas basada en tasas, consulte Declaración de reglas basada en tasas.

Cree una regla basada en tasas específica de URI desde la consola de AWS WAF

  1. Abra la consola de AWS WAF.
  2. Seleccione la ACL web que no tenga definida una regla basada en tasas y, a continuación, seleccione Rate-based rule (Regla basada en tasas).
  3. Ingrese un nombre para su regla.
  4. Introduzca un límite de tasa.
  5. Para que la dirección IP se utilice como límite de velocidad, seleccione Source IP address (Dirección IP de origen) o I****P address in header (Dirección IP en el encabezado).
  6. En Criteria to count request towards rate limit (Criterios para contar las solicitudes respecto al límite de tasa), elija Only consider requests that match the criteria in a rule statement (Considerar solo las solicitudes que coincidan con los criterios de una sentencia de regla).
  7. Cree la declaración con las siguientes variables:
    En Inspect (Examinar), seleccione URI path (Ruta de URI).
    En Match type (Tipo de coincidencia), seleccione Exactly matches string (Coincide con exactitud con la cadena).
    En String to match (Cadena para que coincida), escriba /login (/registro). Puede seleccionar el URI que sea específico de su aplicación.
    En Text transformation (Transformación de texto), déjelo como None (Ninguno).
  8. Establezca la acción de regla para contar o bloquear las solicitudes de las direcciones IP mientras sus recuentos de solicitudes superen el límite.
  9. Elija Add rule (Agregar regla).
  10. Elija Next (Siguiente).

Revise las reglas basadas en tasas existentes y considere reducir el umbral de límite de velocidad para bloquear las solicitudes incorrectas

Para modificar una regla basada en tasas existente en la consola:

  1. Abra la consola de AWS WAF.
  2. Seleccione la Web ACL y la regla basada en tasas existente.
  3. Reduzca el umbral del límite de velocidad según sea necesario.
  4. Configure la acción de regla como Block (Bloquear).
  5. Elija Save rule (Guardar regla).
  6. Elija Next (Siguiente).

Para obtener más información, consulte Declaración de regla basada en tasas.

Considere reducir el alcance de las solicitudes que su regla basada en tarifas rastrea y cuenta

Para reducir el alcance de las solicitudes que AWS WAF rastrea y cuenta, utilice una declaración de reducción del alcance dentro de la declaración basada en tasas. A continuación, AWS WAF cuenta las solicitudes que coinciden con la declaración de alcance reducido.

Ejemplo

En función de las solicitudes recientes de un atacante en los Estados Unidos, se crea una regla basada en tasas con la siguiente declaración de reducción del alcance:

  1. Una declaración de coincidencia geográfica que especifica las solicitudes que se originan en los Estados Unidos.
  2. Una declaración de coincidencia de cadena que busca en el encabezado Agente Usuario la cadena Badbot.

Suponga que ha establecido un límite de tasa de 1000. Para cada dirección IP, AWS WAF cuenta las solicitudes que cumplen los criterios de ambas declaraciones anidadas. Las solicitudes que no cumplan con ambos estados de cuenta no se cuentan. Si el recuento de una dirección IP supera las 1000 solicitudes en un intervalo de 5 minutos, la acción de la regla se activa en esa dirección IP.

Para agregar una declaración de alcance reducido mediante este ejemplo a la regla basada en tasas de la consola, haga lo siguiente:

  1. Abra la consola de AWS WAF.
  2. Seleccione la Web ACL y la regla basada en tasas existente.
  3. En Criteria to count requests towards rate limit (Criterios cuente las solicitudes para el límite de tasa), elija only requests that match the criteria in rule statement (solo las solicitudes que coincidan con los criterios de la sentencia)
  4. Cuente solo las solicitudes que coincidan con la siguiente declaración:
    Si una solicitud coincide con todas las declaraciones (AND)
    Declaración 1
    Examinar: seleccione Originates from a country in (Procede de un país en).
    Códigos de país: Seleccione United States-US (Estados Unidos, EE.UU).
    Dirección IP que se utilizará para limitar la velocidad: seleccione la Source IP address (Dirección IP de origen) o la IP address in header (Dirección IP en el encabezado).

-y-

Declaración 2
Examinar: seleccione Single Header (Cabecera única).
Nombre del campo de encabezado: Escriba User-Agent (Agente usuario).
Tipo de coincidencia: seleccione Exactly matches string (Coincidencia exacta de la cadena).
Cadena para que coincida: Escriba Badbot. 5. Elija Save rule (Guardar regla). 6. Elija Next (Siguiente).

Consulte los registros de AWS WAF para recopilar información específica sobre actividades no autorizadas

Si aún no lo ha hecho, asegúrese de activar el registro de AWS WAF.

Después de activar el registro de la web ACL para analizar el tráfico, consulte los registros de AWS WAF para investigar los escenarios de DDoS. Puede consultar los registros de AWS WAF mediante lo siguiente:

Usando el analizador de registros de Amazon Athena o AWS Lambda

Las reglas basadas en tasas le permiten especificar el número máximo de solicitudes web que se pueden permitir desde cualquier dirección IP individual en un periodo de cinco minutos que se actualiza continuamente. Si una dirección IP supera el límite configurado, se bloquearán las nuevas solicitudes hasta que la tasa de solicitudes sea inferior al umbral configurado. El valor límite de tasa mínimo aceptable para las reglas basadas en tasas es 100.

En situaciones en las que no se puedan usar reglas basadas en tasas debido al umbral mínimo permitido, considere usar la implementación del analizador de registros Athena o del analizador de registros Lambda disponible en AWS WAF Automation. Con las reglas basadas en tasas, el periodo de bloqueo predeterminado es de 240 segundos. Tanto el analizador de registros Athena como el Lambda le permiten seleccionar el periodo (en minutos) para bloquear las direcciones IP aplicables.

Las implementaciones del analizador de registros Athena y Lambda tienen los siguientes parámetros:

  • Umbral de solicitudes: el máximo de solicitudes aceptables por cada cinco minutos por dirección IP.
  • Periodo de bloqueo: el periodo (en minutos) para bloquear las direcciones IP aplicables.

Ambas soluciones le permiten definir parámetros al aprovisionar o actualizar pilas de AWS CloudFormation.

Utilice el analizador de registros Lambda cuando las reglas basadas en tasas o el analizador de registros de Athena no estén disponibles. Para obtener más información, consulte el analizador de registros de AWS Lambda.

Tenga en cuenta el aumento de los costos al usar el analizador de registro de Athena. Se le cobrará por el uso de Athena cuando utilice esta opción para la protección contra inundaciones HTTP. De forma predeterminada, cada consulta de Athena se ejecuta cada cinco minutos y analiza los datos de las últimas cuatro horas. Las particiones se aplican a los registros y a las consultas de Athena para mantener los costes bajos. Puede configurar el número de horas de datos que analiza una consulta cambiando el valor del parámetro de plantilla Periodo de bloque WAF. Sin embargo, aumentar la cantidad de datos escaneados probablemente aumentará el costo de Athena.

Para obtener más información, consulte el Cálculo del costo de Amazon Athena.

Cree una regla de coincidencia geográfica para bloquear las solicitudes incorrectas que se originan en un país que no se prevea para su empresa

Cree una o más instrucciones de reglas de coincidencia geográfica para permitir o bloquear solicitudes web en función del país de origen.

Para crear una regla de coincidencia geográfica en la consola de AWS WAF:

  1. Abra la consola de AWS WAF.
  2. Seleccione la web ACL, la Regular rule (Regla regular) y cree una regla de coincidencia geográfica.
  3. En Opciones de solicitud, seleccione originates from a country in (Proviene de un país en) y elige el código o códigos de país de la lista desplegable.
  4. Establezca la acción de regla comoBLOCK (BLOQUEAR).
  5. Seleccione Add rule (Agregar regla).

Crear una regla de coincidencia de conjuntos de IP para bloquear solicitudes incorrectas basadas en direcciones IP

Cree una sentencia de regla de coincidencia de conjuntos de IP para permitir o bloquear solicitudes web en función de las direcciones IP de las que se originan las solicitudes. Una condición de coincidencia de IP enumera hasta 10 000 direcciones IP o intervalos de direcciones IP en los que se originan las solicitudes. Más adelante en el proceso, cuando crea una ACL web, puede especificar que se permitan o se bloqueen las solicitudes de esas direcciones IP.

Para crear una regla de coincidencia de IP en la consola de AWS WAF:

  1. Abra la consola de AWS WAF.
  2. Cree un conjunto de IP y añada las direcciones IP a la lista.
  3. Seleccione la ACL web y, a continuación, seleccioneRegular rule (Regla regular) y cree una regla de coincidencia de IP.
  4. En Opciones de solicitud, seleccione originates from an IP address in (Proviene de una dirección IP en) y elija el conjunto de IP creado en el paso 2.
  5. Establezca la acción de regla en BLOCK (BLOQUEAR).
  6. Seleccione Add rule (Agregar regla).

Para obtener más información, consulte Creación y administración de un conjunto de IP.

Cree una regla de coincidencia de cadenas para bloquear las solicitudes incorrectas

Durante un ataque DDoS, no suele haber una IP de origen, lo que dificulta el filtrado en función de una o varias direcciones IP. En estos escenarios, es importante que se evalúen todas las secciones de la solicitud para identificar cualquier patrón que distinga entre una solicitud correcta y una incorrecta. Crear una regla de coincidencia de cadenas o una regla de coincidencia de expresiones regulares es una forma eficaz de bloquear solicitudes incorrectas.

Por ejemplo, si las solicitudes incorrectas provienen del Agente Usuario: BadBot, puedes crear una regla de coincidencia de cadenas basada en los detalles del encabezado.

Para crear una regla de coincidencia de cadenas en la consola de AWS WAF:

  1. Abra la consola de AWS WAF.
  2. Seleccione la web ACL (ACL web) y, a continuación, seleccioneRegular rule (Regla regular) y cree una regla de coincidencia de cadenas.
  3. En requests options (opciones de solicitud), seleccione lo siguiente:
    En Inspect (Examinar), seleccioneHeader (Encabezado).
    En Header field name (Nombre de campo de encabezado), escriba User-Agent (Agente usuario).
    En Match type (Tipo de coincidencia), seleccione **Exactly matches string (Coincide con exactitud con la cadena).**En String to Match (Cadena para que coincida), escriba BadBot.
  4. Establezca la acción de regla en BLOCK (BLOQUEAR).
  5. Seleccione Add rule (Agregar regla).

Crear una regla de coincidencia de expresiones regulares para bloquear solicitudes incorrectas

Una declaración de regla de coincidencia de expresiones regulares indica a AWS WAF que haga coincidir un componente de solicitud con una sola expresión regular (regex). Una solicitud web coincide con la sentencia si el componente de solicitud coincide con la expresión regular que especifique.

Para crear una regla de coincidencia de expresiones regulares en la consola de AWS WAF:

  1. Abra la consola de AWS WAF.
  2. Seleccione la web ACL (ACL web) y, a continuación, seleccioneRegular rule (Regla regular) y cree una regla de coincidencia de cadenas.
  3. En requests options (opciones de solicitud), seleccione lo siguiente:
    En Inspect (Examinar), seleccione URI path (Ruta de URI).
    En Match type (Tipo de coincidencia), seleccione Matches regular expression (Coincide con la expresión regular).
    Para String to match (Cadena para que coincida), escriba la expresión regular.
  4. Establezca la acción de regla en BLOCK (BLOQUEAR).
  5. Seleccione Add rule (Agregar regla).

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años