Vulnerabilidad Web cache deception
www.onlinetis.com
La Web Cache Deception es una vulnerabilidad de seguridad que permite a un atacante engañar a un servidor proxy de caché para que almacene una página web privada de un usuario. Esto se logra manipulando la URL de una forma que la haga parecer un recurso estático (como una imagen o un archivo CSS) para el servidor, pero que, en realidad, siga siendo una página dinámica y personalizada para el usuario. 🎭
¿Cómo funciona el ataque?
Este ataque explota un error de configuración en el servidor web o en el proxy de caché. La mayoría de los servidores de caché están configurados para guardar en caché los archivos estáticos (como .css
, .js
, .jpg
), pero no los recursos dinámicos (páginas de perfil, carrito de compras, etc.).
El proceso de ataque consta de los siguientes pasos:
El atacante crea una URL maliciosa. Esta URL tiene el formato de una página dinámica, pero con una extensión de archivo estático al final. Por ejemplo:
https://ejemplo.com/perfil-de-usuario/mi_perfil.css
El atacante engaña a la víctima para que haga clic en la URL. Mediante un ataque de phishing o ingeniería social, el atacante induce a la víctima a visitar la URL.
El navegador de la víctima solicita el recurso. El navegador de la víctima envía la solicitud al servidor, que incluye sus cookies de sesión, lo que permite que el servidor web la autentique y genere la página de perfil personal.
El servidor de caché se "engaña". El servidor de caché ve la extensión
.css
y asume que se trata de un recurso estático. Como resultado, almacena la respuesta del servidor (que es la página de perfil personal de la víctima) en su caché.El atacante accede a la información de la víctima. Ahora, el atacante puede acceder a la URL
https://ejemplo.com/perfil-de-usuario/mi_perfil.css
y el servidor de caché le entregará la copia almacenada de la página de perfil de la víctima, revelando su información privada.
Mitigación y prevención
Para prevenir los ataques de Web Cache Deception, es fundamental una configuración correcta del servidor y la aplicación.
Configuración del caché: Asegúrate de que los servidores de caché no almacenen en caché recursos basados únicamente en su extensión de archivo. Deben estar configurados para usar las cabeceras HTTP de la aplicación (
Cache-Control
,Vary
) para determinar qué recursos se pueden almacenar.Encabezados HTTP de seguridad: Utiliza cabeceras HTTP como
Cache-Control: private
ono-cache
en las páginas dinámicas que contengan información sensible.Normalización de URL: La aplicación debe estar diseñada para normalizar las URL. Si una URL como
/perfil-de-usuario/mi_perfil.css
se detecta como una ruta de perfil, la aplicación debería ignorar la extensión de archivo y redirigir o responder de manera que el servidor de caché no la almacene.Pruebas de seguridad: Realiza pruebas de penetración para identificar si la aplicación y sus servidores están correctamente configurados para manejar estos escenarios.