Un ataque de inundación de SYN (Synchronize) es un tipo de ataque de Denegación de Servicio (DoS) que explota parte del protocolo de control de transmisión/internet (TCP/IP), con el objetivo de consumir suficientes recursos del servidor como para hacerlo inaccesible para los usuarios legítimos.
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
three-way handshake
Para entender este ataque, primero hay que entender cómo funciona la “comunicación de tres vías” (“three-way handshake”) en TCP/IP, que es un método que se utiliza para crear una conexión entre el cliente y el servidor:
Paso 1 – SYN
El cliente quiere iniciar una nueva conexión y envía un paquete SYN (synchronize) al servidor, pidiendo abrir una conexión. El paquete contiene un número de secuencia aleatorio A.
Paso 2 – SYN-ACK
El servidor recibe el paquete SYN, lo reconoce y responde con un paquete SYN-ACK (synchronize-acknowledge), confirmando la recepción del paquete SYN e incluyendo su propio número de secuencia aleatorio B.
Paso 3 – ACK
El cliente recibe el paquete SYN-ACK del servidor, incrementa el número de secuencia recibido en 1 y lo envía de vuelta al servidor en un paquete ACK (acknowledge). El servidor hace lo mismo y la conexión queda establecida.
Durante este proceso, el servidor tiene que reservar recursos para cada conexión potencial durante su fase de “semi-apertura”. Si el paso final (el ACK del cliente al servidor) nunca se realiza, la conexión queda en un estado semi-abierto, ocupando recursos en el servidor hasta que finalmente se cierra tras un timeout.
Ataque SYN (SYN attack)
Ahora, en un ataque de inundación SYN, lo que ocurre es que un atacante envía una gran cantidad de paquetes SYN al servidor, con direcciones IP de origen falsificadas (esto se llama spoofing).
El servidor, tratando de responder, envía los correspondientes paquetes SYN-ACK a esas direcciones IP falsas y queda esperando por una respuesta (ACK) que nunca llega, ya que las direcciones IP de origen no corresponden a clientes reales.
Esto lleva a que el servidor consuma recursos manteniendo abiertas estas conexiones semi-establecidas, hasta el punto en que no puede manejar nuevas solicitudes, lo que resulta en una denegación de servicio para los usuarios legítimos.
Este tipo de ataques pueden ser difíciles de mitigar, ya que los paquetes SYN son esenciales para la creación de una conexión normal y, a primera vista, los paquetes SYN de un ataque no son distinguibles de los paquetes SYN legítimos.
Una estrategia de defensa comúnmente usada es limitar el número de conexiones semi-abiertas que el servidor puede tener al mismo tiempo, pero esto puede afectar el rendimiento del servicio para los usuarios legítimos.
Estrategias de protección o mitigación
Hay diversas formas de mitigar y/o protegerse contra los ataques de inundación SYN. A continuación se detallan algunas de ellas:
Filtrado de IP
La detección y el bloqueo de direcciones IP sospechosas puede ayudar a proteger un servidor contra ataques de inundación SYN.
Esta técnica, aunque no es 100% efectiva (especialmente si el atacante está utilizando una gran cantidad de direcciones IP), puede ayudar a limitar la cantidad de paquetes SYN falsos que un servidor tiene que procesar.
Firewalls y sistemas de prevención de intrusiones
Los firewalls modernos y los sistemas de prevención de intrusiones (IPS) pueden detectar ataques de inundación SYN y tomar medidas para bloquearlos.
Pueden hacerlo analizando patrones de tráfico y bloqueando paquetes que parecen formar parte de un ataque.
Uso de proxies o balanceadores de carga
Estos sistemas pueden ayudar a absorber el impacto de un ataque de inundación SYN, distribuyendo la carga entre varios servidores.
Algunos sistemas también pueden ser configurados para cerrar conexiones semi-abiertas después de un corto periodo de tiempo, lo que puede ayudar a mitigar los efectos de un ataque.
SYN cookies
Este es un método avanzado de protección contra ataques de inundación SYN.
Cuando un servidor recibe un paquete SYN, en lugar de asignar recursos a la nueva conexión, envía una “cookie” (un identificador de conexión codificado) al cliente. Si el cliente responde correctamente, el servidor sabe que la conexión es legítima y asigna recursos a la conexión.
Esta técnica puede ayudar a proteger contra ataques de inundación SYN sin requerir que el servidor asigne recursos a conexiones semi-abiertas.
Incrementar la capacidad de la pila TCP/IP
Aumentar la capacidad de las colas de la pila TCP/IP para manejar un número más grande de conexiones semi-abiertas puede ayudar a soportar ataques de inundación SYN.
Sin embargo, esto no es una solución completa y podría simplemente dar al atacante más incentivo para aumentar el volumen del ataque.
Reducción del tiempo de espera (timeout)
Reducir el tiempo que el servidor espera antes de cerrar una conexión semi-abierta puede ayudar a liberar recursos más rápidamente.
Sin embargo, esto también podría afectar a los usuarios legítimos que tienen conexiones lentas o inestables.
Es importante recordar que ninguna de estas soluciones es perfecta, y la mejor defensa contra los ataques de inundación SYN es un enfoque de defensa en profundidad, que implique múltiples capas de protección.
Esto incluye mantener el software y el hardware actualizados, monitorizar constantemente el tráfico de la red para detectar signos de un ataque, y tener un plan de respuesta a incidentes en caso de que se produzca un ataque.
Estrategias de respuesta
Además de las estrategias de mitigación mencionadas anteriormente, existen también estrategias de respuesta que pueden ser útiles durante o después de un ataque de inundación SYN:
Trabajando con tu proveedor de servicios de Internet (ISP)
En caso de un ataque, es esencial comunicarse con tu ISP. Muchos proveedores tienen medidas para lidiar con los ataques DoS y pueden ser capaces de rastrear y bloquear el tráfico malicioso.
Recopilación de pruebas
Si se está siendo objeto de un ataque, es importante recopilar toda la información posible que pueda ser utilizada para identificar al atacante y para presentar un informe a las autoridades pertinentes.
Esto incluye registros de servidores, direcciones IP, tiempos, y cualquier otra información que pueda ser relevante.
Implementación de un plan de respuesta a incidentes
Un plan de respuesta a incidentes establece exactamente lo que se debe hacer en caso de un ataque, incluyendo quién es responsable de cada tarea, cómo se comunicará la situación, y cómo se restablecerá el servicio normal.
Recuperación y análisis post-ataque
Después de un ataque, es importante analizar lo que ocurrió y aprender de la experiencia.
- ¿Qué funcionó y qué no funcionó en tu respuesta?
- ¿Se necesita actualizar la tecnología o las políticas de seguridad?
- ¿Cómo se puede mejorar la respuesta en el futuro?
Además, el uso de servicios de seguridad gestionados o un sistema de prevención de intrusiones (IPS) que incluya protección contra inundaciones SYN puede ser muy útil. Estos servicios utilizan diversas técnicas para detectar y mitigar los ataques de inundación SYN, liberando a tu equipo de IT para que se concentre en otros aspectos de la seguridad de la red.
La mejor estrategia es la prevención y la preparación. La comprensión de cómo funcionan los ataques de inundación SYN y la implementación de las medidas de seguridad adecuadas puede ayudar a proteger tu red y asegurar la continuidad de tu servicio.
Ejemplo de un SYN Attack
Supongamos que estás utilizando Wireshark para analizar el tráfico de red en tu servidor. Durante un ataque de inundación SYN, podrías observar un número inusualmente alto de paquetes SYN sin los correspondientes paquetes ACK para completar la conexión.
En Wireshark, cada paquete de red se muestra en una línea separada y se proporcionan detalles como el número de paquete, el tiempo, la dirección IP de origen, la dirección IP de destino, el protocolo y la información del paquete.
Aquí tienes un ejemplo de cómo podrían verse algunos de estos paquetes en la salida de Wireshark:
No. Time Source Destination Protocol Info
1 0.000000 192.0.2.1 Your.Server.IP TCP 42345 > http [SYN] Seq=0 Win=5840 Len=0
2 0.000048 Your.Server.IP 192.0.2.1 TCP http > 42345 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0
3 0.001300 203.0.113.1 Your.Server.IP TCP 35124 > http [SYN] Seq=0 Win=5840 Len=0
4 0.001348 Your.Server.IP 203.0.113.1 TCP http > 35124 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0
5 0.002610 198.51.100.1 Your.Server.IP TCP 39742 > http [SYN] Seq=0 Win=5840 Len=0
6 0.002656 Your.Server.IP 198.51.100.1 TCP http > 39742 [SYN, ACK] Seq=0 Ack=1 Win=5792 Len=0
...
En este ejemplo, puedes ver que tu servidor (Your.Server.IP) está recibiendo múltiples paquetes SYN ([SYN]) de diferentes direcciones IP (192.0.2.1, 203.0.113.1, 198.51.100.1, etc.), y está respondiendo a cada uno de ellos con un paquete SYN, ACK ([SYN, ACK]).
Lo que falta en este ejemplo son los paquetes ACK finales de los clientes para completar la conexión. Esto es indicativo de un posible ataque de inundación SYN, ya que el servidor está recibiendo múltiples solicitudes de conexión pero estas conexiones no se están completando.
En un análisis de protocolos real, probablemente verías cientos o incluso miles de estos paquetes SYN, posiblemente desde una amplia gama de direcciones IP, lo que puede ser un indicativo de que el ataque se realiza desde una red de bots (botnet).
Además, para un análisis más profundo, podrías necesitar investigar la distribución de las direcciones IP, el ritmo de las solicitudes y otros detalles que podrían ofrecer más información sobre la naturaleza y el origen del ataque.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libro recomendado para éste artículo
Libro Seguridad Avanzada RouterOS v7
Material de estudio para el Curso de Certificación MTCSE, actualizado a RouterOS v7










