Ataque de inundación SYN

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

Share facebook icon linkedin icon twitter icon email icon

Inundación SYN

Objetivos de aprendizaje

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

  • Definir un ataque DDoS de inundación SYN
  • Explicar cómo funciona un ataque de inundación SYN
  • Diferenciar los distintos tipos de ataques SYN
  • Comprender algunas técnicas de mitigación para inundaciones SYN

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

Una inundación SYN (ataque medio abierto) es un tipo de ataque de denegación de servicio (DDoS) con el fin lograr que un servidor no esté disponible para el tráfico legítimo al consumir todos sus recursos disponibles. Al enviar repetidas veces paquetes de solicitud de conexión iniciales (SYN), el atacante puede abrumar todos los puertos disponibles en una máquina de servidor de destino, lo que hará que el dispositivo responda al tráfico legítimo muy lentamente o que directamente no responda.

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

Los ataques de inundación SYN aprovechan el proceso de protocolo de enlace de una conexión TCP. En circunstancias normales, la conexión TCP exhibe tres procesos distintos para poder lograr la conexión.

  1. En primer lugar, el cliente envía un paquete SYN al servidor para poder iniciar la conexión.
  2. En segundo lugar, el servidor responde a ese paquete inicial con un paquete SYN/ACK para poder reconocer la comunicación.
  3. Por último, el cliente devuelve un paquete ACK para reconocer la recepción del paquete del servidor. Después de completar esta secuencia de envío y recepción de paquetes, la conexión TCP se abre y es capaz de enviar y recibir datos.
Diagrama de protocolo de enlace de tres vías de TCP

Para crear una denegación de servicio, el atacante aprovecha el hecho de que, después de que se ha recibido un paquete SYN inicial, el servidor responderá con uno o más paquetes SYN/ACK y esperará el paso final del protocolo de enlace. Así es como funciona:

  1. El atacante envía un alto volumen de paquetes SYN al servidor de destino, generalmente mediante una dirección IP falsificada.
  2. El servidor entonces 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 paquete ACK final, el cual nunca llega, el atacante continúa enviando más paquetes SYN. La llegada de cada paquete SYN nuevo hace que el servidor mantenga temporalmente abierta una conexión de puerto nueva durante cierta cantidad de tiempo y, una vez que se hayan utilizado todos los puertos disponibles, el servidor ya no puede funcionar con normalidad.
Animación de ataque DDoS de inundación SYN

En la interconexión de 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 media abierta. En este tipo de ataque DDoS, el servidor objetivo deja conexiones abiertas continuamente y espera que cada una de ellas cumpla el tiempo de espera antes de que los puertos vuelvan a estar disponibles. El resultado es que este tipo de ataque puede considerarse como un “ataque medio abierto”.

Una inundación SYN puede darse de tres maneras:

  1. Ataque directo: Una inundación SYN donde la dirección IP no se ha falsificado se conoce como un ataque directo. En este ataque, el atacante no oculta su dirección IP. Dado que para crear el ataque utiliza un único dispositivo fuente con una dirección IP real, el atacante es altamente vulnerable a ser descubierto y a las mitigaciones. Para poder crear un estado medio abierto en la máquina de destino, el hacker impide que su máquina responda a los paquetes SYN-ACK del servidor. Esto suele lograrse con reglas de firewall que evitan que salgan paquetes que no sean SYN, o al filtrar cualquier paquete SYN-ACK entrante antes de que llegue al equipo de los usuarios maliciosos. En la práctica, este método se utiliza con poca frecuencia (si es que se utiliza en absoluto), ya que la mitigación es bastante sencilla: simplemente se bloquea la dirección IP de cada sistema malicioso. Si el atacante utiliza una red de robots (botnet) como la red de robots (botnet) Mirai, no se preocupará por ocultar la dirección IP del dispositivo infectado.
  2. Ataque de falsificación: Un usuario malicioso también puede falsificar la dirección IP en cada paquete SYN que envía para poder inhibir los esfuerzos de mitigación y hacer que descubrir su identidad sea más difícil. Si bien los paquetes pueden falsificarse, estos podrían llegar a rastrearse hasta su fuente. Es difícil realizar 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 utilizando una red de robots (botnet), las probabilidades de rastrear el ataque hasta su fuente son pocas. Para añadir más frustración, el atacante podría hacer que cada dispositivo distribuido también falsifique la dirección IP desde la que envía los paquetes. Si el atacante utiliza una red de robots (botnet) como la red de robots (botnet) Mirai, entonces lo más probable es que no se deba preocupar por ocultar la dirección IP del dispositivo infectado.

Al usar un ataque de inundación SYN, un agente malicioso puede intentar crear una denegación de servicio en un dispositivo o servicio de destino con bastante menos tráfico que otros ataques DDoS. En lugar de ataques volumétricos, los cuales apuntan a saturar la infraestructura de la red que rodea al objetivo, los ataques SYN solo necesitan ser más grandes que el registro disponible dentro del sistema operativo del objetivo. Si el atacante logra determinar el tamaño del registro y cuánto tiempo queda abierta una conexión antes de que finalice el tiempo de espera, entonces podrá obtener los parámetros exactos que se necesitan para deshabilitar el sistema, por lo que podrá reducir el tráfico total hasta el monto mínimo necesario como para crear una denegación de servicio.

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

La vulnerabilidad de una inundación SYN se conoce desde hace algún tiempo y se han utilizado una gran cantidad de rutas de mitigación. Algunos de estos enfoques incluyen lo siguiente:

Aumentar la cola de registros

Cada sistema operativo dentro de un dispositivo de destino posee cierta cantidad permisible de conexiones medio abiertas. Una respuesta a altos volúmenes de paquetes SYN es aumentar la cantidad máxima de conexiones medio abiertas posibles que el sistema operativo pueda a permitir. Para poder aumentar correctamente la cantidad máxima de registros, el sistema debe reservar recursos de memoria adicionales para poder hacerse cargo de todas las solicitudes nuevas. Si el sistema no posee suficiente memoria como para poder controlar el tamaño aumentado de la cola de registros, el funcionamiento de este se verá afectado de forma negativa, pero eso aún puede ser mejor que una denegación de servicio.

Reciclar la conexión TCP medio abierta más antigua

Otra estrategia de mitigación implica sobrescribir la conexión medio abierta más antigua una vez que se haya llenado el registro. Esta estrategia requiere que las conexiones legítimas se puedan establecer por completo en menos tiempo que el que lleva llenar el registro con paquetes SYN maliciosos. Esta defensa específica falla cuando el volumen del ataque aumenta, o si el tamaño del registro es demasiado pequeño como para considerarse práctico.

Cookies de SYN

Esta estrategia implica la creación de una cookie por parte del servidor. Para poder evitar el riesgo de que las conexiones se anulen cuando el registro se haya llenado, el servidor responde a cada solicitud de conexión con un paquete SYN-ACK, pero luego anula la solicitud de SYN del registro. De ese modo, elimina la solicitud de la memoria y deja el puerto abierto y listo para realizar una conexión nueva. Si la conexión es una solicitud legítima y el paquete ACK definitivo se envía desde la máquina del cliente de vuelta al servidor, este reconstruirá (con algunas limitaciones) la entrada de la cola de registro SYN. Aunque este esfuerzo de mitigación pierda parte de la información sobre la conexión TCP, es mejor que permitir que ocurra una denegación de servicio para los usuarios legítimos debido a un ataque.

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

Cloudflare mitiga este tipo de ataques al ubicarse entre el servidor de destino y la inundación SYN. Cuando se crea la solicitud SYN inicial, Cloudflare controla el proceso del protocolo de enlace en la nube y retiene la conexión con el servidor objetivo hasta que el protocolo de enlace TCP se haya completado. Esta estrategia le quita al servidor de destino el costo en recursos de mantener las conexiones con los paquetes SYN falsos y lo traspasa a la red Anycast de Cloudflare. Obtén más información sobre cómo funciona la protección DDoS de Cloudflare.

Diagrama de cómo Cloudflare detiene los ataques de inundación SYN