Novo ataque ás estruturas microarquitectónicas dos procesadores Intel e AMD

Un grupo de investigadores da Universidade de Virginia e da Universidade de California presentou un novo tipo de ataque ás estruturas microarquitectónicas dos procesadores Intel e AMD, identificado durante a enxeñaría inversa de capacidades de CPU non documentadas. O método de ataque proposto implica o uso dunha caché intermedia de microoperacións nos procesadores, que se pode usar para recuperar información acumulada durante a execución especulativa de instrucións.

Para efectos de optimización, o procesador comeza a executar algunhas instrucións en modo especulativo, sen esperar a que se completen os cálculos previos, e se entón determina que a predición non estaba xustificada, retrotrae a operación ao seu estado orixinal, pero os datos procesados ​​durante a execución especulativa deposítase nunha caché, cuxo contido se pode determinar.

Nótase que o novo método supera significativamente o ataque Spectre v1, dificulta a detección do ataque e non está bloqueado polos métodos de protección existentes contra ataques de canle lateral deseñados para bloquear vulnerabilidades causadas pola execución especulativa de instrucións (por exemplo, o uso dos bloques de instrucións LFENCE bloquean fugas nas últimas etapas da execución especulativa, pero non protexe contra fugas a través de estruturas microarquitectónicas).

O método afecta aos modelos de procesadores Intel e AMD lanzados desde 2011, incluíndo as series Intel Skylake e AMD Zen. As CPU modernas dividen instrucións complexas do procesador en microoperacións máis sinxelas tipo RISC, que se almacenan nunha caché separada. Esta caché é fundamentalmente diferente das cachés de nivel superior, non é directamente accesible e actúa como un búfer de fluxo para un acceso rápido aos resultados da decodificación de instrucións CISC en microinstrucións RISC. Non obstante, os investigadores atoparon un xeito de crear condicións que xorden cando o acceso á caché entra en conflito e permiten xulgar o contido da caché de microoperacións analizando as diferenzas no tempo de execución de determinadas accións.

Novo ataque ás estruturas microarquitectónicas dos procesadores Intel e AMD

A caché de microoperacións dos procesadores Intel está segmentada en relación aos fíos da CPU (Hyper-Threading), mentres que os procesadores AMD Zen usan unha caché compartida, que crea condicións para a fuga de datos non só dentro dun fío de execución, senón tamén entre diferentes fíos en SMT. (posible fuga de datos entre o código que se executa en diferentes núcleos de CPU lóxicos).

Os investigadores propuxeron un método básico para detectar cambios na caché de microoperacións e varios escenarios de ataque que permiten crear canles de transmisión de datos ocultas e utilizar código vulnerable para filtrar datos confidenciais, tanto dentro dun único proceso (por exemplo, para filtrar datos do proceso ao executar). código de terceiros en motores con JIT e en máquinas virtuais), e entre o núcleo e os procesos no espazo do usuario.

Ao organizar unha variante do ataque Spectre mediante unha caché de microoperacións, os investigadores puideron acadar un rendemento de 965.59 Kbps cunha taxa de erro do 0.22% e 785.56 Kbps ao utilizar a corrección de erros, no caso de organizar unha fuga dentro do mesmo enderezo. espazo e nivel de privilexio. Cunha fuga que abarca diferentes niveis de privilexios (entre o núcleo e o espazo de usuario), o rendemento foi de 85.2 Kbps con corrección de erros engadido e de 110.96 Kbps cunha taxa de erro do 4%. Ao atacar procesadores AMD Zen, creando unha fuga entre diferentes núcleos de CPU lóxicos, o rendemento foi de 250 Kbps cunha taxa de erro do 5.59% e 168.58 Kbps con corrección de erros. En comparación co método clásico Spectre v1, o novo ataque foi 2.6 veces máis rápido.

Espérase que a protección contra un ataque de caché de microoperacións requirirá cambios que reducirán o rendemento máis que se activase a protección contra ataques Spectre. Como compromiso óptimo, proponse bloquear tales ataques non desactivando o caché, senón a nivel de monitorización de anomalías e identificando os estados da caché que son típicos dos ataques.

Do mesmo xeito que nos ataques Spectre, organizar unha filtración do núcleo ou doutros procesos require a execución dunha determinada secuencia de comandos (gadgets) no lado dos procesos vítimas, o que leva á execución especulativa de instrucións. Atopáronse preto de 100 gadgets similares no núcleo de Linux, que serán eliminados, pero periódicamente atópanse solucións para a súa xeración, por exemplo, relacionadas coa execución de programas BPF deseñados especialmente no núcleo.

Fonte: opennet.ru

Engadir un comentario