Advertencias de seguridad

Envenenamiento de caché mediante diversos encabezados de tipo X

13 de agosto de 2018

Resumen


El jueves 9 de agosto se publicó en Black Hat USA 2018 un artículo de investigación sobre ataques de envenenamiento de caché contra sitios web desplegados detrás de infraestructura de almacenamiento en caché [1]. Estos ataques tenían como objetivo potencial inyectar contenido arbitrario en la caché de la víctima.


Ciertas configuraciones de los servicios de Fastly pueden resultar vulnerables si no tienen en cuenta la interacción entre los encabezados utilizados por los backends para seleccionar contenido. Este riesgo se puede mitigar por completo a través de un parche de VCL o mediante la modificación de las configuraciones de los backends.


Información detallada


Si uno o varios de tus backends utilizan el contenido de los encabezados de peticiones HTTP X-Forwarded-Host, X-Rewrite-Url o X-Original-Url para decidir a cuál de tus usuarios (o a qué dominio de seguridad) envía una respuesta HTTP, esta clase de vulnerabilidad podría afectarte. Si la configuración de Fastly correspondiente a tu sitio transmite este encabezado a tu backend y no incluye el contenido de este encabezado en la clave de caché del edge real (por ejemplo, explícitamente o a través del encabezado de respuesta HTTP Vary), un atacante podría hacer que el edge almacenara una respuesta que lleve aparejado contenido arbitrario insertado en la caché del objetivo.


Impacto


Un atacante podría envenenar la URL de un cliente de Fastly enviando una petición HTTP al sitio que haga que el backend afectado responda con una respuesta controlada por el atacante. El objeto de la respuesta maliciosa se almacenaría en la caché del sitio en una URL envenenada. A continuación, un atacante podría atraer a un usuario del sitio atacado de modo que navegue hasta la URL envenenada, donde se le presentaría contenido malicioso.


Mitigación


Si tu origen utiliza valores especiales para seleccionar contenido destinado a usuarios o bien para escoger dominios de seguridad, te sugerimos que tengas en cuenta las siguientes mitigaciones:



  • reconfigurar tu servidor de origen [2];

  • aplicar las correspondientes actualizaciones de seguridad [3] [4] [5];

  • extraer o normalizar estos valores especiales en VCL.


En VCL, por ejemplo, puedes definir los encabezados vulnerables con un valor seguro conocido o anular el encabezado. Así, puedes ajustar el encabezado X-Forwarded-Host al valor del encabezado Host mediante el siguiente fragmento de VCL:


set req.http.x-forwarded-host = req.http.host;


El encabezado X-Original-URL se puede anular a través del siguiente fragmento de VCL:


unset req.http.x-original-url;


Y X-Rewrite-URL se puede anular a través del siguiente fragmento de VCL:


unset req.http.x-rewrite-url;


Otras alternativas podrían consistir en incluir estos valores en la clave de caché [6] o en el encabezado Vary [7] para evitar el almacenamiento en caché del contenido en dominios de seguridad. Consulta nuestra documentación [6] para obtener ayuda sobre la manipulación de la clave de caché del edge.


Nuestros equipos de soporte están a tu disposición para responder cualquier pregunta o implementar soluciones alternativas si crees que esta vulnerabilidad podría poner en riesgo tu seguridad.


Los clientes pueden dirigir sus consultas a los siguientes responsables:



Advertencias e informes de problemas relacionados


https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14773


https://hackerone.com/reports/487


Enlaces de consulta


[1] https://portswigger.net/blog/practical-web-cache-poisoning


[2] https://github.com/rails/rails/issues/29893


[3] https://www.drupal.org/SA-CORE-2018-005


[4] https://symfony.com/cve-2018-14773


[5] https://framework.zend.com/security/advisory/ZF2018-01


[6] https://docs.fastly.com/en/guides/manipulating-the-cache-key


[7] https://www.fastly.com/blog/best-practices-using-vary-header

Suscríbete a las advertencias de seguridad.

Al enviar la solicitud, das tu consentimiento para que tus datos se envíen a Fastly en los Estados Unidos y sean tratados conforme a nuestra Política de privacidad.

¿List@ para empezar?

Ponte en contacto o crea una cuenta.