Ataque de inundación SYN

Una inundación SYN explota una vulnerabilidad en el protocolo de enlace TCP/IP en un intento por interrumpir un servicio web.

Share facebook icon linkedin icon twitter icon email icon

Inundación SYN

Metas de aprendizaje

Después de leer este artículo usted podrá:

  • Definir un ataque DDoS de inundación SYN
  • Explicar el funcionamiento de un ataque de inundación SYN
  • Diferenciar los distintos tipos de ataque SYN
  • Comprender algunas técnicas de mitigación para inundaciones SYN

¿Qué es un ataque de inundación SYN?

Una inundación SYN (ataque semiabierto) es un tipo de ataque de denegación de servicio (DDoS) que busca dejar un servidor sin disponibilidad para el tráfico legítimo al consumir todos los recursos disponibles del servidor. Al enviar paquetes de solicitud (SYN) de conexión inicial de forma repetida, el atacante puede abrumar todos los puertos disponibles en la máquina del servidor fijado como objetivo y causar que el dispositivo fijado como objetivo responda al tráfico legítimo con lentitud o no responda en absoluto.

¿Cómo funciona un ataque de inundación SYN?

Los ataques de inundación SYN funcionan mediante la explotación del proceso de protocolo de enlace de una conexión TCP. Bajo condiciones normales, la conexión TCP exhibe tres procesos distintos para lograr una conexión.

  1. Primero, el cliente envía un paquete SYN al servidor para iniciar la conexión.
  2. El servidor responde al paquete inicial con un paquete SYN/ACK para reconocer la comunicación.
  3. Finalmente, el cliente devuelve un paquete ACK para reconocer la recepción del paquete del servidor. Tras finalizar esta secuencia, la conexión TCP está abierta y puede enviar y recibir información.
TCP Three-way handshake diagram

Para crear una denegación de servicio, un atacante explota el hecho de que, tras la recepción de un paquete SYN inicial, el servidor responderá con uno o más paquetes SYN/ACK, y espera el último paso del protocolo de enlace. Opera de la siguiente manera:

  1. El atacante envía un volumen alto de paquetes SYN al servidor fijado como objetivo, a menudo con direcciones IP falsificadas.
  2. Luego, el servidor responde a cada una de las solicitudes de conexión y deja abierto un puerto, listo para recibir la respuesta.
  3. Mientras el servidor espera el último paquete ACK, que nunca llega, el atacante continúa enviando paquetes SYN. La llegada de cada paquete SYN nuevo provoca que el servidor mantenga temporalmente una conexión de puerto abierto nueva. Una vez utilizados todos los puertos disponibles, el servidor ya no puede funcionar con normalidad.
SYN flood DDoS attack animation

En las redes, cuando un servidor deja una conexión abierta, pero la máquina del otro lado de la conexión no lo hace, la conexión se considera semiabierta. En este tipo de ataque DDoS, el servidor fijado como objetivo deja conexiones abiertas de forma constante y espera que cada conexión pase el tiempo de espera antes de que los puertos vuelvan a estar disponibles. El resultado de este tipo de ataque puede considerarse un “ataque semiabierto”.

Una inundación SYN puede ocurrir de tres maneras diferentes:

  1. Ataque directo: una inundación SYN en la que la dirección IP no está falsificada se conoce como un "ataque directo". En este ataque, el atacante no oculta su dirección IP. Como resultado de que el atacante use un solo dispositivo de origen con una dirección IP real para crear el ataque, el atacante es muy vulnerable a que lo descubran y mitiguen. Para crear el estado semiabierto en la máquina fijada como objetivo, el hacker evita que su máquina responda a los paquetes SYN-ACK del servidor. A menudo, esto se logra mediante reglas de firewall que detienen los paquetes salientes que no son SYN o bien mediante la filtración de paquetes SYN-ACK entrantes antes de que alcancen la máquina de usuarios maliciosos. En la práctica, este método no se usa seguido (o en lo absoluto), ya que la mitigación es bastante directa – solo se bloquea la dirección IP de cada sistema malicioso. Si el atacante usa una red de robots (botnet) como la red de robots (botnet) Mirai, no le importará ocultar la IP del dispositivo infectado.
  2. Ataque falsificado: un usuario malicioso puede falsificar la dirección IP de cada paquete SYN que envía para inhibir los esfuerzos de mitigación y dificultar aún más el descubrimiento de su identidad. Si bien los paquetes se pueden falsificar, existe la posibilidad de rastrearlos hasta su fuente. Es difícil hacer este tipo de trabajo de detective, pero no es imposible, especialmente si los proveedores de servicios de Internet (ISP) están dispuestos a ayudar.
  3. Ataque distribuido (DDoS): si se crea un ataque mediante una red de robots (botnet), la probabilidad de rastrear el ataque hasta su fuente es baja. Para agregar otro nivel de ofuscación, un atacante puede hacer que cada dispositivo distribuido también falsifique las direcciones IP de las cuales envía los paquetes. Si el atacante usa una red de robots (botnet) como la red de robots (botnet) Mirai, no le importará ocultar la IP del dispositivo infectado.

Al usar un ataque de inundación SYN, un actor malicioso puede intentar crear una denegación de servicio en un dispositivo o servidor fijado como objetivo con una cantidad considerablemente menor de tráfico que otros ataques DDoS. En lugar de ataques volumétricos, que apuntan a saturar la infraestructura de la red que rodea el objetivo, los ataques SYN solo necesitan ser mayores que el registro disponible en el sistema operativo del objetivo. Si el atacante puede determinar el tamaño del registro y la cantidad de tiempo que permanecerá abierta cada conexión antes del tiempo de espera, podrá apuntar a los parámetros exactos necesarios para deshabilitar el sistema. De este modo, reducirá el tráfico total al mínimo necesario para crear una denegación de servicio.

¿Cómo se mitiga un ataque de inundación SYN?

La vulnerabilidad de inundación SYN se conoce hace tiempo y se han utilizado numerosas rutas de mitigación. Algunos de los enfoques incluyen:

Cola de registros en aumento

Cada sistema operativo en un dispositivo fijado como objetivo tiene cierto número de conexiones semiabiertas que permitirá. Una respuesta a los volúmenes altos de paquetes SYN es aumentar el número máximo de conexiones semiabiertas posibles que puede permitir el sistema operativo. Para aumentar con éxito el máximo de registros, el sistema debe reservar recursos de memoria adicionales para abordar las solicitudes nuevas. Si el sistema no tiene memoria suficiente para poder manejar el tamaño de la cola de registros en aumento, el rendimiento del sistema se verá afectado de forma negativa; sin embargo, esta opción todavía puede ser mejor que la denegación de servicio.

Reciclaje de la conexión TCP semiabierta más antigua

Otra estrategia de mitigación involucra reescribir la conexión semiabierta más antigua cuando se hayan llenado los registros. Esta estrategia requiere que las conexiones legítimas puedan establecerse completamente en menos tiempo del que tardan en llenarse los registros con paquetes SYN maliciosos. Esta defensa en particular falla cuando el volumen de ataque aumenta o si el tamaño del registro es demasiado pequeño para ser práctico.

SYN cookies

Esta estrategia implica que el servidor cree una cookie. Para evitar el riesgo de eliminar conexiones cuando se han llenado los registros, el servidor responde a cada solicitud de conexión con un paquete SYN-ACK, pero luego retira la solicitud SYN del registro al quitarla de la memoria y dejar el puerto abierto y listo para una conexión nueva. Si la conexión es una solicitud legítima y el paquete ACK final se envió de la máquina cliente al servidor, el servidor reconstruirá (con algunas limitaciones) la entrada de la cola del registro SYN. Si bien este esfuerzo de mitigación pierde algo de información sobre la conexión TCP, es mejor que permitir que suceda una denegación de servicio a los usuarios legítimos como resultado de un ataque.

¿Cómo mitiga Cloudflare los ataques de inundación SYN?

Cloudflare mitiga este tipo de ataque, en parte, al ubicarse entre el servidor fijado como objetivo y la inundación SYN. Cuando se realiza la solicitud SYN inicial, Cloudflare maneja el proceso de protocolo de enlace en la nube y retiene la conexión con el servidor fijado como objetivo hasta que se completa el protocolo de enlace TCP. Esta estrategia toma el costo en recursos de mantener las conexiones con los paquetes SYN falsos fuera del servidor fijado como objetivo, y lo ubica en la red Anycast de Cloudflare. Más información sobre cómo funciona la protección DDoS de Cloudflare.

Cloudflare stops SYN Flood attacks diagram