El problema afecta a los sistemas de caché de proxy inverso como Varnish y algunos servicios de Redes de Distribución de Contenido (CDN) ampliamente utilizados, incluidos Amazon CloudFront, Cloudflare, Fastly, Akamai y CDN77.
En resumen, una red de distribución de contenido (CDN) es un grupo de servidores distribuidos geográficamente que se encuentran entre el servidor de origen de un sitio web y sus visitantes para optimizar el rendimiento del sitio web.
Un servicio CDN simplemente almacena / almacena en caché archivos estáticos, incluidas páginas HTML, archivos javascript, hojas de estilo, imágenes y videos, desde el servidor de origen y los entrega a los visitantes más rápidamente sin tener que volver al servidor de origen una y otra vez.
Cada uno de los servidores CDN distribuidos geográficamente, conocidos como nodos perimetrales, también comparte la copia exacta de los archivos de caché y los sirve a los visitantes en función de su ubicación.
Generalmente, después de un tiempo definido o cuando se purga manualmente, los servidores CDN actualizan el caché al recuperar una nueva copia actualizada de cada página web del servidor de origen y almacenarlas para futuras solicitudes.
¿Cómo funciona el ataque CPDoS contra CDN?
Apodado CPDoS , abreviatura de denegación de servicio envenenado en caché, el ataque reside en la forma en que los servidores CDN intermedios están configurados incorrectamente para almacenar en caché los recursos web o páginas con respuestas de error devueltas por el servidor de origen.
El ataque CPDoS amenaza la disponibilidad de los recursos web de un sitio web con solo enviar una solicitud HTTP que contiene un encabezado con formato incorrecto, según tres académicos alemanes, Hoai Viet Nguyen, Luigi Lo Iacono y Hannes Federrath.
«El problema surge cuando un atacante puede generar una solicitud HTTP para un recurso almacenable en caché donde la solicitud contiene campos inexactos que son ignorados por el sistema de almacenamiento en caché pero generan un error mientras es procesado por el servidor de origen».
Así es como funciona el ataque CPDoS:
- Un atacante remoto solicita una página web de un sitio web de destino mediante el envío de una solicitud HTTP que contiene un encabezado con formato incorrecto.
- Si el servidor CDN intermedio no tiene una copia del recurso solicitado, reenviará la solicitud al servidor web de origen, que se bloqueará debido al encabezado mal formado.
- Como consecuencia, el servidor de origen devuelve una página de error, que finalmente es almacenada por el servidor de almacenamiento en caché en lugar del recurso solicitado.
- Ahora, cada vez que los visitantes legítimos intenten obtener el recurso de destino, recibirán la página de error en caché en lugar del contenido original.
- El servidor de CDN también extenderá la misma página de error a otros nodos periféricos de la red de CDN, haciendo que los recursos específicos del sitio web de la víctima no estén disponibles.
«Vale la pena señalar que una simple solicitud es suficiente para reemplazar el contenido original en el caché por una página de error. Esto significa que dicha solicitud permanece por debajo del umbral de detección de firewalls de aplicaciones web (WAF) y medios de protección DDoS, en particular, mientras escanean grandes cantidades de tráfico de red irregular «.
«Además, CPDoS puede explotarse para bloquear, por ejemplo, parches o actualizaciones de firmware distribuidas a través de cachés, evitando que se reparen las vulnerabilidades en dispositivos y software. Los atacantes también pueden desactivar importantes alertas de seguridad o mensajes en sitios web de misión crítica como banca en línea u oficial sitios web gubernamentales «.
3 formas de lanzar ataques CPDoS
Para llevar a cabo estos ataques de envenenamiento de caché contra CDN, la solicitud HTTP con formato incorrecto puede ser de tres tipos:
- HTTP Header Oversize (HHO) : una solicitud HTTP que contiene un encabezado de gran tamaño que funciona en escenarios en los que una aplicación web utiliza un caché que acepta un límite de tamaño de encabezado mayor que el servidor de origen.
- HTTP Meta Character (HMC) : en lugar de enviar un encabezado de gran tamaño, este ataque intenta omitir un caché con un encabezado de solicitud que contiene un metacarácter dañino, como salto de línea / retorno de carro (\ n), avance de línea (\ r) o campana (\ a).
- Anulación de método HTTP (HMO) : uso del encabezado de anulación HTTP para omitir la política de seguridad que prohíbe las solicitudes DELETE.
Servicios de CDN vulnerables a los ataques de CPDoS
Los investigadores llevaron a cabo tres ataques contra diferentes combinaciones de sistemas de almacenamiento en caché web e implementaciones HTTP y descubrieron que CloudFront CDN de Amazon es el más vulnerable al ataque CPDoS.
«Analizamos el comportamiento de almacenamiento en caché de páginas de error de quince soluciones de almacenamiento en caché web y las contrastamos con las especificaciones HTTP. Identificamos un producto de caché proxy y cinco servicios CDN que son vulnerables a CPDoS».
Los resultados completos de sus pruebas son los siguientes:
El equipo informó sus hallazgos a los proveedores de implementación HTTP y proveedores de caché afectados el 19 de febrero de 2019. El equipo de Amazon Web Services (AWS) confirmó las vulnerabilidades en CloudFront y resolvió el problema al prohibir el almacenamiento en caché de páginas de error con el código de estado 400 Solicitud incorrecta por defecto.
Microsoft también reconoció los problemas informados y publicó una actualización para mitigar esta vulnerabilidad, asignada como CVE-2019-0941 , en sus actualizaciones de seguridad mensuales de junio de 2019 .
Play Framework también confirmó los problemas informados y parchó su producto contra el ataque CPDoS al limitar el impacto del encabezado X-HTTP-Method-Override en las versiones 1.5.3 y 1.4.6 de Play Framework .
Otros proveedores afectados, incluido Flask, fueron contactados varias veces, pero los investigadores no recibieron ninguna respuesta de ellos.
Para obtener más detalles sobre este nuevo ataque de envenenamiento de caché web y sus variaciones, simplemente puede dirigirse al documento de investigación [ PDF ] titulado «Su caché ha caído: ataque de denegación de servicio envenenado por caché».
Fuente: thehackernews.com