Ataques DDoS, cómo funcionan y cómo se protegen las grandes empresas

En un post anterior, explicamos la importancia de protegernos contra ataques DDoS a través de un ejemplo del mayor ataque de la historia (CloudFlare). Os dejo el enlace por si queréis consultarlo: «Ataque DDoS más grande de la Historia«. Hoy os voy a explicar cómo funcionan este tipo de ataques y la importancia de estar bien protegidos.

Agotamiento de los ciclos de CPU

El procesamiento de paquetes consume recursos de la CPU. Con tráfico legítimo, cada paquete que llega a un servicio genera una acción específica que consume diferentes cantidades de procesamiento según la tarea requerida. Sin embargo, antes de que el paquete llegue al servicio, necesita pasar por varias etapas: los encabezados de la capa 3 se deben analizar y procesar para dirigir el paquete a la interfaz y máquina correctas, mientras que los encabezados de la capa 4 aseguran que el paquete se enrute al socket apropiado (si existe).

Adicionalmente, otros mecanismos pueden inspeccionar el paquete en busca de anomalías o amenazas. Si el volumen de paquetes maliciosos enviados por un atacante es lo suficientemente alto, estos pueden consumir todos los recursos de la CPU, lo que impide el procesamiento de tráfico legítimo y provoca una denegación de servicio (DoS).

Para protegerte contra los ataques de alta velocidad de paquetes, debes poder inspeccionar y descartar los paquetes maliciosos utilizando el mínimo número posible de ciclos de CPU, es decir, mantenidendo suficiente CPU para procesar los paquetes legítimos. Otra opción es  adquirir más CPU, o CPU más rápidas, para realizar el procesamiento, pero ese puede ser un proceso muy largo que conlleva altos costes.

Agotamiento del ancho de banda de la red

El ancho de banda de la red es la capacidad total de datos que se puede enviar a un servidor en un momento dado. Para entenderlo mejor, imagina el ancho de banda como una tubería: una pajilla transporta menos agua que una manguera de jardín. Si un atacante logra enviar más datos basura de los que la tubería puede manejar, tanto los datos legítimos como los no deseados serán descartados antes de que lleguen al servidor, logrando así el objetivo del ataque DDoS.

Protegerse de este tipo de ataques es complicado, ya que, cuando la red está saturada, las opciones son limitadas. Puedes aumentar el tamaño del «conducto» (es decir, aumentar la capacidad del ancho de banda), desviar el tráfico legítimo hacia otro «conducto» que no esté saturado, o intentar que la fuente del ataque deje de enviar tráfico no deseado al sistema.

Cómo se producen los ataques DDoS

Desde el punto de vista de los atacantes, también existen limitaciones a la hora de generar un ataque. Al igual que el servidor necesita ciclos de CPU para recibir un paquete, el atacante también requiere ciclos de CPU para crearlo. Si el costo en términos de potencia de CPU fuera el mismo para enviar y recibir paquetes, el atacante necesitaría la misma cantidad de recursos que la víctima para ejecutar el ataque. Sin embargo, normalmente existe una asimetría de costos, ya que un atacante puede generar paquetes con menos recursos de CPU que los que necesita el servidor para procesarlos. Aun así, generar un ataque no es gratuito y puede requerir una cantidad considerable de potencia de procesamiento.

Para saturar el ancho de banda de una red, el atacante debe enviar más datos de los que el sistema objetivo puede manejar. En este caso, el atacante necesita superar la capacidad de la red de la víctima. Debido a la dificultad de generar tanto tráfico, los atacantes suelen emplear métodos como ataques de reflejo o amplificación, como el ataque de amplificación DNS. Este tipo de ataque permite al atacante enviar pequeños paquetes a un servicio intermedio, el cual devuelve grandes respuestas a la víctima, sobrecargando su red.

En ambos casos, los atacantes necesitan controlar múltiples dispositivos para ejecutar el ataque. Estos pueden ser servidores de proveedores de servicios en la nube, o dispositivos vulnerables como DVRs, routers o cámaras web infectados con malware, que juntos conforman una botnet.

Anycast de CloudFlare

Ahora que sabemos como funcionan los ataques, vamos a ver cómo CloudFlare evito el Ataque DDoS más grande de la Historia. El primer ingrediente secreto (aunque no es tan secreto) es que la red de Cloudflare se basa en Anycast.

Anycast permite que varias máquinas de cualquier parte del mundo anuncien una única dirección IP. Si envias un paquete a esa dirección IP el sistema lo derivará la máquina más cercana. Esto implica que cuando un atacante utiliza su botnet distribuida para lanzar un ataque, el ataque se recibirá de forma distribuida en toda la red de Cloudflare. Es decir, el ataque se irá repartiendo entre distintas máquinas: un DVR infectado en Dallas, enviará paquetes a un servidor de Cloudflare en Dallas, una cámara web infectada en Londres enviará paquetes a un servidor de Cloudflare en Londres, etc.

Anycast permite a Cloudflare asignar recursos informáticos y de ancho de banda más cerca de las regiones que más los necesitan. Las regiones densamente pobladas generarán mayores cantidades de tráfico legítimo, y los centros de datos ubicados en esas regiones tendrán más recursos de ancho de banda y de CPU para satisfacer esas necesidades.