Cuando leemos prácticamente cualquier libro de seguridad de las comunicaciones, aparece catalogado como ataque de denegación de servicio (DoS) el conocido como SYN flood. Este ataque se basa en el esquema de funcionamiento del protocolo a tres vías usado para establecer conexiones TCP. Sin entrar en los detalles del funcionamiento del protocolo, podemos resumir el propio ataque como una solicitud de conexión (SYN) por parte del cliente (posiblemente spoofeado), contestada por el servidor (SYN/ACK), pero sin confirmación de la respuesta por parte del propio cliente (ACK). Esta situación hace que el servidor mantenga una serie de conexiones abiertas en la cola Backlog (consumiendo recursos), pudiendo llegar a impedir nuevas conexiones legítimas al sistema hasta que las conexiones sean finalizadas o venza el timeout asociado.
En esta entrada vamos a hablar de una medida de contención para este ataque proporcionada por Check Point llamada SYNDefender.
SYNDefender es una característica de SmartDefense (herramienta de protección ante ataques) que nos ayuda a protegernos de ataques TCP SYN flood basada en la interceptación de los paquetes SYN, que media en los intentos de conexión antes de que éstos puedan alcanzar el sistema final, siendo posible configurar la funcionalidad de forma global o por gateway. SYNDefender tiene dos modos de funcionamiento principales: el modo relay y el modo SYN Cookie.
En el modo relay, nos aseguramos que la conexión TCP es completa antes de enviarla al sistema final; el gateway intercepta el paquete SYN destinado al servidor no dejándolo llegar a su destino, sino que por el contrario, envía un paquete SYN/ACK al cliente, activando un temporizador de reset. Si el cliente envía el ACK y completa de esta forma la conexión, el propio gateway inicia el establecimiento de conexión hacia el servidor (traduciendo números de secuencia), y una vez completada, comienza el flujo de datos. Si el gateway no recibe el paquete ACK por parte del cliente antes de que el temporizador finalice o recibe un paquete RESET (cuando no era lo que esperaba), finaliza la conexión inmediatamente.
En el modo cookie, cuando el cliente envía un paquete SYN al servidor, el gateway intercepta el paquete y le contesta un SYN/ACK con cookie. Después de recibir el paquete ACK por parte del cliente, el cual completa el establecimiento de la conexión, SYNDefender transforma el paquete ACK en un paquete SYN, registra la conexión en la tabla de conexiones, y la envía hacia el servidor, procesándose de la misma manera que en el modo relay.
Aparte de estos dos, en Check Point existen otros modos de funcionamiento, los cuales están soportados en otras versiones de la plataforma, como son el modo Gateway o Passive SYN Gateway.
Como acabamos de ver, y como nos indicaban en los comentarios hace unos días sobre los números de secuencias TCP los fabricantes de sistemas cortafuegos cada vez más implementan soluciones para detectar y filtrar patrones de ataque conocidos, desviaciones de los protocolos de red, etc, dotando a sus sistemas de mecanismos inteligentes y proactivos, los cuales nos permiten analizar el tráfico en las capas superiores de la pila OSI para poder detectar actividad sospechosa. En futuras entradas seguiremos informando de estas y otras tecnologías que sirven para hacer a las empresas más seguras y darnos a los administradores de red más quebraderos de cabeza ;)
[…] Checkpoint SYNDefender (…) En esta entrada vamos a hablar de una medida de contención para este ataque proporcionada por Check Point llamada SYNDefender… […]