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
Sexa o primeiro en opinar sobre