TCP SYN Flood, dentro de los ataques DoS, existe uno asociado directamente a éste protocolo y que consiste en el envío masivo de paquetes de establecimiento de conexión (SYN) contra un sistema.
La recepción de estas solicitudes provoca que el sistema destino, objetivo del ataque (target), reserve cierta cantidad de memoria (buffers) para almacenar las estructuras de datos asociadas a cada una de las nuevas conexiones en curso.
TCP SYN Flood
El protocolo TCP requiere del establecimiento de una conexión, que se realiza en tres pasos. Tras la recepción del paquete SYN, responderá con su paquete SYN-ACK, permaneciendo a la espera del paquete final (ACK) que confirma el establecimiento de la conexión TCP (three-way handshake).
La conexión permanece en el estado semiabierto, concretamente SYN_RCVD. El atacante no enviará nunca ese ACK esperado, por lo que la memoria del destino es copada en su totalidad por conexiones falsas, no siendo posible el establecimiento de conexiones de clientes reales, y por tanto anulándose el servicio.
Asimismo, ciertos sistemas imponen un número máximo de conexiones en este estado, por lo que una vez alcanzado éste, no será posible establecer más conexiones. Tras un periodo de tiempo controlado por un temporizador (que suele ser de 2 minutos), las conexiones que continúan en este estado expiran, permitiendo la creación de nuevas conexiones. Esto solo será posible si el ataque TCP SynFlood ha cesado, ya que mientras se mantenga, serán sus nuevos inicios de conexión los que ocuparán el espacio de memoria liberado por las sesiones expiradas.
Suponiéndose un número máximo de conexiones igual a 30, y el temporizador igual a 2 minutos, se podría desarrollar un ataque de este tipo enviando un paquete SYN cada 4 segundos: tiempo necesario por cada conexión para poder enviar el máximo de 30 conexiones en los 120 segundos de expiración.
Normalmente, para que su detección sea más compleja este ataque se realiza variando la dirección IP del emisor, mediante direcciones falsas (IP spoofing), de forma que se simule de forma más fehaciente una situación real de conexiones realizadas por multitud de clientes.
La herramienta hping3
Hping3 es una aplicación para Linux que nos va a permitir analizar y ensamblar fácilmente paquetes TCP/IP. A diferencia de un Ping convencional que se utiliza para enviar paquetes ICMP, esta aplicación permite el envío de paquetes TCP, UDP y RAW-IP.
Junto al análisis de los paquetes, esta aplicación puede ser utilizada también con otros fines de seguridad, por ejemplo, para probar la eficacia de un firewall a través de diferentes protocolos, la detección de paquetes sospechosos o modificados, e incluso la protección frente a ataques DoS de un sistema o de un Firewall.
Para instalar hping3 se puede ejecutar
$ sudo apt-get install hping3
En un entorno controlado es posible realizar esta prueba de concepto. Suponiendo que en nuestra red, tenemos un Servidor Web que atiende el puerto 80/tcp con la IP 192.168.88.3.
$ sudo hping3 -S --flood -V -p 80 192.168.88.3
Luego con nuestros analizadores de red, podemos verificar el comportamiento del mismo ante este ataque.
Fuente | Análisis de seguridad de la familia de protocolos TCP/IP y sus servicios asociados
0 comentarios