LVI — uma nova classe de ataques ao mecanismo de execução especulativa em CPUs

Divulgadas informações sobre uma nova classe de ataques LVI (Load Value Injection, CVE-2020-0551) no mecanismo de execução especulativa em CPUs Intel, que podem ser utilizados para vazar chaves e dados secretos de enclaves Intel SGX e outros processos.

A nova classe de ataques baseia-se em manipulações das mesmas estruturas microarquitetônicas que nos ataques MDS (Microarchitectural Data Sampling), Spectre e Meltdown.Os novos ataques não são bloqueados pelos métodos de proteção existentes contra Meltdown, Spectre, MDS e outros ataques semelhantes. Para garantir uma proteção eficaz contra LVI, é necessário realizar mudanças de hardware na CPU. Ao tentar proteger por meio de software, acrescentando a instrução LFENCE após cada operação de carregamento da memória e substituindo a instrução RET por POP, LFENCE e JMP, os custos são excessivamente altos — de acordo com os pesquisadores, a proteção completa via software resultaria em uma diminuição de desempenho de 2 a 19 vezes.

Parcialmente, a dificuldade em bloquear o problema é compensada pelo fato de que, atualmente, o ataque tem mais caráter teórico do que prático (o ataque é teoricamente possível, mas muito difícil de implementar e reproduzido apenas em testes sintéticos).
A Intel atribuiu à questão um nível de perigo moderado (5.6 de 10) e lançou atualizações de firmware e SDK para o ambiente SGX, em que tentaram bloquear a realização do ataque por meio alternativo. Os métodos de ataque propostos até agora são aplicáveis apenas a processadores Intel, mas não se pode excluir a possibilidade de adaptação do LVI a outros processadores suscetíveis a ataques da classe Meltdown.

O problema foi identificado em abril do ano passado pelo pesquisador Jo Van Bulck da Universidade de Leuven, após o que, com a participação de 9 pesquisadores de outras universidades, foram desenvolvidos cinco métodos básicos de realização de ataques, cada um admitindo a existência de variantes mais específicas. variantes. Independentemente, em fevereiro deste ano, pesquisadores da empresa Bitdefender também descobriram um dos variantes de ataque LVI e relataram-no à Intel. As variantes de ataque diferem pelo uso de diferentes estruturas microarquitetônicas, como o buffer de armazenamento (SB, Store Buffer), buffer de preenchimento (LFB, Line Fill Buffer), buffer de troca de contexto FPU e cache de nível um (L1D), anteriormente utilizados em ataques como ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow e Meltdown.

LVI - uma nova classe de ataques ao mecanismo de execução especulativa na CPU

A principal diferença LVI de ataques MDS é que MDS manipula a definição do conteúdo das estruturas microarquitetônicas que permanecem no cache após o processamento especulativo de exceções (fault) ou operações de load e store, enquanto
os ataques LVI permitem a substituição de dados do atacante nas estruturas microarquitetônicas para influenciar a execução especulativa subsequente do código da vítima. Com essas manipulações, o atacante pode extrair o conteúdo de estruturas de dados fechadas em outros processos ao executar um código específico no núcleo CPU alvo.

LVI - uma nova classe de ataques ao mecanismo de execução especulativa na CPU

Para exploração do problema no código do processo vítima devem ocorrer sequências de código específicas (gadgets), nas quais um valor controlado pelo atacante é carregado, e o carregamento desse valor resulta na ocorrência de exceções (fault, abort ou assist), descartando o resultado e reexecutando a instrução. Durante o processamento da exceção, uma janela especulativa é criada, durante a qual ocorre um vazamento dos dados manipulados no gadget. Em particular, o processador começa a executar especulativamente um pedaço de código (gadget), depois determina que a previsão estava errada e reverte as operações ao seu estado original, mas os dados processados durante a execução especulativa permanecem no cache L1D e nos buffers microarquitetônicos, sendo disponíveis para extração usando métodos conhecidos de determinação de dados remanescentes através de canais laterais.

A exceção 'assist', ao contrário da 'fault', é processada dentro do processador sem a chamada de manipuladores de software. Assist pode ocorrer, por exemplo, quando é necessário atualizar o bit A (Accessed) ou D (Dirty) na tabela de páginas de memória. A principal dificuldade em realizar um ataque em outros processos é como iniciar a ocorrência de assist manipulando o processo da vítima. Atualmente, não existem métodos confiáveis para fazer isso, mas no futuro poderá surgirem. Até agora, a possibilidade de realizar o ataque foi confirmada apenas para enclaves Intel SGX, e os outros cenários permanecem teóricos ou reproduzíveis em condições sintéticas (sendo necessário adicionar certos gadgets ao código)

LVI - uma nova classe de ataques ao mecanismo de execução especulativa na CPU

LVI - uma nova classe de ataques ao mecanismo de execução especulativa na CPU

Possíveis vetores de ataque:

  • Exfiltração de dados da estrutura do núcleo para o processo em nível de usuário. As proteções contra ataques do tipo Spectre 1 no núcleo Linux, bem como o mecanismo de proteção SMAP (Supervisor Mode Access Prevention), reduzem significativamente a probabilidade de um ataque LVI. Pode ser necessária a adição de proteção ao núcleo se forem descobertos, no futuro, métodos mais simples para realizar um ataque LVI.
  • Exfiltração de dados entre diferentes processos. Para o ataque, é necessário ter determinados fragmentos de código no aplicativo e definir o método de formatação de exceção no processo alvo.
  • Exfiltração de dados do ambiente host para o sistema convidado. O ataque é classificado como sendo muito complexo, exigindo a execução de várias etapas difíceis de implementar e previsões sobre a atividade no sistema.
  • Exfiltração de dados entre processos em diferentes sistemas convidados. O vetor de ataque é semelhante à organização da exfiltração de dados entre diferentes processos, mas requer, adicionalmente, a realização de manobras complexas para contornar a isolação entre os sistemas convidados.

Pesquisadores publicaram alguns protótipos demonstrando os princípios da execução do ataque, mas ainda não são adequados para realizar ataques reais. O primeiro exemplo permite redirecionar a execução especulativa de código no processo alvo, semelhante à programação orientada a retorno (ROP, Return-Oriented Programming). Neste exemplo, o alvo é um processo especialmente preparado que contém os gadgets necessários (a aplicação do ataque a processos externos reais é dificultada). O segundo exemplo permite intervir nos cálculos durante a criptografia AES dentro do enclave Intel SGX e organizar a exfiltração de dados durante a execução especulativa de instruções para recuperar o valor usado para criptografar a chave.


Por que no hosting comum a administração do PrestaShop é lenta, e no seu não é?

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster