Vulnerabilidades en CDNs
Investigadores en ciberseguridad han descubierto dos tipos de ataques de denegación de servicio (DoS), denominados CDN Tsunami, que explotan la forma en que las principales redes de entrega de contenido (CDNs) convierten el tráfico HTTP/3 en solicitudes HTTP/1.1. Esta conversión permite amplificar una corriente de solicitudes de bajo ancho de banda hasta en 350 veces contra el servidor de origen.
Los ataques fueron evaluados en plataformas como Alibaba, Baidu, Cloudflare, Amazon CloudFront, Fastly y Tencent, encontrando que todas son susceptibles a la variante de ancho de banda y cinco de ellas a la variante de conexión. Cloudflare no se ve afectada por esta última, ya que almacena completamente la solicitud antes de abrir una conexión con el origen.
Funcionamiento de los ataques
El ataque requiere que el sitio web esté alojado en uno de los seis proveedores mencionados, con HTTP/3 habilitado en el borde y sin necesidad de cambios de configuración en el sitio. Se ha documentado que HTTP/3 está habilitado de forma predeterminada en Cloudflare y CloudFront, aunque la documentación de Cloudflare indica que está disponible en todos sus planes y proporciona pasos para habilitarlo. Por su parte, la documentación de AWS establece que HTTP/2 es la versión predeterminada para nuevas distribuciones de CloudFront.
Los factores de amplificación de hasta 350x se aplican únicamente a Alibaba, Baidu y Tencent, ya que estos tres soportan la tabla dinámica QPACK. Las mediciones realizadas indican que el ancho de banda del atacante se mantuvo por debajo de 500 Kbps en los tres CDNs que soportan la tabla dinámica y por debajo de 5 Mbps en los demás, mientras que el consumo de ancho de banda en el origen superó los 100 Mbps.
Técnicas de ataque
Las dos técnicas de ataque son HTTP/3 Bandwidth Amplification (HBA) y HTTP/3 Connection Amplification (HCA). Ambas se basan en un vacío de implementación, donde una CDN utiliza HTTP/3 con el navegador pero solo HTTP/1.1 con el sitio web. HBA aprovecha QPACK, un formato de compresión de encabezados introducido con HTTP/3, que obliga a la CDN a expandir cada pequeño valor de índice en un encabezado completo antes de reenviar la solicitud.
Por otro lado, HCA se centra en la capacidad de conexión, permitiendo que cinco de los seis CDNs abran una conexión HTTP/1.1 al origen tan pronto como reciben el marco HEADERS de HTTP/3. Esto permite que una sola conexión de cliente maneje múltiples flujos, cada uno de los cuales activa su propia conexión TCP de backend. Al enviar tramas DATA a un ritmo muy bajo, se mantienen abiertas las conexiones, lo que provoca que la CDN continúe tratando la solicitud como incompleta.
Impacto y mitigación
Los experimentos realizados se limitaron a condiciones impuestas por los investigadores, con el origen limitado a 100 Mbps y el atacante a 30 Mbps. Los investigadores advierten que estos ataques pueden escalar a servidores con mayor capacidad, aunque no se han realizado pruebas para verificar esta afirmación.
Baidu y Tencent han confirmado las vulnerabilidades y han implementado las correcciones propuestas, sin embargo, las mitigaciones deben aplicarse en la CDN y no en el sitio web de origen. Hasta la fecha, no se han asignado identificadores CVE ni se ha reportado explotación en el mundo real. La exposición se ha evaluado mediante la enumeración de subdominios en la lista Tranco Top 1M, encontrando más de 42,000 subdominios que responden a solicitudes HTTP/3, etiquetados como potencialmente vulnerables.
La situación exige atención inmediata por parte de las empresas que utilizan los servicios de estas CDNs para asegurar sus sitios y mitigar posibles ataques que podrían comprometer su funcionamiento.