El nuevo ataque de envenenamiento de caché permite a los atacantes apuntar a sitios protegidos por CDN

Ataque DOS de envenenamiento de caché de cdn

Un equipo de investigadores alemanes de ciberseguridad descubrió un nuevo ataque de envenenamiento de caché contra los sistemas de almacenamiento en caché web que podría ser utilizado por un atacante para obligar a un sitio web objetivo a entregar páginas de error a la mayoría de sus visitantes en lugar de contenido o recursos legítimos.

El problema podría afectar a los sitios que se ejecutan detrás de 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 ubican entre el servidor de origen de un sitio web y sus visitantes para optimizar el rendimiento del sitio web.

Un servicio CDN simplemente almacena o 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 entrega a los visitantes en función de sus ubicaciones.

Generalmente, después de un tiempo definido o cuando se purgan manualmente, los servidores CDN actualizan el caché recuperando una nueva copia actualizada de cada página web del servidor de origen y las almacenan para futuras solicitudes.

¿Cómo funciona el ataque CPDoS contra CDN?

denegación de servicio de envenenamiento de caché de cdn

Doblado CPDoSabreviatura de Cache Poisoned Denial of Service, el ataque reside en la forma en que los servidores CDN intermedios están configurados incorrectamente para almacenar en caché 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 simplemente enviando una sola 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 el sistema de almacenamiento en caché ignora pero genera un error mientras el servidor de origen los procesa».

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 se almacena en 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, se les mostrará la página de error almacenada en caché en lugar del contenido original.
  • El servidor de CDN también propagará la misma página de error a otros nodos de borde 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 genuino en el caché por una página de error. Esto significa que dicha solicitud permanece por debajo del umbral de detección de los firewalls de aplicaciones web (WAF) y los medios de protección DDoS, en particular, mientras buscan 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, lo que evita que se solucionen 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 la banca en línea o sitios web oficiales. sitios web gubernamentales».

3 formas de lanzar ataques CPDoS

Para llevar a cabo estos ataques de envenenamiento de caché contra CDN, la solicitud HTTP mal formada puede ser de tres tipos:

  • Encabezado HTTP sobredimensionado (HHO) – Una solicitud HTTP que contiene un encabezado de gran tamaño que funciona en escenarios donde una aplicación web usa un caché que acepta un límite de tamaño de encabezado mayor que el del servidor de origen.
  • Metacarácter HTTP (HMC) – En lugar de enviar un encabezado de gran tamaño, este ataque intenta eludir 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 del método HTTP (HMO) – Uso del encabezado de anulación de HTTP para eludir la política de seguridad que prohíbe las solicitudes DELETE.

Servicios CDN vulnerables a ataques 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 las páginas de error de quince soluciones de almacenamiento en caché web y las comparamos con las especificaciones de HTTP. Identificamos un producto de caché de proxy y cinco servicios de CDN que son vulnerables a CPDoS».

Los resultados completos de sus pruebas son los siguientes:

seguridad cdn

Cabe señalar que los sitios que se ejecutan detrás de algunos de los servicios CDN enumerados son vulnerables debido a su propia configuración incorrecta que no impide que los servidores de caché almacenen páginas de error y debido a cualquier debilidad en el servicio CDN respectivo.

«Según nuestros experimentos, CDN77 cumple con RFC y no almacena en caché las páginas de error que pueden no almacenarse en caché de acuerdo con la especificación. Estamos de acuerdo en que CDN77 no está causando nuestras vulnerabilidades CPDoS descubiertas», uno de los investigadores. confirmado Las noticias de hackers en Twitter.

«Los sitios web que usan CDN77 pueden ser vulnerables a CPDoS si el servidor de origen está mal configurado o proporciona una forma de provocar páginas de error almacenables en caché. Esto está fuera de la esfera de control del servicio de almacenamiento en caché y es responsabilidad del propietario del servicio».

El equipo informó sus hallazgos a los proveedores de implementación de HTTP y de caché afectados el 19 de febrero de 2019. El equipo de Amazon Web Services (AWS) confirmó las vulnerabilidades en CloudFront y solucionó el problema al prohibir el almacenamiento en caché de las páginas de error con el código de estado 400 Bad Request by 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é se ha caído: ataque de denegación de servicio envenenado por caché».

Continua leyendo