Nuevo ataque SpookJS evita la protección de aislamiento del sitio de Google Chrome
Se ha encontrado un ataque de canal lateral en procesadores modernos que se puede utilizar como arma para superar con éxito las protecciones de aislamiento del sitio en los navegadores Google Chrome y Chromium y filtrar datos confidenciales en un ataque de ejecución especulativa al estilo Spectre.
Apodada » Spook.js » por académicos de la Universidad de Michigan, la Universidad de Adelaide, el Instituto de Tecnología de Georgia y la Universidad de Tel Aviv, la técnica es una línea de ataque basada en JavaScript que tiene como objetivo específico sortear las barreras que Google implementó después de las vulnerabilidades de Spectre y Meltdown las cuales aseguraban prevenir la filtración al garantizar que el contenido de diferentes dominios no comparta en el mismo espacio de direcciones.
Para tener una visión total del problema, viajamos al pasado para recordar a Spectre, del cual ya os hemos hablado desde unaaldia, se refiere a una clase de vulnerabilidades de hardware en las CPU que rompe el aislamiento entre diferentes aplicaciones y permite a los atacantes engañar a un programa para que acceda a ubicaciones arbitrarias asociadas con su espacio de memoria, abusando para leer el contenido de la memoria a la que se accede y, por tanto, obtener potencialmente datos sensibles. Es designado como CVE-2017-5753 y CVE-2017-5715.
Estos ataques utilizan las funciones de ejecución especulativa de la mayoría de las CPU para acceder a partes de la memoria que deberían estar fuera de los límites de un fragmento de código, y luego utilizan ataques de tiempo para descubrir los valores almacenados en esa memoria. Efectivamente, esto significa que el código no confiable puede leer cualquier memoria en el espacio de direcciones de su proceso.
Equipo de seguridad de Google, sobre Spectre.
Site Isolation, lanzado en julio de 2018, es la contramedida de software de Google diseñada para hacer que los ataques sean mucho más difíciles de explotar. Con dicha función habilitada, en las versiones 67 y superiores de Chrome y Chromium, estos cargarán cada sitio web en su propio proceso y, como resultado, frustrarán los ataques entre procesos y, por lo tanto, entre sitios.
Como consecuencia de este nuevo descubrimiento, se pueden extraer los datos almacenados en la memoria de un sitio web que tenga una extensión de Chrome, incluida la información de identificación personal que se muestra en el sitio web y los nombres de usuario, contraseñas y números de tarjetas de crédito que se completan automáticamente.
Una página web controlada por un atacante puede saber qué otras páginas de los mismos sitios web está navegando un usuario, recuperar información confidencial de estas páginas e incluso recuperar credenciales de inicio de sesión (por ejemplo, nombre de usuario y contraseña) cuando se rellenan automáticamente. El atacante puede recuperar datos de extensiones de Chrome (como administradores de credenciales) si un usuario instala una extensión maliciosa»
Los investigadores de spook.js
Sin embargo, los investigadores del último estudio encontraron escenarios en los que las soluciones de aislamiento no separan dos sitios web, lo que se salta las protecciones de Spectre.
Spook.js aprovecha esta peculiaridad del diseño para provocar una fuga de información de los navegadores Chrome y basados en Chromium que se ejecutan en procesadores Intel, AMD y Apple M1. Dicho esto, al igual que con otras variantes de Spectre, explotar Spook.js es difícil y requiere una experiencia sustancial en canales laterales por parte del atacante.
Por lo tanto, Chrome separará ‘example.com’ y ‘example.net’ debido a que son dominios de nivel superior, y también ‘example.com’ y ‘attacker.com’. Sin embargo, ‘attacker.example.com’ y ‘corporate.example.com’ pueden compartir el mismo proceso. Esto permite que las páginas alojadas en ‘attacker.example.com’ puedan extraer información de las páginas de ‘corporativo. example.com.’.
Publicación de Spook.js
Spook.js muestra que estas contramedidas son insuficientes para proteger a los usuarios de los ataques de ejecución especulativa basados en el navegador, agregaron los investigadores.
Los investigadores han publicado unos videos demostrando la vulnerabilidad. En este caso implementan Spook.js en un blog de Tumblr, apuntando a una contraseña que el administrador de credenciales integrado de Chrome completó automáticamente en la página de inicio de sesión de Tumblr. De esta manera muestran que su blog se puede procesar mediante el mismo proceso de Chrome, la página de inicio de sesión y Spook.js, en consecuencia, recuperar la contraseña.
Han publicado también un vídeo atacando a LastPass con una extensión de Chrome maliciosa. Esta vez, empaquetan Spook.js como una extensión de Chrome. Demostrando que bajo ciertas condiciones, múltiples extensiones pueden consolidarse y ejecutarse desde el mismo proceso. Aprovechamos este comportamiento para leer la memoria de la extensión del administrador de credenciales de LastPass y recuperar la contraseña maestra de la bóveda del objetivo.
En respuesta a los hallazgos, el equipo de seguridad de Chrome, en julio de 2021 , extendió el aislamiento del sitio para garantizar que las extensiones ya no puedan compartir procesos entre sí, además de aplicarlos a sitios donde los usuarios inician sesión a través de proveedores externos. La nueva configuración, llamada aislamiento estricto de extensiones, está habilitada a partir de las versiones 92 de Chrome y posteriores.
Los desarrolladores web pueden separar inmediatamente el código JavaScript proporcionado por el usuario que no es de confianza del resto del contenido de su sitio web, alojando todo el código JavaScript proporcionado por el usuario en un dominio que tiene un eTLD + 1 diferente. De esta manera, Strict Site Isolation no consolidará el código proporcionado por el atacante con datos potencialmente confidenciales en el mismo proceso, poniendo los datos fuera del alcance incluso para Spook.js, ya que no puede cruzar los límites del proceso.
Publicación sobre Spook.js
Desde hispasec recomendamos revisar que versión del navegador Chrome / Chromium accediendo a los ajustes: chrome://settings/help y actualizar siempre que sea posible a la última versión disponible.
Más información:
Attacking Google Chrome’s Strict Site Isolation via Speculative Execution and Type Confusion https://www.spookjs.com/
Site Isolation Design Document https://www.chromium.org/developers/design-documents/site-isolation
Protecting more with Site Isolation https://security.googleblog.com/2021/07/protecting-more-with-site-isolation.html
Understanding «same-site» and «same-origin» https://web.dev/same-site-same-origin/
Meltdown y Spectre: Graves vulnerabilidades en los procesadores de los principales fabricantes https://unaaldia.hispasec.com/2018/01/meltdown-y-spectre-graves-vulnerabilidades-en-los-procesadores-de-los-principales-fabricantes.html
La entrada Nuevo ataque SpookJS evita la protección de aislamiento del sitio de Google Chrome se publicó primero en Una al Día.
Powered by WPeMatico