Un ataque de inundación SYN aprovecha una vulnerabilidad en el protocolo de enlace TCP/IP en un intento de interrumpir un servicio web.
Después de leer este artículo podrás:
Contenido relacionado
Ataque de inundación de DNS
Ataque de inundación HTTP
Ataque de inundación UDP
Malware (software malicioso)
Ataque de inundación de ping (ICMP)
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
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 ya que consume todos los recursos disponibles del servidor. Al enviar paquetes de solicitud (SYN) de conexión inicial de forma repetida, el atacante puede sobrecargar todos los puertos disponibles en la máquina del servidor que se fija como objetivo, y hacer que ese dispositivo responda con lentitud al tráfico legítimo o que no responda en absoluto.
Los ataques de inundación SYN funcionan porque aprovechan el proceso de protocolo de enlace de una conexión TCP. En condiciones normales, la conexión TCP presenta tres procesos distintos para lograr una conexión.
Para crear una denegación de servicio, un atacante se aprovecha del hecho de que, tras la recepción de un paquete SYN inicial, el servidor responderá con uno o más paquetes SYN/ACK, y esperará el último paso para establecer la comunicación. Así es cómo funciona:
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 que se fija como objetivo deja conexiones abiertas de forma constante y espera que en 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”.
Al usar un ataque de inundación SYN, un actor malicioso puede intentar crear una denegación de servicio en un dispositivo o servidor que se fija como objetivo con una cantidad considerablemente menor de tráfico que los otros ataques DDoS. En lugar de ataques volumétricos, que apuntan a saturar la infraestructura de la red que rodea al 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 de que finalice el 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.
La vulnerabilidad de inundación SYN se conoce hace tiempo y se han utilizado numerosas rutas de mitigación. Algunos de los enfoques incluyen los siguientes:
Cada sistema operativo en un dispositivo fijado como objetivo permitirá cierto número de conexiones semiabiertas. 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 pendientes, el sistema debe reservar recursos de memoria adicionales para abordar las solicitudes nuevas. Si el sistema no tiene memoria suficiente para poder manejar el aumento del tamaño de los registros pendientes, el rendimiento del sistema se verá afectado de forma negativa; sin embargo, esta opción puede ser mejor que la denegación de servicio.
Otra estrategia de mitigación involucra sobreescribir la conexión semiabierta más antigua cuando se hayan llenado los registros pendientes. Esta estrategia requiere que las conexiones legítimas puedan establecerse por completo en menos tiempo del que tardan en llenarse los registros pendientes con paquetes SYN maliciosos. Esta defensa en particular falla cuando el volumen de ataque aumenta o si el tamaño de los registros pendientes es demasiado pequeño para ser práctico.
Esta estrategia implica que el servidor cree una cookie. Para evitar el riesgo de eliminar conexiones cuando se han llenado los registros pendientes, el servidor responde a cada solicitud de conexión con un paquete SYN-ACK, pero luego retira la solicitud SYN del registro de pendientes, la elimina de la memoria, y deja 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 del cliente al servidor, el servidor reconstruirá (con algunas limitaciones) la entrada de la cola de registros SYN pendientes. Si bien este esfuerzo de mitigación pierde algo de información sobre la conexión TCP, es mejor que permitir que se produzca una denegación de servicio a los usuarios legítimos como resultado de un ataque.
Cloudflare mitiga este tipo de ataque, en parte, porque se ubicar entre el servidor que se fija como objetivo y la inundación SYN. Cuando se hace la solicitud SYN inicial, Cloudflare maneja el proceso del protocolo de enlace en la nube y retiene la conexión con el servidor que se fija como objetivo hasta que se completa el protocolo de enlace del TCP. Esta estrategia asume el costo de mantener las conexiones con los paquetes SYN falsos fuera del servidor que se fija como objetivo, y las ubica en la red Anycast de Cloudflare. Más información sobre el funcionamiento de la protección DDoS de Cloudflare.