
Read the Docs es de esos servicios que uno da por sentados. Cada librerÃa de Python que abriste en tu vida probablemente estaba hosteada ahÃ, y nadie se acuerda de que detrás hay un equipo de operaciones chico manteniendo todo andando. A fines de junio de 2026 ese equipo dejó de dormir: sufrieron el ataque DDoS más grande y sofisticado de su historia, y hace poco publicaron el recuento completo. Vale la pena leerlo, porque es una clase gratis de cómo se ve un ataque moderno desde adentro.
Los números dan miedo
En su peak, la infraestructura recibió 5,5 millones de requests por minuto. Para dimensionar: su tráfico normal de punta diaria es de menos de 100 mil requests por minuto. Estamos hablando de unas 100 veces el baseline. El ataque duró casi diez dÃas y no fue un flood de manual: venÃa de millones de IPs únicas repartidas en cientos de redes (ASNs), incluyendo bloques residenciales.
Lo interesante es que los atacantes sabÃan lo que hacÃan. Randomizaron headers HTTP y parámetros TLS para evadir firmas tipo JA3/JA4. Buscaron deliberadamente URLs que generaban cache misses: páginas inexistentes (404) y redirecciones temporales (302) que se servÃan desde el backend Python en vez del edge. Y aplicaron lo que llaman un patrón yo-yo: subir tráfico hasta descubrir los umbrales del rate limiting, retirarse para que la ventana expire, y volver. El objetivo no es solo tirar el servicio, es maximizar el costo de tu infraestructura auto-escalada. Si tu respuesta a la carga es escalar horizontalmente, estás pagando la factura del ataque tú mismo.
La lección incómoda: bloquear IPs no sirve
El take away más duro del post es que el bloqueo por IP está obsoleto para ataques distribuidos. Con proxies residenciales baratos (los mismos que usan los scrapers de IA, por cierto), la lista de bloqueo es una wea decorativa. Read the Docs terminó combinando decenas de reglas de rate limiting sobre IPs, ASNs, hostnames y fingerprints de navegador, todo gestionado con Terraform para poder versionar y revertir rápido.
Y cachear todo. Literalmente todo: incluso los 404 y las redirecciones con una ventana de unos minutos. Los atacantes detectaban qué rutas no estaban cacheadas midiendo tiempos de respuesta, y por ahà entraban. Un simple rewrite de Nginx que no está cacheado en el CDN puede ser tu punto de falla.
Mi opinión
Lo que más me gustó del manejo es una decisión de diseño: siempre dar una salida al usuario real. En vez de activar el modo Under Attack de Cloudflare (que rompe toda integración de API con challenges de JavaScript), optaron por challenges dirigidos combinando puntajes de probabilidad de bot con lÃmites por IP. Si un humano resuelve el challenge, queda libre por un dÃa. Fricción mÃnima para los legÃtimos, daño máximo para el botnet.
Hay algo que me resuena personalmente acá. Administro un par de VPS y servicios pequeños, y siempre pensé que un DDoS volumétrico era problema de los grandes. El post cierra con lo contrario: con las herramientas de IA y las redes de proxies abaratando todo, este tipo de ataques ya no son reservados para empresas, se están volviendo la lÃnea base para cualquier servicio público con un mÃnimo de perfil. La defensa en profundidad (CDN, caché agresivo, WAF, rate limiting, fingerprinting) deja de ser lujo de enterprise y pasa a ser la pega de cualquiera que exponga algo a internet. Y ojo con el detail final: parte del tráfico malicioso venÃa de scrapers conectados a redes de proxies, la misma infraestructura de la fiebre del oro de la IA. Las facturas de esa carrera la estamos pagando todos.
Fuente de inspiración: Understanding the Recent DDoS Attack Against Read the Docs
