Spook.js, unha nova técnica para explotar as vulnerabilidades de Spectre en Chrome

Un grupo de investigadores de universidades americanas, australianas e israelís informaron diso describiu unha nova técnica de ataque que permite explotar vulnerabilidades Clase Spectre nos navegadores con Chromium.

O ataque, con nome en clave Spook.js, permite ao executar código JavaScript ignorar o mecanismo de illamento do sitio e ler o contido de todo o espazo de direccións do proceso actual, é dicir, acceder aos datos das páxinas que se executan noutras pestanas, pero que se procesan no mesmo proceso.

Dado que Chrome lanza diferentes sitios en diferentes procesos, os ataques prácticos limítanse a servizos que permiten a diferentes usuarios aloxar as súas páxinas. O método de ataque Spook.js fai posible desde unha páxina na que un atacante pode incorporar o seu código JavaScript, determine a presenza doutras páxinas abertas polo usuario do mesmo sitio e extraer información confidencial deles, por exemplo, credenciais ou datos bancarios substituídos polo sistema de autocompletado en formularios web.

Outra aplicación do método é un ataque aos complementos do navegador, o que permite, cando se instala un complemento controlado por un atacante, extraer datos doutros complementos.

Spook.js é aplicable a calquera navegador baseado no motor Chromium, incluíndo Google Chrome, Microsoft Edge e Brave. Os investigadores tamén cren que o método pode adaptarse para traballar con Firefox, pero dado que o motor de Firefox é moi diferente de Chrome, o traballo de crear tal exploit queda para o futuro.

Para protexerse contra ataques relacionados coa execución especulativa de instrucións a través do navegador, a segmentación do espazo de enderezos está implementada en Chrome: o illamento da caixa de area permite que JavaScript funcione só con punteiros de 32 bits e comparte a memoria do controlador en pilas de 4 GB que non se superpoñen.

Para organizar o acceso a todo o espazo de enderezos do proceso e evitar a limitación de 32 bits, os investigadores empregaron a técnica de confusión de tipos, que permite ao motor JavaScript procesar un obxecto co tipo incorrecto, facendo posible formar un 64-bit código baseado nunha combinación de dous valores de 32 bits.

A esencia do ataque é que, ao procesar un obxecto malicioso especialmente deseñado no motor JavaScript, créanse condicións que levan á execución especulativa de instrucións que acceden á matriz. O obxecto está seleccionado de tal xeito que os campos controlados polos atacantes colócanse na área onde se usa o punteiro de 64 bits.

Dado que o tipo de obxecto malicioso non se corresponde co tipo de matriz que se está procesando, en condicións normais estas accións están bloqueadas en Chrome polo mecanismo de desoptimización do código usado para acceder ás matrices. Para solucionar este problema, o código de ataque Type Confusion colócase nun bloque condicional "if", que non se dispara en condicións normais, senón que se executa en modo especulativo, se o procesador predice incorrectamente máis ramas.

Como resultado, o procesador accede especulativamente ao punteiro de 64 bits xerado e reverte o estado despois de determinar a predición fallida, pero as trazas de execución configúranse na caché compartida e pódense restaurar empregando métodos para determinar o contido da caché a través de terceiros. canles de festa, analizando o cambio no tempo de acceso a datos na caché e non.

Para analizar o contido da caché nas condicións de precisión insuficiente do temporizador dispoñible en JavaScript, úsase un método proposto por Google que engana a estratexia de desaloxo de datos de caché Tree-PLRU empregada nos procesadores e permite, aumentando o número de ciclos, aumentar significativamente a diferenza horaria na presenza e ausencia dun valor na caché.

Os investigadores lanzaron un prototipo exploit que funciona en Chrome 89 en sistemas con Intel i7-6700K e i7-7600U. O exploit creouse utilizando prototipos de código JavaScript publicados previamente por Google para realizar ataques Spectre.

Finalmente, os investigadores mencionan iso logrou preparar exploits de traballo para sistemas baseados en procesadores Intel e Apple M1, que teñen a oportunidade de organizar a lectura da memoria a unha velocidade de 500 bytes por segundo e unha precisión do 96%. Suponse que o método é aplicable aos procesadores AMD, pero non foi posible preparar un exploit totalmente funcional.

Fuente: https://www.spookjs.com


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

Sexa o primeiro en opinar sobre

Deixa o teu comentario

Enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados con *

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.