Los ataques DoS simples agotan el ancho de banda .
Pero los ataques más sofisticados utilizan otros recursos, como el tiempo de CPU y la memoria. Una inundación SYN está dirigida a usar memoria (y, en algunos casos, tiempo de CPU en los firewalls de hardware).
Para un atacante, sin embargo, es más fácil inundar a una víctima con paquetes SYN, si la víctima tiene un ancho de banda enorme .
¿Cómo se establece una conexión TCP?
TCP usa un apretón de manos de tres vías:
Client --------- SYN -------> Server
Client <------ SYN,ACK ------ Server
Client ------- ACK,... -----> Server
La forma tradicional de manejar la creación de una conexión es esta:
Una vez que el Servidor recibió un paquete SYN, debe asignar algo de memoria para almacenar la información sobre la conexión (por ejemplo, IP del cliente, puerto del cliente, IP del servidor, puerto del servidor). Reconoce el paquete SYN enviando un SYN ACK a la dirección IP de origen especificada en el paquete inicial.
Una inundación SYN consiste en muchos paquetes SYN para los cuales el servidor tiene que asignar memoria. El cliente solo puede enviarlos y olvidarse de ellos . Además, la dirección IP de origen se puede establecer en cualquier cosa (a menos que el ISP del atacante tenga filtros).
¿Por qué el servidor tiene que recordar la conexión medio abierta?
El servidor debe verificar que el remitente del paquete ACK en el paso 3 es el que envió el paquete SYN y recibió el paquete SYN-ACK. Esta es la forma en que TCP trató de protegerse contra las direcciones IP falsificadas y las inyecciones de paquetes.
(La protección no funciona contra un atacante que tiene acceso a un enrutador a través del cual viajan los paquetes).
¿Cómo protegerse contra las inundaciones SYN?
En lugar de la memoria de asignación y almacenar la información sobre la conexión medio abierta, el servidor envía de nuevo la información requerida en el campo del número de secuencia TCP de forma criptográfica guardada.
Entonces, cuando se recibe el paquete ACK final, puede extraer la información requerida, verificarla y establecer la conexión.
Wikipedia tiene un buen artículo en cookies SYN .