Las cookies SYN son un método mediante el cual los administradores del servidor pueden prevenir una forma de ataque de denegación de servicio (DoS) contra un servidor a través de un método conocido como inundación SYN. Este tipo de ataque utiliza el proceso mediante el cual se establece una conexión entre un cliente y un host, conocido como protocolo de enlace de tres vías, para hacer que el host tenga un número excesivo de solicitudes de clientes, congelando o bloqueando el sistema. Sin embargo, estos ataques han quedado obsoletos en gran medida a través de métodos como el uso de cookies SYN que los eluden. Estas cookies no representan una amenaza o riesgo para la seguridad ni para el host ni para los clientes y no causan problemas de conectividad.
La forma en que funcionan las cookies SYN se basa en la forma básica en la que muchos servidores y usuarios, o sistemas host y cliente, se conectan entre sí. Este proceso se conoce como protocolo de enlace de tres vías y comienza cuando el sistema cliente envía una solicitud para conectarse al sistema host. La solicitud se denomina mensaje de sincronización o SYN y es recibida por el sistema host. Este sistema anfitrión luego reconoce que el SYN ha sido recibido enviando un acuse de recibo, o mensaje SYN-ACK, de vuelta al cliente.
Una vez que el sistema cliente recibe este mensaje SYN-ACK, el cliente envía un mensaje ACK final al host. Cuando el sistema host recibe este ACK final, permite al cliente acceder al sistema y luego puede recibir solicitudes SYN adicionales de otros clientes. La mayoría de los servidores host tienen una cola bastante pequeña para las solicitudes SYN, generalmente solo ocho a la vez.
La forma de ataque DoS conocida como inundación SYN utiliza esto para abrumar un sistema host. Esto se hace enviando un mensaje SYN, al que el host envía un SYN-ACK en respuesta, pero el cliente no envía el mensaje ACK final, lo que mantiene abierta una posición en la cola. Si esto se hace correctamente durante un ataque de inundación SYN, toda la cola queda ocupada por estas solicitudes sin respuesta y no puede aceptar nuevas solicitudes de clientes legítimos.
Las cookies SYN ayudan a eludir este tipo de ataque al permitir que un host actúe como si tuviera una cola más grande de la que realmente tiene. En caso de un ataque de inundación SYN, el host puede usar cookies SYN para enviar un SYN-ACK a un cliente, pero elimina la entrada SYN para ese cliente. Básicamente, esto permite que el host funcione como si nunca se hubiera recibido SYN.
Sin embargo, una vez que el cliente recibe este SYN-ACK con cookies SYN, el ACK correspondiente enviado de vuelta al host incluye datos relacionados con el SYN-ACK original. El anfitrión puede entonces usar este ACK y las cookies SYN incluidas para reconstruir el SYN-ACK original y la entrada apropiada para esa solicitud original. Una vez hecho esto, se puede permitir que el cliente se conecte al host, pero todo el proceso eludió efectivamente la cola que, de otro modo, podría estar ocupada por un ataque de inundación SYN.