Google demostra a explotación das vulnerabilidades de Spectre usando JavaScript nun navegador

Google presentou hai varios días varios prototipos de explotación que demostren a posibilidade de explotar vulnerabilidades da clase Spectre ao executar código JavaScript nun navegador, sen pasar polos métodos de seguridade engadidos anteriormente.

Os exploits pódense usar para acceder á memoria dun proceso que está a procesar contido web na pestana actual. Para probar o funcionamento da explotación, lanzouse o sitio web da páxina filtrante e publícase en GitHub o código que describe a lóxica da operación.

O prototipo proposto está deseñado para sistemas de ataque con Procesadores Intel Core i7-6500U nun ambiente Linux e Chrome 88, aínda que isto non exclúe que se poidan facer cambios para usar o exploit noutros ambientes.

O método de operación non é específico de os procesadores Intel: despois da adecuada adaptación, Confirmouse que o exploit funciona en sistemas con CPU de terceiros, incluído o Apple M1 baseado na arquitectura ARM. Despois de pequenos axustes, o exploit tamén funciona noutros sistemas operativos e outros navegadores baseados no motor Chromium.

Nun ambiente baseado nos procesadores estándar de Chrome 88 e Intel Skylake, obtivemos unha fuga de datos do proceso responsable de renderizar contido web na pestana actual de Chrome (proceso de renderización) a unha velocidade de 1 kilobyte por segundo. Ademais, desenvolvéronse prototipos alternativos, por exemplo, un exploit que permite, a custo dunha estabilidade reducida, aumentar a taxa de fuga a 8kB / s cando se usa o temporizador performance.now () cunha precisión de 5 microsegundos (0.005 milisegundos) ). Tamén se preparou unha variante que funcionaba cunha precisión do temporizador dun milisegundo, que podería usarse para organizar o acceso á memoria doutro proceso a un ritmo duns 60 bytes por segundo.

O código de demostración publicado consta de tres partes:

  • A primeira parte calibrar o temporizador para estimar o tempo de funcionamento das operacións necesarias para recuperar os datos que quedan na caché do procesador como resultado da execución especulativa das instrucións da CPU.
  • A segunda parte Define o deseño de memoria usado cando se asigna a matriz de JavaScript.
  • A terceira parte explota directamente a vulnerabilidade Spectre para determinar o contido da memoria do proceso actual como resultado da creación de condicións para a execución especulativa de determinadas operacións, cuxo resultado é descartado polo procesador despois de determinar unha previsión fallida, pero as trazas de execución establécense na caché compartida e pódense restaurar usando métodos para determinar o contido da caché mediante canles de terceiros que analizan o cambio no tempo de acceso a datos na caché e non na caché.

A técnica de explotación proposta elimina temporizadores de alta precisión dispoñible a través da API performance.now () e sen soporte para o tipo SharedArrayBuffer, que permite crear matrices na memoria compartida.

O exploit inclúe o dispositivo Spectre, que provoca a execución controlada de código especulativo, e un analizador de fugas de canle lateral, que determina que datos se almacenaron na caché durante a execución especulativa.

O gadget está implementado usando unha matriz de JavaScript, en que téntase acceder a unha área fóra dos límites do búfer, que afecta ao estado do bloque de predición de sucursal debido á presenza dunha comprobación do tamaño do búfer engadida polo compilador (o procesador especulativamente realiza un acceso antes de tempo, pero reverte o estado despois de comprobalo).

Para analizar o contido da caché en condicións de precisión do temporizador insuficiente, propúxose un método 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 o tempo de diferenza cando se devolve o valor. da caché e en ausencia dun valor na caché.

Google publicou un prototipo do exploit para mostrar a viabilidade dos ataques usando vulnerabilidades da clase Spectre e animar aos desenvolvedores web a usar técnicas que minimicen os riscos destes ataques.

Ao mesmo tempo, Google cre que sen unha revisión significativa do prototipo proposto, é imposible crear exploits universais preparados non só para a demostración, senón tamén para un uso xeneralizado.

Fuente: https://security.googleblog.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.