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) que intenta que un servidor no esté disponible para el tráfico legítimo consumiendo todos sus recursos disponibles. Al enviar repetidamente paquetes de solicitud de conexión inicial (SYN), el atacante puede sobrecargar todos los puertos disponibles en el servidor atacado, lo que hará que el dispositivo responda al tráfico legítimo muy lentamente o incluso que no responda en absoluto.

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

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

  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. En último lugar, el cliente devuelve un paquete ACK para confirmar 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 establecimiento de conexión en tres pasos 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 atacado, 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 a que llegue el paquete ACK final, el cual nunca llegará, el atacante sigue enviando más paquetes SYN. La llegada de cada nuevo paquete SYN hace que el servidor mantenga temporalmente abierta una nueva conexión de puerto 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 las redes, cuando un servidor deja una conexión abierta pero la máquina al otro lado de la conexión no lo hace, la conexión se considera medio abierta. En este tipo de ataque DDoS, el servidor atacado 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 en la que no se haya falsificado la dirección IP se conoce como ataque directo. En este ataque, el atacante no oculta su dirección IP. Dado que para crear el ataque utiliza un único dispositivo de origen con una dirección IP real, el atacante es altamente vulnerable a ser descubierto y a las mitigaciones. Para poder crear un estado de medio abierto en el equipo atacado, el hacker impide que su equipo 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 filtrando cualquier paquete SYN-ACK entrante antes de que llegue al equipo del usuario malicioso. En la práctica, este método se utiliza con poca frecuencia (si 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 Mirai, no se preocupará por ocultar la dirección IP del dispositivo infectado.
  2. Ataque con suplantación: un usuario malicioso también puede falsificar la dirección IP en cada paquete SYN que envíe para obstaculizar los esfuerzos de mitigación y dificultar que se descubra su identidad. Si bien los paquetes pueden ser falsificados, estos podrían llegar a rastrearse hasta su origen. 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 un ataque se crea usando una red de robots (botnet), es muy difícil rastrear el ataque hasta su origen. Para añadir más frustración, el atacante puede hacer que cada dispositivo distribuido también falsifique las direcciones IP desde las que envía los paquetes. Si el atacante utiliza una red de robots (botnet) como la red de robots Mirai, entonces lo más probable es que no se preocupe 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 atacado con bastante menos tráfico que otros ataques DDoS. En lugar de ataques volumétricos, los cuales intentan 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 mínimo necesario 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 mucho tiempo y se han utilizado una gran cantidad de rutas de mitigación. Algunos enfoques incluyen:

Aumentar la cola de registros

Cada sistema operativo de un dispositivo atacado permitirá un cierto número de conexiones medio abiertas. Una respuesta al gran volumen de paquetes SYN es aumentar el número máximo de posibles conexiones medio abiertas que permitirá el sistema operativo. Para poder aumentar con éxito el backlog máximo, el sistema tiene reservar recursos de memoria adicionales para atender las nuevas solicitudes. Si el sistema no cuenta con memoria suficiente para gestionar el aumento del tamaño de la cola del backlog, el rendimiento del sistema se verá afectado negativamente, pero esto es preferible a una denegación de servicio.

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

Otra estrategia de mitigación consiste en sobrescribir la conexión medio abierta más antigua una vez se haya completado el backlog. Esta estrategia requiere que se puedan establecer en su totalidad las conexiones legítimas en menos tiempo del que necesita el backlog para llenarse de paquetes SYN maliciosos. Este tipo de defensa fracasa cuando se aumenta el volumen de ataque o si el backlog es demasiado pequeño para ser práctico.

Cookies de SYN

Esta estrategia implica que el servidor cree una cookie. Para evitar el riesgo de que se caigan las conexiones cuando se haya completado el backlog, el servidor responde a cada solicitud de conexión con un paquete SYN-ACK, pero luego descarta la solicitud SYN del backlog, elimina la solicitud de la memoria y dejan el puerto abierto y preparado para una nueva conexión. Si la conexión es una solicitud legítima, y un paquete ACK final se devuelve desde la máquina del cliente al servidor, el servidor reconstruirá (con algunas limitaciones) la entrada de la cola del backlog de SYN. Aunque este esfuerzo de mitigación puede hacer perder algo de información acerca de la conexión TCP, es mejor que permitir la denegación de servicio a usuarios legítimos que sucederá tras un ataque.

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

Cloudflare mitiga este tipo de ataques parcialmente 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. Más información acerca de cómo funciona la protección DDoS de Cloudflare.

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