Tipos de ataques DDoS y formas de protegerse contra ellos
13:04, 08.07.2021
¿Qué son las variantes de ataque DDoS?
La clasificación más general de los ataques DDoS es según qué parte de la infraestructura de servidores de la que depende su sitio web es el objetivo. Estos tipos son: volumétricos, el nombre sugiere que utilizan puro volumen de tráfico para sobrecargar su sistema; de protocolo, el nombre sugiere que abusan de los protocolos de TI; y ataques de aplicación, donde los atacantes se aprovechan de las vulnerabilidades de sus aplicaciones. Veamos cada tipo y sus subtipos.
Ataques volumétricos
Los ataques DDoS volumétricos tienen como objetivo saturar su servidor con tráfico a través de cualquier canal posible. Estos ataques devoran la máxima cantidad de ancho de banda y recursos disponibles, provocando una drástica disminución del rendimiento hasta el tiempo de inactividad.
Inundaciones UDP
Los ataques de inundación UPD son el tipo de ataque que abusa de la forma en que funciona el Protocolo de Datagramas de Usuario. Lo que tiene de especial este protocolo es que no requiere un apretón de manos, como en el caso de TCP (protocolo de control de transmisión). Se supone que el servidor que recibe un paquete UPD comprueba si hay una aplicación correspondiente que, en caso de tráfico UPD auténtico, debe ser seguida por numerosos procesos automáticos dentro del servidor. Las inundaciones UPD no son más que torrentes masivos de paquetes UPD que no tienen nada que ver con las aplicaciones en el servidor y hacen que éste los procese, consumiendo así sus recursos.
Para ejecutar las inundaciones UPD, los atacantes utilizan la dirección IP del servidor y cualquier número de puerto abierto.
Un subtipo de inundación UDP es la inundación de fragmentación UDP, en la que se envían paquetes más grandes y fragmentados, obligando al servidor a intentar inútilmente ensamblarlos.
Los ataques específicos de amplificación UDP envían una petición UDP a varios servidores, haciendo que respondan en la IP de la víctima y consumiendo así su ancho de banda y sus recursos de red.
Inundación CharGEN
CharGEN (Character Generator) Flood es un tipo de ataque de inundación UDP que explota el Protocolo Generador de Caracteres (CharGEN), que se ejecuta en el puerto UDP 19. El objetivo original del servicio CharGEN era generar caracteres, en su mayoría caracteres ASCII, para responder a las peticiones de varios clientes con fines de prueba, depuración y medición.
Los atacantes utilizan la IP de la víctima para enviar peticiones a numerosos dispositivos conectados a Internet. A continuación, los dispositivos responden a las peticiones al servidor objetivo, sobrecargándolo.
Inundación ICMP (Ping)
ICMP (Internet Control Message Protocol) es un protocolo utilizado con fines de diagnóstico y control dentro de las redes IP. Se utiliza para que los dispositivos de red intercambien mensajes de error específicos y comandos de información.
Los atacantes primero generan y envían un gran volumen de paquetes de solicitud de eco ICMP a la red de la víctima, lo que provoca la saturación de la red.
Dado que el protocolo ICMP no tiene estado, no es necesario que se establezca una conexión entre el emisor y el receptor, por lo que se puede generar un volumen importante de paquetes ICMP sin necesidad de recursos significativos.
Inundación por fragmentación ICMP
La fragmentación ICMP es un subtipo de ataque de inundación ICMP en el que se utilizan paquetes ICMP fragmentados, lo que también obliga al servidor objetivo a intentar "darles sentido".
Ataques basados en protocolos
Los ataques DDoS de protocolo se dirigen a protocolos específicos de la capa de red o de transporte en lugar de utilizar un mero volumen, por lo que se dirigen a un recurso muy específico.
Explotación del protocolo IP nulo
En un ataque IP Null, los atacantes aprovechan una vulnerabilidad en la pila del Protocolo de Internet (IP) de un sistema objetivo, enviando paquetes IP con el campo de protocolo IP establecido en 0, que en la mayoría de los casos es un número de protocolo no válido o no utilizado. De este modo, el servidor acaba intentando averiguar qué hacer con todos estos paquetes y se ve desbordado.
Inundaciones del protocolo TCP
El Protocolo de Control de Transmisiones regula la comunicación de distintos dispositivos a través de una red. Existen algunas variaciones de las inundaciones del protocolo TCP:
- Inundación SYN: En un ataque de inundación SYN, el atacante utiliza paquetes TCP SYN (sincronización), enviándolos al servidor de la víctima y simulando iniciar una conexión. El atacante no envía el paquete ACK final, impidiendo así que se complete el proceso de handshake, por lo que los paquetes pendientes se acumulan y acaban saturando al servidor.
- Inundación ACK: A la inversa del enfoque anterior, en la inundación ACK los atacantes envían un número excesivo de paquetes ACK (acuse de recibo) falsos, que el servidor intenta hacer coincidir con los paquetes SYN-ACK que no existen.
- Inundación SYN-ACK: Un paso atrás, el atacante explota los paquetes SYN-ACK, forzando al servidor a intentar hacerlos coincidir con paquetes SYN inexistentes.
- Inundación de fragmentación ACK: Un subtipo de inundación ACK - el atacante envía paquetes ACK fragmentados abrumando la memoria del servidor que intenta reconstruirlos.
- Inundación RST/FIN: De forma similar, los atacantes utilizan paquetes RST o FIN, obligando al servidor a esforzarse por emparejarlos con sesiones TCP sin poder hacer nada.
- Inundación de múltiples sesiones ACK Spoofed: En el caso de este tipo de ataque, el atacante combina paquetes ACK con paquetes RST o FIN para imitar el tráfico genuino y eludir los mecanismos de defensa. El mismo principio se aplica en el ataque Multiple SYN-ACK Spoofed Session Flood, en el que el atacante utiliza tanto paquetes ACK como SYN.
- Ataque de IP sinónima: Un subtipo de ataque SYN en el que el atacante asigna la misma IP para el origen y el destino del paquete SYN creando confusión, por lo que el servidor intenta responderse a sí mismo o averiguar, lo que está mal.
Ataques a sesiones
Los ataques DDoS de sesión son ataques que desbordan la capacidad del servidor o de una aplicación para gestionar sesiones. Los atacantes bombardean una aplicación web específica con peticiones HTTP maliciosas, cada una de ellas diseñada para crear una nueva sesión o consumir recursos del servidor asociados a la gestión de sesiones, lo que acaba por agotar la capacidad del sistema para gestionar y procesar las tareas relacionadas con las sesiones.
Agotamiento sigiloso de la conexión o Slowloris
Los ataques Slowloris son el tipo de ataques DDoS que se dirigen a servidores web aprovechando las debilidades en la forma en que los servidores web gestionan las conexiones entrantes. Los atacantes establecen el mayor número posible de conexiones con el servidor objetivo, para lo que suelen utilizar peticiones HTTP GET. Una vez establecidas las conexiones, los atacantes evitan enviar una petición HTTP completa en una sola ráfaga. En su lugar, envían paquetes divididos en pequeños fragmentos y a una velocidad mínima, de modo que el objetivo no pueda abandonar las conexiones debido a su inactividad, mientras siguen ocupándolo y consumiendo los recursos disponibles.
Ataque pitufo
Smurf Attack es un tipo de ataque DDoS que explota el Protocolo de Mensajes de Control de Internet (ICMP). Se trata de un ataque de amplificación de reflexión. El atacante envía paquetes de solicitud de eco ICMP falsificados a varios ordenadores de una red, siendo la dirección IP falsificada la de la red de la víctima.
Ataque Fraggle
Los ataques Fraggle son un tipo diferente de ataque Smurf, en el que se utiliza tráfico UPD en lugar de tráfico ICMP.
Ataque Ping of Death
Otro ataque basado en protocolos cuyo objetivo es saturar la memoria disponible, el ataque Ping of Death, explota la longitud máxima de un paquete IP de 65.535 bytes. Aunque el tamaño máximo típico de una pieza de datos enviada a través de una red Ethernet es de unos 1.500 bytes, los atacantes enviarán paquetes fragmentados que juntos superan el tamaño de 65.535 bytes y saturan la memoria.
Cañón de iones de órbita baja (LOIC)
Low Orbit Ion Cannon es un software de código abierto que se desarrolló originalmente para probar la resistencia a la carga de un dispositivo mediante el envío de muchos paquetes. Lamentablemente, los atacantes aprendieron a explotarlo para realizar un ataque DDoS desplegándolo en redes de bots.
Cañón de iones de alta órbita (HOIC)
Una variante más avanzada de LOIC, el cañón de iones de alta órbita, es una herramienta diseñada específicamente para realizar ataques DDoS, con más funciones y capacidades, lo que permite realizar ataques DDoS similares a LOIC pero más perturbadores y peligrosos.
Ataques en la capa de aplicación: Servicios objetivo
Los ataques DDoS en la capa de aplicación aprovechan las vulnerabilidades del software, provocando principalmente la denegación de la aplicación, pero también afectando potencialmente a otras aplicaciones y a todo el dispositivo, sobrecargando el ancho de banda, la CPU y la memoria.
Inundaciones HTTP: Sobrecarga de los servicios web
Los ataques HTTP Flood son ataques a nivel de aplicación que abusan de los comandos HTTP. Los tipos más comunes incluyen:
Ataques GET: Los atacantes crean un enorme volumen de peticiones GET paralelas para recuperar recursos del servidor. Son especialmente peligrosos para los servidores web.
Inundación POST: Los ataques POST consisten en numerosas peticiones HTTP POST cuyo objetivo original es enviar datos. Estos ataques pueden ser incluso más dañinos, ya que el envío de datos suele consumir más recursos.
Los ataques POST: Low-and-Slow son un subtipo de los ataques POST flood, en los que una solicitud para enviar una gran cantidad de datos va seguida de datos enviados en trozos minúsculos y a un ritmo extremadamente lento. Por un lado, esto bloquea los recursos del servidor y, por otro, elude los mecanismos de protección DDoS que esperan grandes trozos de datos.
Ataque de sesión única o solicitud única: Otra forma de eludir los mecanismos comunes de protección DDoS que están adaptados para detectar grandes cantidades de paquetes, este tipo de ataque empaqueta múltiples peticiones diferentes en un paquete HTTP.
Inundación HTTP fragmentada: El mismo principio de fragmentación se aplica a los ataques de inundación HTTP. Los paquetes se fragmentan y se envían a un ritmo extremadamente lento para bloquear los recursos del servidor.
Inundación GET recursiva: Un tipo de inundación GET, donde el mismo recurso se solicita repetidamente hasta que el servidor se ve desbordado.
Inundación GET Recursiva Aleatoria: Un subtipo del tipo anterior, ahora las páginas se solicitan recursivamente de forma aleatoria para evitar ser detectadas por los mecanismos de protección.
ReDoS: La amenaza del agotamiento de recursos
Las expresiones regulares (regex) son patrones utilizados para emparejar combinaciones de caracteres en cadenas, ampliamente utilizados en lenguajes de programación aplicaciones web y sistemas de seguridad de red para tareas como la validación de entradas, el análisis sintáctico y la concordancia de patrones.
Los ataques de denegación de servicio por expresiones regulares (ReDoS) utilizan patrones regex vulnerables que muestran una complejidad de tiempo exponencial o superlineal al procesar determinadas entradas. El atacante envía cadenas de entrada especialmente diseñadas al sistema objetivo, diseñadas para activar el patrón de expresión regular vulnerable y hacer que el motor de expresión regular entre en un estado de retroceso o recursividad excesivos.
Exploración de tácticas DDoS adicionales
Además de los tres tipos principales, a saber, ataques de volumen, de protocolo y de aplicación, existen algunos tipos de ataque menos comunes que no encajan en la clasificación general.
DoS persistente avanzado (APDoS)
Advanced Persistent DoS (APDoS) es un enfoque de los ataques DDoS más que un tipo específico del mismo. APDoS sugiere un ataque que se realiza de forma repetida y continua durante un largo periodo de tiempo, combinando y alternando varios enfoques que se han descrito anteriormente. Suelen estar organizados por grandes organizaciones de hackers para perturbar gravemente la infraestructura de una determinada organización.
Ataques DDoS multivectoriales
Los ataques multivectoriales sugieren el despliegue simultáneo de diferentes tipos de ataques DDoS. A veces se realizan con un ataque en sinergia con otro, y su objetivo es causar más daño o tener más posibilidades de éxito en caso de que uno de los ataques sea bloqueado por la protección.
Ataques DDoS de día cero
El término ataque DDoS de día cero se refiere a un ataque DDoS que explota una vulnerabilidad aún no conocida en software, protocolos o sistemas, que ni siquiera ha tenido la oportunidad de ser parcheada.
Conclusión
Como puede ver, los tipos de ataques DDoS son extremadamente diversos y capaces de golpear su servidor a diferentes niveles por lo que una protección DDoS cualificada es la única manera de no preocuparse por este tipo de amenaza cibernética.