Todos los artículosAnálisis de ataques

Slowloris: cómo un solo portátil puede tumbar un servidor Apache

Equipo Akarguard · Ingeniería de Seguridad7 min de lecturaApr 10, 2024

Slowloris abre miles de conexiones a un servidor y las mantiene abiertas enviando cabeceras HTTP parciales indefinidamente — ocupando todos los espacios de conexión disponibles.

La mayoría de los ataques DDoS van de volumen — abrumar a un objetivo con más tráfico del que puede manejar. Slowloris es lo contrario, y eso es lo que lo hace elegante y peligroso. Escrito por el investigador RSnake en 2009, no necesita botnet ni casi nada de ancho de banda. Un solo portátil en una conexión corriente puede dejar completamente offline un servidor Apache sin protección, no gritando más fuerte sino manteniendo la puerta abierta y negándose a marcharse.

Cómo funciona el ataque

Un servidor web solo puede manejar cierto número de conexiones simultáneas. Slowloris abre cuantas conexiones puede al objetivo y envía cabeceras de petición HTTP parciales — luego, justo lo bastante seguido para evitar un timeout, envía una línea de cabecera más, pero nunca termina la petición. El servidor mantiene abierta cada una de esas conexiones, esperando cortésmente una petición que nunca se completará. El pool de workers por defecto de Apache (a menudo unas 256 conexiones concurrentes) se llena con estas peticiones a medias, y una vez lleno, los visitantes reales son simplemente rechazados.

Por qué es tan difícil de detectar

Cada conexión Slowloris individual es legítima. Completa un handshake TCP real y envía cabeceras HTTP reales y válidas — solo que lentamente. No hay falsificación, ni inundación, ni amplificación, y el ancho de banda total es trivial. La detección DDoS a nivel de red, que vigila picos de tráfico, no ve nada inusual. La única forma de detectar Slowloris es conductual: notar que un número anormal de conexiones lleva demasiado tiempo en el mismo estado a medias.

Lo lento y sigiloso vence a lo grande y ruidoso

Slowloris demuestra que no necesitas volumen para causar una caída — necesitas agotar un recurso limitado. Aquí el recurso son los espacios de conexión, no el ancho de banda, y por eso las defensas basadas en ancho de banda lo pasan por alto por completo.

Cómo defenderse

  • Prefiere servidores orientados a eventos: nginx y HAProxy manejan muchas conexiones inactivas mucho mejor que el modelo de workers de Apache.
  • Configura timeouts de cabecera agresivos — cierra cualquier conexión que no haya completado sus cabeceras de petición en unos segundos.
  • Limita el número máximo de conexiones concurrentes por IP de origen.
  • Pon delante del origen un proxy inverso que termine el HTTP en el edge, para que las conexiones lentas se apilen contra los límites de conexión del proxy — diseñados justo para esto — y nunca lleguen a tu servidor.

Dónde encaja Akarguard

Como Akarguard termina el HTTP en su edge de proxy inverso, un ataque Slowloris agota los espacios de conexión del proxy, no los de tu origen — y el manejo de conexiones y los límites por IP del proxy están hechos para absorber exactamente este tipo de abuso lento y sigiloso. Tu origen solo recibe peticiones completas y reenviadas, así que su pool de workers nunca se llena de conexiones a medias. Combinado con los límites de conexión por IP que configuras desde el panel, el ataque que podría tumbar una máquina Apache solitaria se convierte en un no-evento tras el edge.

Preguntas frecuentes

¿Qué es un ataque Slowloris?

Una técnica de denegación de servicio de bajo ancho de banda que abre muchas conexiones a un servidor web y las mantiene abiertas enviando cabeceras HTTP parciales indefinidamente, sin completar nunca la petición. El pool de conexiones del servidor se llena con estas peticiones a medias y rechaza a los visitantes reales. Una sola máquina puede tumbar un servidor Apache sin protección.

¿Por qué es difícil de detectar Slowloris?

Porque cada conexión es técnicamente válida — un handshake TCP real y cabeceras HTTP reales, aunque lentas — con un ancho de banda total trivial. La detección DDoS basada en volumen no ve nada anormal. Solo el análisis conductual, notar muchas conexiones atascadas a medias demasiado tiempo, lo revela.

¿Cómo detengo un ataque Slowloris?

Usa servidores orientados a eventos como nginx o HAProxy, configura timeouts de cabecera agresivos (cierra conexiones que no completen cabeceras en unos segundos), limita las conexiones concurrentes por IP, y pon delante un proxy inverso que termine el HTTP para que las conexiones lentas se apilen en el proxy en vez de en tu origen.

¿Akarguard protege contra Slowloris?

Sí. Termina el HTTP en su edge de proxy inverso, así que las conexiones Slowloris agotan los espacios de conexión del proxy — hechos para absorber esto — en lugar de los de tu origen. Tu servidor solo recibe peticiones completas y reenviadas, y los límites de conexión por IP que configuras desde el panel estrangulan la fuente.

Protege tu sitio

Akarguard filtra el tráfico antes de que llegue a tu servidor. La instalación es un solo cambio de DNS; no necesitas comprar hardware ni migrar tu servidor.

Ver precios