Ataque CPDoS, que permite hacer inaccesibles las páginas servidas a través de CDN

Investigadores de las universidades de Hamburgo y Colonia
desarrollaron una nueva técnica de ataques a redes de entrega de contenido y proxies de caché — CPDoS (Cache-Poisoned Denial-of-Service). El ataque permite lograr la denegación de acceso a una página mediante la contaminación de la caché.

El problema está relacionado con el hecho de que los CDN almacenan en caché no solo las solicitudes exitosas, sino también las situaciones en las que el servidor http devuelve un error. Por lo general, en caso de problemas para generar solicitudes, el servidor emite un error 400 (Bad Request), siendo la excepción IIS, que devuelve un error 404 (Not Found) para encabezados demasiado grandes. El estándar permite almacenar en caché solo errores con códigos 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) y 501 (Not Implemented), pero algunos CDN también almacenan en caché respuestas con código 400 (Bad Request), que depende de la solicitud enviada.

Los atacantes pueden provocar en el recurso original el retorno del error "400 Bad Request" mediante el envío de una solicitud con encabezados HTTP formateados de una manera específica. Estos encabezados no son considerados por el CDN, por lo que la información sobre la imposibilidad de acceder a la página se almacenará en caché y todas las demás solicitudes correctas de los usuarios hasta que caduque el tiempo de espera pueden provocar la entrega del error, a pesar de que el sitio original entrega el contenido sin problemas.

Para forzar al servidor HTTP a devolver un error, se han propuesto tres variantes de ataque:

  • HMO (HTTP Method Override) — el atacante puede sobreescribir el método original de la solicitud a través de los encabezados "X-HTTP-Method-Override", "X-HTTP-Method" o "X-Method-Override", que son soportados por algunos servidores, pero no son considerados en el CDN. Por ejemplo, se puede cambiar el método original "GET" a un método "DELETE" prohibido en el servidor o a un método "POST" inaplicable para contenido estático;

    Ataque CPDoS, que permite hacer inaccesibles las páginas servidas a través de CDN
  • HHO (HTTP Header Oversize) — el atacante puede ajustar el tamaño del encabezado de manera que supere el límite del servidor original, pero no caiga bajo las restricciones del CDN. Por ejemplo, Apache httpd limita el tamaño del encabezado a 8 KB, mientras que el CDN Amazon Cloudfront permite encabezados de hasta 20 KB;
    Ataque CPDoS, que permite hacer inaccesibles las páginas servidas a través de CDN
  • HMC (HTTP Meta Character) — el atacante puede incluir caracteres especiales en la solicitud (\n, \r, \a), que son considerados no válidos en el servidor original, pero son ignorados en el CDN.

    Ataque CPDoS, que permite hacer inaccesibles las páginas servidas a través de CDN

El CDN CloudFront, utilizado en Amazon Web Services (AWS), fue el más afectado por el ataque. Actualmente, la compañía Amazon ya ha solucionado el problema al prohibir el almacenamiento en caché de errores, pero a los investigadores les llevó más de tres meses lograr que se implementara una protección adicional. El problema también afectó a Cloudflare, Varnish, Akamai, CDN77 y
Fastly, pero el ataque a través de ellos estaba limitado a servidores específicos que utilizan IIS, ASP.NET, Flask y Play 1. Se observa, lo que potencialmente podría afectar al 11% de los dominios del Departamento de Defensa de EE. UU., el 16% de las URL de la base de datos de HTTP Archive y aproximadamente el 30% de los 500 principales sitios según el ranking de Alexa.

Como una solución temporal para bloquear el ataque en el lado del sitio, se puede utilizar el encabezado "Cache-Control: no-store", que prohíbe la caché de respuestas. En algunos CDN, como en
CloudFront y Akamai, se puede desactivar la caché de errores a nivel de configuración del perfil. También se pueden utilizar firewalls para aplicaciones web (WAF, Web Application Firewall) para protección, pero deben implementarse en el lado del CDN antes de los hosts que realizan el almacenamiento en caché.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster