LVI é unha nova clase de ataques ao mecanismo de execución especulativa na CPU

Publicado información sobre unha nova clase de ataques LVI (Inxección de valor de carga, CVE-2020-0551) sobre o mecanismo de execución especulativa nas CPU Intel, que se pode usar para filtrar claves e datos secretos dos enclaves Intel SGX e outros procesos.

Unha nova clase de ataques baséase na manipulación das mesmas estruturas microarquitectónicas utilizadas nos ataques MDS (Mostraxe de datos microarquitectónicos), Spectre e Meltdown. Ao mesmo tempo, os novos ataques non están bloqueados polos métodos de protección existentes contra Meltdown, Spectre, MDS e outros ataques similares. A protección LVI efectiva require cambios de hardware na CPU. Ao organizar a protección mediante programación, engadindo a instrución LFENCE polo compilador despois de cada operación de carga da memoria e substituíndo a instrución RET por POP, LFENCE e JMP, rexístrase demasiada sobrecarga; segundo os investigadores, a protección completa do software levará a unha diminución da rendemento de 2 a 19 veces.

Parte da dificultade para bloquear o problema vese compensada polo feito de que o ataque é actualmente máis teórico que práctico (o ataque é teoricamente posible, pero moi difícil de implementar e só reproducible en probas sintéticas).
Intel apropiado o problema ten un nivel de perigo moderado (5.6 sobre 10) e liberado actualizando o firmware e o SDK para o ambiente SGX, no que intentou bloquear o ataque mediante unha solución alternativa. Os métodos de ataque propostos actualmente só son aplicables aos procesadores Intel, pero non se pode descartar a posibilidade de adaptar LVI para outros procesadores aos que sexan aplicables ataques de clase Meltdown.

O problema foi identificado o pasado mes de abril pola investigadora Jo Van Bulck da Universidade de Lovaina, tras o cal, coa participación de 9 investigadores doutras universidades, desenvolvéronse cinco métodos básicos de ataque, cada un dos cales permite a existencia de métodos máis específicos. opcións. De xeito independente, en febreiro deste ano tamén os investigadores de Bitdefender descuberto unha das variantes de ataque LVI e informouno a Intel. As variantes de ataque distínguense polo uso de diferentes estruturas microarquitectónicas, como o búfer de almacenamento (SB, Store Buffer), o búfer de recheo (LFB, Line Fill Buffer), o búfer de cambio de contexto FPU e a caché de primeiro nivel (L1D), utilizadas anteriormente. en ataques como ZombieLoad, RIDL, Fallout, LazyFP, Presunto и Fusión.

LVI é unha nova clase de ataques ao mecanismo de execución especulativa na CPU

O principal honras O LVI contra os ataques de MDS é que MDS manipula a determinación do contido das estruturas microarquitectónicas que permanecen na caché despois do manexo de fallos especulativos ou das operacións de carga e almacenamento, mentres
Os ataques LVI permiten que os datos do atacante sexan inseridos en estruturas microarquitectónicas para influír na posterior execución especulativa do código da vítima. Usando estas manipulacións, un atacante pode extraer o contido de estruturas de datos privadas noutros procesos cando executa certo código no núcleo da CPU de destino.

LVI é unha nova clase de ataques ao mecanismo de execución especulativa na CPU

Para problema de explotación no código do proceso da vítima debería reunirse secuencias especiais de código (gadgets) nas que se carga un valor controlado polo atacante, e ao cargar este valor fai que se lancen excepcións (falla, aborto ou asistencia), descartando o resultado e volvendo executar a instrución. Cando se procesa unha excepción, aparece unha xanela especulativa na que se filtran os datos procesados ​​no gadget. En particular, o procesador comeza a executar un anaco de código (gadget) en modo especulativo, despois determina que a predición non estaba xustificada e retrotrae as operacións ao seu estado orixinal, pero os datos procesados ​​durante a execución especulativa son depositados na caché L1D. e búfers microarquitectónicos e está dispoñible para a súa recuperación mediante o uso de métodos coñecidos para determinar datos residuais a través de canles de terceiros.

A excepción de "asistencia", a diferenza da excepción de "falla", é xestionada internamente polo procesador sen chamar aos controladores de software. A asistencia pode ocorrer, por exemplo, cando o bit A (Acceso) ou D (Sucio) da táboa de páxinas de memoria precisa ser actualizado. A principal dificultade para levar a cabo un ataque a outros procesos é como iniciar a aparición de asistencia manipulando o proceso vítima. Actualmente non hai formas fiables de facelo, pero é posible que se atopen no futuro. A posibilidade de realizar un ataque ata agora confirmouse só para enclaves Intel SGX, outros escenarios son teóricos ou reproducibles en condicións sintéticas (require engadir determinados gadgets ao código)

LVI é unha nova clase de ataques ao mecanismo de execución especulativa na CPU

LVI é unha nova clase de ataques ao mecanismo de execución especulativa na CPU

Posibles vectores de ataque:

  • Fuga de datos das estruturas do núcleo ao proceso a nivel de usuario. A protección do núcleo de Linux contra ataques Spectre 1, así como o mecanismo de protección SMAP (Prevención de acceso ao modo de supervisor), reducen significativamente a probabilidade dun ataque LVI. Pode ser necesario engadir protección adicional ao núcleo se no futuro se identifican métodos de ataque LVI máis sinxelos.
  • Fuga de datos entre distintos procesos. O ataque require a presenza de determinadas pezas de código na aplicación e a definición dun método para lanzar unha excepción no proceso de destino.
  • Fuga de datos do ambiente host ao sistema invitado. O ataque clasifícase como demasiado complexo, polo que esixe varios pasos difíciles de implementar e predicións de actividade no sistema.
  • Fuga de datos entre procesos en diferentes sistemas convidados. O vector de ataque está preto de organizar a fuga de datos entre diferentes procesos, pero ademais require manipulacións complexas para evitar o illamento entre os sistemas convidados.

Publicado por investigadores algúns prototipos cunha demostración dos principios para levar a cabo un ataque, pero aínda non son axeitados para realizar ataques reais. O primeiro exemplo permítelle redirixir a execución de código especulativo no proceso da vítima, de xeito similar á programación orientada ao retorno (R.O.P.,Programación orientada a retorno). Neste exemplo, a vítima é un proceso especialmente preparado que contén os gadgets necesarios (aplicar un ataque a procesos reais de terceiros é difícil). O segundo exemplo permítenos interferir cos cálculos durante o cifrado AES dentro do enclave Intel SGX e organizar unha fuga de datos durante a execución especulativa de instrucións para restaurar o valor da clave utilizada para o cifrado.


Fonte: opennet.ru

Engadir un comentario