Un equipo de académicos de universidades de Australia, Israel, y Estados Unidos ha creado una nueva ataque de canal lateral que se orienta a la función de aislamiento de sitios de Google Chrome. El ataque, llamado Spook.js, es un nuevo exploit de canal lateral de ejecución transitoria dirigido a navegadores Chrome y basados en Chromium, que muestra que los intentos de Google de mitigar Spectre no han sido del todo satisfactorios.
Explicación del ataque Spook.js
"Más específicamente, mostramos que una página web controlada por un atacante puede saber qué otras páginas de los mismos sitios web está navegando un usuario actualmente, recuperar información confidencial de estas páginas, e incluso recuperar las credenciales de inicio de sesión (e.g., nombre de usuario y contraseña) cuando se rellenan automáticamente. Además, demostramos que el atacante puede recuperar datos de las extensiones de Chrome. (como administradores de credenciales) si un usuario instala una extensión maliciosa,"Dijo el equipo en su informe.
El descubrimiento está relacionado con la Exploits de Meltdown y Spectre, las fallas de diseño de la CPU que permitieron que el código malicioso que se ejecutaba en un procesador recuperara datos de otras aplicaciones o incluso de áreas seguras de la CPU. Las vulnerabilidades de seguridad afectan a generaciones enteras de computadoras y dispositivos de todo tipo que usan chips específicos. (un procesador Intel o un dispositivo Apple con el chip M1). Las fallas podrían permitir a los atacantes romper el aislamiento fundamental entre las aplicaciones del usuario y el sistema operativo.. La información que procesan las computadoras podría luego filtrarse a los atacantes..
El aislamiento del sitio: No es suficiente
Para mitigar las fallas, Google agregó el llamado Aislamiento del sitio, habilitado en todas las versiones desde Chrome 67. Antes de esos eventos, la característica estaba disponible como una función opcional que los usuarios necesitaban habilitar manualmente.
La adición de este mecanismo cambió la arquitectura subyacente de Google Chrome para limitar la forma en que se procesan los diferentes sitios.. Por diseño, el navegador presentaba una operación multiproceso que definía cada pestaña en un proceso renderizado separado. Las diferentes pestañas podrían incluso cambiar de proceso al navegar a un nuevo sitio en determinadas situaciones.. Sin embargo, Los ataques de prueba de concepto de vulnerabilidad de Spectre revelaron un modelo de ataque hipotético. Permitió a los posibles actores de amenazas construir páginas maliciosas que revelaran datos confidenciales..
En otras palabras, a pesar de que los ataques se demostraron solo teóricamente, Mostraron la debilidad del diseño de las CPU modernas en términos de seguridad..
¿Cómo funciona Spook.js??
Poco dicho, el equipo de académicos que ideó el concepto de ataque Spook.js notó que el mecanismo actual de aislamiento del sitio no separa el subdominio, que es otro defecto de diseño.
"Spook.js aprovecha este agujero en el diseño de aislamiento del sitio, que aparentemente Google sabe, pero sobre el que tampoco puede hacer nada, ya que separar el código JavaScript en el nivel del subdominio también paralizaría 13.4% de todos los sitios de Internet,"TheRecord señaló.
Fundamentalmente, Spook.js es una herramienta de JavaScript que puede causar ataques de canal lateral tipo Spectre contra navegadores basados en Crome y Chromium, corriendo en Intel, AMD, y procesadores Apple M1. Como ya se ha mencionado, Spook.js solo obtiene eso de los mismos subdominios que el sitio bajo ataque. Además, la herramienta solo funciona si el actor de la amenaza planta con éxito su código específico en el sitio de destino. Aunque esto pueda parecer un obstáculo, realmente no lo es, ya que muchos sitios web permiten a los usuarios crear subdominios y ejecutar su propio código JavaScript, incluyendo Tumblr, GitHib, BitBucket, entre otros.
También existe la posibilidad de que los sitios sean pirateados, pero el equipo de investigación no llegó tan lejos en cuanto a normas éticas de investigación. No obstante, este escenario también debe tenerse en cuenta, ellos dijeron.
Si estás interesado, también puedes echar un vistazo al prueba de concepto disponible en GitHub.