Una inundación SYN es una forma de ataque DoS en el que un atacante envía una sucesión de solicitudes SYN
al servidor de un objetivo en un intento de consumir suficientes recursos del servidor para que el sistema no responda al tráfico legítimo [1] .
Una solicitud
SYN
y un paqueteSYN
son lo mismo
Los ataques de inundación SYN funcionan explotando el proceso de protocolo de enlace de una conexión TCP. En condiciones normales, TCP presenta tres procesos distintos para establecer una conexión (Figura 1a).
SYN
( sincronización ) al servidor.SYN-ACK
para ACK
( reconocer ) la comunicación.ACK
para acusar recibo del paquete del servidor y se establece la conexión.Después de completar esta secuencia de envío y recepción de paquetes, la conexión TCP está abierta y puede enviar y recibir datos. Esto se denomina protocolo de enlace de tres vías TCP. Esta técnica es la base de toda conexión establecida mediante TCP.
Para crear un DoS, un atacante aprovecha el hecho de que después de recibir un paquete SYN
inicial, el servidor responderá con uno o más paquetes SYN-ACK
y esperará el paso final del protocolo de enlace. Cloudflare [2] describe cómo funciona (Figura 1b):
SYN
al servidor objetivo, a menudo con direcciones IP falsificadas.ACK
final, que nunca llega, el atacante continúa enviando más paquetes SYN
. La llegada de cada nuevo paquete SYN
hace que el servidor mantenga temporalmente una nueva conexión de puerto abierto durante un período de tiempo determinado y, una vez que se han utilizado todos los puertos disponibles, el servidor no puede funcionar normalmente. El ataque a este repositorio se realizó en una VM. Se necesitan tres máquinas para realizar el ataque. Una máquina se utiliza como atacante , otra máquina se utiliza como víctima (es decir, el servidor) y la tercera máquina se utiliza como observador (es decir, el cliente).
Para configurar el ataque, se pueden configurar tres máquinas virtuales en la misma computadora host. Alternativamente, se pueden configurar dos máquinas virtuales en una computadora host con la propia máquina host actuando como la tercera computadora.
Este ataque se implementó bajo el supuesto de que los atacantes están en la misma red física que las víctimas, simplificando así la tarea de determinar los números de secuencia TCP y los números de puerto de origen. Se pueden utilizar herramientas de rastreo para recopilar la información necesaria.
El ataque a este repositorio se realizó mediante la herramienta netwox
. Luego, se utilizó una herramienta de rastreo como Wireshark [3] para capturar los paquetes atacantes. Mientras el ataque estaba en curso, se ejecutó netstat -na
en la máquina víctima para comparar el resultado con el anterior al ataque.
# check the size of the queue for holding half-open connections
sudo sysctl -q net.ipv4.tcp_max_syn_backlog
# check the current usage of the queue;
# i.e., the number of half-open connections associated with some listening port
netstat -na
# one netwox tool that may be useful is tool number 76: synflood
netwox 76 --help
Cookie SINC:
El ataque a este repositorio se llevó a cabo manipulando cookies SYN.
El uso de cookies SYN permite que un servidor evite perder conexiones cuando la cola SYN se llena. En lugar de almacenar conexiones adicionales, la entrada de la cola SYN se codifica en el número de secuencia enviado en la respuesta SYN-ACK. Si luego el servidor recibe una respuesta ACK posterior del cliente con el número de secuencia incrementado, el servidor puede reconstruir la entrada de la cola SYN utilizando información codificada en el número de secuencia TCP y continuar como de costumbre con la conexión.
Si bien este esfuerzo de mitigación pierde cierta información sobre la conexión TCP, es mejor que permitir que DoS afecte a usuarios legítimos como resultado de un ataque.
Las cookies SYN fueron creadas por DJ Bernstein [4] en respuesta directa a la inundación SYN.
Utilice el comando sysctl
para activar/desactivar el mecanismo de cookies SYN:
sudo sysctl -a | grep cookie # Display the SYN cookie flag
sudo sysctl -w net.ipv4.tcp_syncookies=0 # turn off SYN cookie
sudo sysctl -w net.ipv4.tcp_syncookies=1 # turn on SYN cookie
Las cookies SYN son una de las muchas contramedidas que se pueden implementar para detener la inundación SYN. Otras mitigaciones incluyen aumentar el tamaño máximo de la cola, reducir el temporizador SYN-RECEIVED
y reciclar la conexión TCP medio abierta más antigua.
^ "Aviso CERT CA-1996-21 TCP SYN Flooding y ataques de suplantación de IP" Universidad Carnegie Mellon
^ "Ataque de inundación SYN" Cloudflare
^ "Acerca de Wireshark" Fundación Wireshark
^ "Galletas SYN" DJ Bernstein
Gracias por su interés, ¡este proyecto fue divertido y revelador!