LVI: uma nova classe de ataques de execução especulativa em CPUs Intel

Informação sobre uma nova classe de ataques LVI no mecanismo execução especulativa afetando a Intel, que pode ser usado para a derivação de chaves e dados confidenciais de enclaves Intel SGX e outros processos.

A nova classe de ataques é baseada em manipulações com as mesmas estruturas de microarquitetura dos ataques MDS, Spectre e Meltdown. Ao mesmo tempo, novos ataques não são bloqueados por métodos existentes proteção contra Meltdown, Spectre, MDS e outros ataques semelhantes.

Sobre a LVI

O problema foi identificada em abril do ano passado pelo pesquisador Jo Van Bulck da Universidade de Leuven, após o qual, com a participação de 9 pesquisadores de outras universidades, cinco métodos básicos de ataque foram desenvolvidos, cada um dos quais permite opções mais específicas.

Enfim, em fevereiro deste ano, o Os pesquisadores do Bitdefender também descobriram uma das opções de ataque LVI e relatou à Intel.

As opções de ataque são diferenciadas pelo uso de várias estruturas de microarquitetura, como Store Buffer (SB, Store Buffer), Fill Buffer (LFB, Line Fill Buffer), FPU Context Switch Buffer e First Level Cache (L1D), usados ​​anteriormente em ataques como ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow e Meltdown.

A principal diferença entre Eu os atacos LVI e MDS é que o MDS manipula a determinação de conteúdo de estruturas de microarquitetura que permanecem no cache após manipulação de erros especulativos ou operações de carregamento e armazenamento, enquanto Os ataques LVI permite que o atacante seja substituído em estruturas de microarquitetura para influenciar a execução especulativa subsequente do código da vítima.

Usando essas manipulações, um invasor pode extrair o conteúdo de estruturas de dados fechadas em outros processos enquanto executa determinado código no núcleo da CPU de destino.

Para exploração, os problemas devem ser encontrados no código do processo e enviar sequências de códigos especiais (gadgets) em que o valor controlado pelo invasor é carregado e o carregamento desse valor causa exceções que descartam o resultado e executam novamente a instrução.

Ao processar uma exceção, uma janela especulativa aparece durante a qual os dados processados ​​no gadget são filtrados.

Em particular, o processador começa a executar especulativamente um trecho de código (um gadget), então determina que a previsão não foi justificada e reverte as operações, mas os dados processados Durante a execução especulativa são depositados no cache L1D e buffers dados de microarquitetura e podem ser extraídos deles usando métodos conhecidos para determinar dados residuais de canais de terceiros.

A principal dificuldade para atacar outros processos es como iniciar a assistência manipulando o processo da vítima.

Atualmente, não há maneiras confiáveis ​​de fazer isso, mas no futuro sua descoberta não será excluída. Até agora, a possibilidade de um ataque foi confirmada apenas para enclaves Intel SGX, outros cenários são teóricos ou reproduzíveis em condições sintéticas.

Possíveis vetores de ataque

  • O vazamento de dados das estruturas do kernel para o processo no nível do usuário. Proteção do kernel Linux contra ataques Spectre 1 e o mecanismo de proteção SMAP (Prevenção de Acesso do Modo Supervisor) reduzir significativamente a probabilidade de um ataque LVI. A introdução de proteção adicional do kernel pode ser necessária ao identificar métodos mais simples para realizar um ataque LVI no futuro.
  • Vazamento de dados entre diferentes processos. Um ataque requer a presença de certos trechos de código no aplicativo e a determinação do método para gerar uma exceção no processo de destino.
  • Vazamento de dados do ambiente host para o sistema convidado. O ataque é classificado como muito complexo, exigindo a implementação de várias etapas de difícil implementação e previsões de atividade no sistema.
  • Vazamento de dados entre processos em diferentes sistemas convidados. O vetor de ataque está perto de organizar o vazamento de dados entre diferentes processos, mas também requer manipulações complexas para evitar o isolamento entre os sistemas convidados.

Para fornecer proteção eficaz contra LVI, são necessárias alterações de hardware na CPU. Organizando a proteção programaticamente, adicionando a instrução LFENCE do compilador após cada operação de carregamento da memória e substituindo a instrução RET por POP, LFENCE e JMP, corrige-se muita sobrecarga; De acordo com os pesquisadores, a proteção abrangente do software levará a uma degradação do desempenho de 2 a 19 vezes.

fonte: https://www.intel.com


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.