En un ataque de inundación ACK, el atacante intenta sobrecargar al objetivo con paquetes ACK falsos, que supuestamente se utilizan para reconocer que un dispositivo ha recibido con éxito los datos transmitidos.
Después de leer este artículo podrás:
Contenido relacionado
Ataques DDoS conocidos
Ataque DDoS basado en memcached
¿Qué es un ataque DDoS?
¿Qué es una red de robots (botnet) de DDoS?
Gestor de arranque DDoS/Estresador de IP
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
Un ataque de inundación de ACK se produce cuando un atacante intenta sobrecargar un servidor con paquetes ACK de TCP. Como pasa con otros ataques DDoS, el objetivo de una inundación de ACK es denegar el servicio a otros usuarios al ralentizar o colapsar el objetivo con datos basura. El servidor atacado tiene que procesar cada paquete de ACK recibido, lo cual consume tanta potencia informática que no puede servir a los usuarios legítimos.
Imaginemos que un bromista llena el buzón de voz de alguien con mensajes falsos para que no lleguen los mensajes de voz de otras personas. Ahora, imaginemos que cada uno de esos mensajes falsos dice lo siguiente: "Hola, te llamo para decirte que he recibido tu mensaje." Algo parecido ocurre en un ataque DDoS de inundación de ACK.
Todos los datos que se envían por Internet se dividen en segmentos más pequeños llamados paquetes. Pensemos en cuando alguien quiere hacer un comentario profundo o contar una historia larga en Twitter, y tiene que dividir su texto en segmentos de 280 caracteres y publicarlo en una serie de tweets en lugar de hacerlo todo de una vez. Para aquellos que no usan Twitter, podemos recordar cómo los teléfonos móviles, cuando no tenían aplicaciones de mensajes de texto específicas, solían dividir los mensajes de texto largos en secciones más pequeñas.
El Protocolo de control de transmisión (TCP) es una parte fundamental de la comunicación en Internet. Los paquetes que se envían con el protocolo TCP tienen información adjunta en el encabezado del paquete. El protocolo TCP usa el empaquetado del paquete para indicar al destinatario cuántos paquetes hay y en qué orden deben llegar. El encabezado también puede indicar la longitud del paquete, el tipo de paquete, etc.
Esto funciona de forma similar a cuando se le pone un nombre a una carpeta de archivos para que se sepa lo que hay dentro. Si volvemos al ejemplo de Twitter, la gente que publica una larga serie de tweets suele indicar cuántos tweets hay en total, y los numera para que los lectores puedan seguir el hilo sin problemas.
ACK es la abreviatura de "acuse de recibo." Un paquete ACK es cualquier paquete TCP que acusa recibo de un mensaje o una serie de paquetes. La definición técnica de un paquete ACK es un paquete TCP con el indicador "ACK" activado en el encabezamiento.
Los paquetes ACK forman parte del protocolo de enlace TCP, una serie de tres pasos que inician una conversación entre dos dispositivos conectados en Internet (igual que la gente se saluda con un apretón de manos en la vida real antes de iniciar una conversación). Los tres pasos del protocolo de enlace TCP son:
El dispositivo que inicia la conexión (el portátil de un usuario, por ejemplo) inicia el protocolo de enlace a tres bandas al enviar un paquete SYN (abreviatura de "sincronizar"). El dispositivo en el otro extremo de la conexión (supongamos que es un servidor que aloja un sitio web de compras en línea) responde con un paquete SYN ACK. Por último, el portátil del usuario envía un paquete ACK, y se completa el protocolo de enlace a tres bandas. Este proceso garantiza que ambos dispositivos están conectados y preparados para recibir paquetes adicionales que, en este ejemplo, permitirían que el usuario cargara el sitio web.
Sin embargo, este no es el único momento en el que se utilizan los paquetes ACK. El protocolo TCP requiere que los dispositivos conectados acusen recibo de que han recibido todos los paquetes en el orden correcto. Supongamos que un usuario visita una página web que contiene una imagen. La imagen se divide en paquetes de datos y se envía al navegador del usuario. Una vez llega la imagen completa, el dispositivo del usuario envía un paquete ACK al servidor anfitrión para confirmar que no falta ningún píxel. Sin este paquete ACK, el servidor anfitrión tiene que volver a enviar la imagen.
Ya que un paquete ACK es cualquier paquete TCP con el indicador ACK configurado en el encabezamiento, el ACK puede formar parte de un mensaje diferente que el portátil envía al servidor. Si el usuario rellena un formulario y envía los datos al servidor, el portátil puede hacer que uno de esos paquetes sea el paquete ACK de la imagen. No hace falta que sea un paquete independiente.
Los ataques de inundación ACK tienen como objetivo dispositivos que necesitan procesar cada paquete que reciben. Los objetivos más probables de una inundación ACK son los firewalls y los servidores. Load Balancers, enrutadores y conmutadores no son susceptibles de sufrir estos ataques.
Los paquetes ACK legítimos e ilegítimos son prácticamente iguales, lo que hace que las inundaciones ACK sean difíciles de detener si no se recurre a una red de entrega de contenido (CDN) para filtrar los paquetes ACK innecesarios. Aunque se parecen, los paquetes usados en un ataque DDoS ACK no incluyen la parte principal de un paquete de datos, que también se conoce como carga útil. Para parecer legítimos, solo tienen que incluir el indicador ACK en el encabezamiento del TCP.
Las inundaciones ACK son ataques DDoS de la capa 4 (capa de transporte). Más información sobre la capa 4 y el modelo OSI.
Un ataque DDoS de inundación SYN ACK es ligeramente diferente a un ataque ACK, aunque la idea básica sigue siendo la misma: sobrecargar al objetivo con demasiados paquetes.
Recordemos cómo funciona un protocolo de enlace TCP de tres vías: el segundo paso del protocolo de enlace es el paquete SYN ACK. Normalmente, un servidor envía este paquete SYN ACK en respuesta a un paquete SYN de un dispositivo cliente. En un ataque DDoS SYN ACK, el atacante inunda el objetivo con paquetes SYN ACK. Estos paquetes no forman parte de un protocolo de enlace de tres vías; su única función es interrumpir el funcionamiento normal del objetivo.
Un atacante también puede utilizar paquetes SYN en un ataque DDoS de inundación SYN.
La CDN de Cloudflare redirige mediante proxy todo el tráfico hacia y desde el servidor de origen de un cliente de Cloudflare. La CDN no pasa ningún paquete ACK que no esté asociado a una conexión TCP abierta. Con esto, se garantiza que el tráfico ACK malicioso no llegue al servidor de origen. La red de Cloudflare de centros de datos es lo suficientemente grande como para absorber ataques DDoS de casi cualquier tamaño, así que las inundaciones de ACK tienen poco o ningún efecto en Cloudflare.
Cloudflare Magic Transit y Cloudflare Spectrum también detienen este tipo de ataques DDoS. Magic Transit redirige mediante proxy el tráfico de la capa 3 y Spectrum el de la capa 4, en lugar del tráfico de la capa 7 como la CDN. Ambos productos bloquean las inundaciones ACK al detectar automáticamente los patrones de ataque y bloquear el tráfico de ataque.
Más información sobre otros tipos de ataques DDoS.