No es necesario contar con PCs, ordenadores portátiles o equipamiento con altas prestaciones. El ataque TCP SYN puede funcionar incluso en ordenadores aún compatibles con conexiones a Internet muy lentas. Esta es una amenaza que acecha tanto al ámbito doméstico como también en el ámbito profesional de pequeña, mediana e incluso gran empresa. Los ataques TCP SYN es uno de los ataques DoS más utilizados para bloquear un servidor, aunque hay formas para mitigarlo de manera eficaz.
Los ataques DoS son conocidos por ser devastadores con servidores, especialmente aquellos que brindan servicios web. Mediante la generación de tráfico basura, se niega la posibilidad al tráfico real de realizar peticiones legítimas. Por otro lado, los ataques DDoS son los que más han hecho historia desde hace más de 20 años. Una de las tareas esenciales de todo aquel que está involucrado en la seguridad informática y que desea prevenir ataques, es conocer detalladamente el funcionamiento de los mismos. Así, los planes de acción a desarrollar e implementar son mucho más eficaces.
Cómo los ataques TCP SYN afectan a los servidores
El blanco principal de este tipo de ataque son los hosts que corren procesos TCP. Así, explota la vulnerabilidad del proceso TCP three-way handshake (apretón de manos por tres vías). Dicho proceso está diseñado de forma tal que dos computadoras puedan negociar los parámetros de conexión socket TCP, antes de la transmisión de datos como solicitudes SSH y HTTP. Esquema del TCP three-way handshake:
- El Host A envía un paquete TCP SYNchronize al Host B.
- Host B recibe con éxito el SYN de parte de Host A.
- Host B envía un SYNchronize-ACKnowledgement al Host A.
- Host A recibe el SYN-ACK de parte de Host B.
- Host A envía un ACKnowledge a Host B.
- Host B recibe el ACK de Host A.
Considerando el diagrama de más arriba y asumiendo que Host A (Cliente) y Host B (Servidor), el atacante se hace pasar por el Host A. Luego, comienza a enviar un número excesivo de peticiones TCP SYN bajo direcciones IP aleatorias a Host B.
Host B toma por sentado que las peticiones recibidas son legítimas, por lo que responde con un SYN-ACK. Sin embargo, no llega a recibir el ACK final. Como consecuencia, la petición de conexión nunca se concreta. Mientras, debe seguir enviando SYN-ACKs a las demás peticiones aún sin recibir respuesta. Así, el Host B ya no está disponible para las verdaderamente legítimas peticiones de conexión.
Te sugerimos aquí varias maneras de mitigar este tipo de ataques:
- SYN Cookies: Se realiza un proceso de hashing criptográfico, mediante un Número de Secuencia Inicial y el SYN-ACK inicial que se genera. Ese número se origina a partir de la dirección IP de origen, IP de destino, números de puerto y un número secreto. El NSI tiene utilidad cuando el servidor recibe el ACK de parte del cliente, hace validaciones mediante el chequeo de las coincidencias incrementales de ese número. Finalmente, se aloja memoria necesaria para establecer la conexión TCP.
- Aumento del Backlog Queue: Cada sistema operativo tiene un límite de BQ para poder almacenar peticiones de conexión TCP sin terminar. Una vez que se llega ese límite, se terminan esas conexiones. Para mitigar el ataque SYN se puede aumentar la memoria del Backlog para poder dar igualmente lugar a las conexiones legítimas.
- Limitar el tiempo de las conexiones sin establecer totalmente: los sistemas operativos permiten configurar el kernel para reducir el tiempo por el que una conexión TCP se guarda, pasado este tipo, si no se ha establecido totalmente se procede a cerrar la conexión definitivamente.
- Filtro del Firewall: El límite del origen (source threshold) puede cambiar, mediante la configuración que permita que el firewall termine conexiones justo antes de ese nuevo límite de origen establecido.
Tipos de ataques SYN
El ataque TCP SYN del que hablamos, resulta ser el más básico de los ataques SYN. Estos tienen muchos tipos diferentes, los cuales se comportan de forma diferente. Ya sea en la ejecución, como en la realización del ataque de forma inicial. Estos son:
- SYN-ACK: En lugar del realizar el envío de paquetes SYN, el atacante envía una serie de paquetes ACK a la víctima. Dado que los paquetes no están vinculados a una solicitud SYN inicial de forma legítima, el host receptor trata de responder con paquetes RST. Buscando dar un cierre a la conexión que no ha solicitado, y como tal, consumiendo recursos en todo el proceso.
- Ataque Split Handshake: Con este ataque se trata de eludir las soluciones de seguridad simulando procesos de conexión de tres vías válidas. Pero en este caso, llevan un orden un poco alterado. Este ataque puede comenzar tanto con envíos de paquetes SYN-ACK como los SYN habituales.
- Ataque SYN con IP falsa: El atacante realiza el envío de los paquetes SYN con direcciones IP falsificadas. Luego en el servidor, se realiza el envío de respuestas SYN-ACK a la dirección que es falsificada. Esto puede resultar en denegaciones de servicio, pero no solo para el objetivo original, sino también para la dirección que ha realizado la falsificación de la dirección IP.
- Ataque SYN Flood con opción TCP: Algunos atacantes tratan de adjuntar opciones TCP a los paquetes SYN. Esto les ayuda a generar un consumo de recursos mayor, con el objetivo de hacer que el sistema baje su rendimiento. En estos casos, ocurre porque será necesario procesar todas las opciones aparte de seguir manejando la inundación SYN que ha enviado el atacante.
Es de vital importancia para los administradores de redes y sistemas, comprobar la naturaleza y las posibles variantes de este tipo de ataques SYN. Esto ayudará a implementar las medidas de seguridad necesarias, para tratar de prevenir los ataques. Y en caso de que se llegue a producir, poder resolverlo lo antes posible con el menor impacto. A medida que los atacantes disponen de habilidades más pulidas, es muy importante mantenerse informado de estas amenazas.
Tal y como podéis ver, aunque el ataque TCP SYN es muy popular, hay maneras eficaces de mitigar el efecto de esta técnica.