Archivo de la etiqueta: SYN flood

Ataque de denegación de servicio I

Diagrama DDoS

Esquema ataque DDoS – Fuente imagen: Wikimedia

Se denomina como ataque de denegación de servicio aquel ataque que busca que un servicio o sistema sea inaccesible para los usuarios legítimos. Generalmente se suelen denominar como DoS (Denial od Service) o DDoS (Distributed Denial of Service) en caso de ser un ataque coordinado desde diferentes orígenes.

Los ataques de denegación de servicio buscan saturar las capacidades del sistema atacado ya sea enviando una gran cantidad de tráfico para ser gestionado o bien lanzando múltiples conexiones hasta que llega un punto que el servicio atacado ya no es capaz de responder. Se consigue así que los legítimos usuarios no puedan acceder al servicio generando pérdidas, ya sean económicas o de reputación a las víctimas.

Un ataque de estas características no busca pasar desapercibido sino más bien al contrario. Se tratan de ataques muy visibles, tanto para los administradores de los sistemas atacados como para sus clientes. Debido a la mejora en las líneas de comunicaciones de los usuarios y empresas, tanto en capacidad de transferencia bruta como en la posibilidad de ampliar esta capacidad según las necesidades, cada vez es más complicado realizar un ataque de saturación efectivo simplemente enviando tal cantidad de tráfico que las líneas queden saturadas e inoperativas por lo que es común lanzar el ataque de forma coordinada desde diferentes equipos de tal manera que actualmente los ataques DDoS son más comunes que los DoS.

En este artículo veremos los ataques clásicos utilizados para generar DoS y los conceptos de su funcionamiento. Actualmente existen técnicas más complejas y que aprovechan fallos en el diseño de los protocolos de red que usamos diariamente.

Envío de gran cantidad de información

Probablemente sea el ejemplo más sencillo de este tipo de ataques. Se trata de enviar grandes volúmenes de tráfico de tal manera que se llegue a saturar el servicio bien porque los servidores no sean capaces de gestionarlo o bien porque la línea de comunicaciones que conecta con el servicio quede saturada. Un ejemplo sería el envío de ficheros de gran tamaño (cientos de MB) a un servidor FTP hasta conseguir que el servicio quede bloqueado.

Una técnica conocida que entraría dentro de esta categoría es el ICMP Flood (también conocido como ping de la muerte) en el que se envían a la víctima una gran cantidad de peticiones de ping con un tamaño excesivo.  En este caso se busca saturar el ancho de banda de las comunicaciones y no tanto los servidores que hay detrás.

Una variante de la inundación por ICMP, conocida como SMURF, consiste en aprovechar el funcionamiento de las direcciones broadcast. El atacante genera peticiones ICMP con la dirección de origen de la víctima. Todos los ordenadores que reciban la petición de ping (que pueden ser cientos o miles en función del tamaño de la red) responderá a la dirección que creen que es el origen, por lo que éste equipo se verá colapsado por una gran cantidad de tráfico inesperado.

Ataques en la negociación TCP

Three Way Handshake

Esquema proceso Three-Way Handshake – Fuente imagen: Wikimedia

El protocolo TCP requiere que antes de empezar a enviar información entre servidores se establezca una conexión. El establecimiento de esta conexión implican un protocolo de tres pasos. Podemos resumir los tres pasos (three way handshake)  en un establecimiento inicial (SYN), una respuesta a ese establecimiento (SYN-ACK) y una confirmación final (ACK).

La manipulación de estos tres pasos es permite algunos de los ataques de denegación de servicio más clásicos:

SYN Flood

El primer ataque consiste simplemente en enviar una gran cantidad de paquetes SYN para iniciar una nueva conexión pero sin responder nunca con la confirmación final. El servidor que reciba la petición reservará recursos (memoria, puertos en protocolos TCP, etc.) para dar servicio a estas peticiones durante un tiempo (momento en el que el sistema decida que ha ocurrido un error y no se podrá establecer la conexión). Si el atacante consigue enviar suficientes peticiones nuevas antes de que se vayan descartando las más antiguas puede saturar la capacidad del servicio dejándolo inutilizado para cualquier usuario legítimo.

RST Flood

Cuando los administradores establecieron sistemas de protección que evitaban el establecimiento de conexiones maliciosas usando la técnica anterior se empezó a aprovecharse del sistema de cierre de conexiones establecidas (que también implica tres pasos). Así los atacantes realizaban una conexión completa para, acto seguido, pedir el cierre de la misma (mensaje RST) sin llegar a cumplir el último paso que confirmaría el cierre. Así el servidor víctima debía mantener información de estado de la conexión (consumiendo recursos) hasta que la diera por finalizada pasado un tiempo. Nuevamente si el atacante podía generar suficientes cierres malintencionados podía colapsar la capacidad de respuesta del servidor víctima.

——-