¿Qué es SYN?

En TCP, SYN hace referencia al paquete que un cliente envía a un servidor para iniciar una conexión. Para establecer una conexión TCP, se siguen estos pasos:

  1. El cliente envía primero un paquete SYN al servidor.
  2. El servidor responde con un paquete SYN/ACK para confirmar la solicitud. En este punto, el servidor reserva recursos en una tabla de conexiones para almacenar los detalles de la conexión, estableciendo así un estado de conexión semiabierta.
  3. Al recibir el paquete SYN/ACK, el cliente responde con un paquete ACK.
  4. Cuando el servidor recibe el paquete ACK, la conexión queda completamente establecida.

Este proceso de conexión, que implica el intercambio de tres paquetes, se denomina «apretón de manos de tres vías» (3-way handshake). Permite al servidor confirmar que sus paquetes de respuesta han llegado al cliente. Sin embargo, surgen problemas si el cliente suplanta la dirección IP de origen, ya que el servidor no recibirá una respuesta a su paquete SYN/ACK. En estos casos, el servidor mantiene la conexión en estado semiabierto hasta que se agota el tiempo de espera, consumiendo recursos innecesariamente. Los actores maliciosos aprovechan esta vulnerabilidad mediante un ataque de inundación SYN, un tipo de ataque DoS/DDoS.

La plataforma BIG-IP de F5 actúa como un proxy completo y evita las inundaciones SYN inspeccionando los paquetes SYN antes de reenviarlos al servidor. Además, BIG-IP incluye una función denominada cookies SYN para protegerse frente a grandes volúmenes de paquetes SYN. Con este método, se inserta un número generado mediante MD5 (denominado «cookie») en el número de secuencia TCP del paquete SYN/ACK. Cuando se recibe el paquete ACK posterior, la cookie se vuelve a calcular a partir de su contenido. Esto elimina la necesidad de almacenar los detalles de la conexión en el momento de enviar el paquete SYN/ACK, lo que evita que se agote la memoria incluso durante un ataque de inundación SYN.