¿Cómo utilizo AWS WAF con AWS Global Accelerator para proteger la aplicación de los ataques malintencionados?

4 minutos de lectura
0

Quiero proteger la aplicación de los ataques DDoS a la capa 7 mediante la regla de limitación de la velocidad de AWS WAF con el equilibrador de carga de aplicación que se encuentra detrás del acelerador global.

Descripción breve

Se pueden aprovechar AWS Global Accelerator, el equilibrador de carga de aplicación y AWS WAF para defenderse de los ataques de denegación de servicio distribuido (DDoS) a las capas de las aplicaciones.

Nota: La limitación de la velocidad de los clientes mediante el equilibrador de carga de aplicación y el WAF requiere que se configure la IP de origen preserved=TRUE en el acelerador. Para obtener más información, consulte Conservar las direcciones IP de los clientes en AWS Global Accelerator.

Resolución de problemas

La regla de limitación de la velocidad de AWS WA permite bloquear automáticamente a los clientes de direcciones IP específicas que envían una avalancha abrumadora de solicitudes a la aplicación. La regla basada en la velocidad rastrea la cantidad de solicitudes enviadas por cada dirección IP, en función de un período de tiempo variable. Cuando las solicitudes superan el límite de velocidad, la regla bloqueará inmediatamente las solicitudes de la dirección IP de origen, hasta que la dirección reduzca el número de solicitudes.

Nota: También se puede configurar la regla para que inspeccione y bloque numerosos componentes de una solicitud, incluido el país que origina la solicitud.

Requisitos previos

  • Asegúrese de tener la siguiente configuración del flujo de tráfico en Global Accelerator, equilibrador de carga de aplicación y AWS WAF:
    User --> Global Accelerator --> Application Load Balancer with WAF --> EC2 instance
    Nota: En esta configuración, el usuario accede a la aplicación realizando una solicitud al acelerador. El acelerador dirige el tráfico de los usuarios hacia el equilibrador de carga de aplicación y al WAF asociado a él. El WAF evalúa y bloquea o permite la solicitud del usuario mediante la regla de limitación de velocidad que usted cree.
  • Instale una herramienta de prueba de carga, como loadtest desde GitHub. O bien, utilice la herramienta de pruebas de carga que prefiera y que le brinde la visibilidad necesaria.

Crear una ACL web basada en reglas

Cree una regla basada en la velocidad en la lista de control de acceso (ACL) web, con un límite de velocidad agresivo de 100. A continuación, utilice el ejemplo de prueba para comprobar si la regla funciona.

  1. Vaya a la consola de AWS WAF para crear una regla de ACL web.
  2. Añada una regla personalizada a la ACL web.
  3. Asígnele un nombre y defina la regla basada en la velocidad como Type.
  4. Configure 100 como el Límite de velocidad.
  5. Deje el resto de ajustes como están. A continuación, haga clic en Añadir regla.
  6. Guarde la ACL web.

Comprobación de los resultados

La prueba simula un ataque de inundación de HTTP. La herramienta de pruebas de carga muestra el progreso de las solicitudes recibidas. En algún momento, las solicitudes comenzarán a fallar porque quedarán bloqueadas por la regla de limitación de la velocidad que se configuró.

  1. Ejecute la herramienta más pesada que esté instalada en su ordenador.
    Nota: O bien, abra AWS CloudShell en la consola (es posible que reciba un mensaje para cambiar a la región en la que es compatible).

    # Install globally as root:
    npm install -g loadtest
    # On AWS CloudShell, Ubuntu or Mac OS X systems install using sudo:
    sudo npm install -g loadtest
  2. Introduzca la URL de Global Accelerator, como se muestra a continuación:

    # Global Accelerator url
    GA_URL=http://your_Global_Acclerator_URL

    Nota: Sustituya your_Global_Accelerator_URL por la URL de Global Accelerator.

  3. Para iniciar la avalancha de solicitudes de simulación de pruebas de carga, ejecute el comando en la terminal.

    Nota: Esto debería tardar 45 segundos en ejecutarse, así que vigile el flujo.

    loadtest -n 1000 -c 1 --rps 25 $GA_URL

    El comando enviará un total de 1000 solicitudes, con una coincidencia de 1 y 25 solicitudes por segundo. Con esta velocidad de solicitudes por segundo, antes de cuatro segundos alcanzará el límite que haya configurado.

  4. Analice el flujo de salida. Observe que, en algún momento, las solicitudes comenzaron a fallar. Los errores indicarán que la regla WAF bloqueó todas las solicitudes de la dirección IP de origen.

    [Fri Apr 21 2023 20:26:45 GMT+0000 ] INFO Requests: 0 (0%), requests per second: 0, mean latency: 0 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Requests: 106 (11%), requests per second: 21, mean latency: 22.9 ms
    [Fri Apr 21 2023 20:26:50 GMT+0000 ] INFO Errors: 106, accumulated errors: 106, 100% of total requests
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año