Foi descoberto um novo ataque de canal lateral crítico LVI-LFB (injeção de valor de carga nos Buffers Line Fill)

Pesquisadores da Bitdefender identificaram e criaram novamente uma prova de conceito para um novo ataque de canal lateral.

O ataque, chamado LVI-LFB (Load Value Injection in the Line Fill Buffers) permite que um invasor injete valores invasivos em certas estruturas microarquitetónicas que são então utilizadas pela vítima, o que pode levar à revelação de dados secretos e protegidos em todos os níveis de privilégio.

Este novo ataque (CVE-2020-0551) afeta CPUs Intel mais recentes que utilizam execução especulativa.

Breve visão geral

Na procura por CPUs cada vez mais rápidas, os fornecedores implementaram várias versões de execução especulativa. Essa funcionalidade faz com que a CPU faça suposições instruídas sobre instruções que podem ser necessárias antes de determinar se elas são, de fato, necessárias. Essa execução especulativa pode deixar rastros no cache que os invasores podem usar para vazar memória privilegiada do kernel.

O que torna a pesquisa sobre esses ataques de ponta em comparação com os ciberataques contra vulnerabilidades mais tradicionais é que chega à raiz de como as CPUs modernas funcionam. Para investigar adequadamente, as equipes de pesquisa devem ter uma compreensão completa dos internos da CPU (previsão de ramificação, execução fora de ordem, execução especulativa, pipeline e caches), internos do sistema operacional (chamadas do sistema, tratamento de interrupções e exceções e KPTI) e canais laterais e ataques de execução especulativa em geral.

Impacto

Esse novo ataque pode ser particularmente devastador em ambientes multilocatários e com várias cargas de trabalho executados em hardware partilhado entre grupos de cargas de trabalho dentro de uma organização ou entre organizações, como nuvens públicas e privadas. Isso ocorre porque, como mostra o PoC, existe o potencial de um processo menos privilegiado sob controlo do invasor para sequestrar especulativamente o fluxo de controlo num processo com privilégios mais elevados, quando requisitos específicos são atendidos.

O risco mais simples é o roubo de dados secretos que, de outra forma, devem ser mantidos privados por limites de segurança nos níveis de hardware, hipervisor e sistema operacional. Essas informações podem incluir qualquer coisa, desde chaves de encriptação, palavras-passe ou outras informações que um invasor possa extrair ou utilizar para obter mais controlo de um sistema direcionado.

Como o ataque LVI-LFB foi descoberto e divulgado

Essa nova técnica de ataque é chamada de Injeção de Valor de Carga, e o CVE atribuído é CVE-2020-0551.

Os pesquisadores analisaram anteriormente o MDS (Microarchitectural Data Sampling) apenas de uma direção; a vítima acede ao segredo, que é carregado nos buffers MDS, enquanto o invasor divulga o conteúdo dos buffers MDS emitindo uma instrução de carga que requer assistências de microcódigo (por exemplo, por ler um endereço inválido). No entanto, os buffers MDS também podem ser explorados ao contrário; se um invasor pulverizar os buffers MDS com um valor específico, uma vítima pode carregar especulativamente esse valor específico quando uma instrução de carga aciona tal assistência de microcódigo (por exemplo, a instrução de carga aciona uma falha). Ao analisar cuidadosamente o que é o Spectre e o que é MDS, um olho atento identificará rapidamente a causa raiz da nova vulnerabilidade LVI-LFB; um ramo de memória indireta que requer uma assistência de microcódigo sendo alimentado com valores obsoletos dos buffers MDS que podem ser controlados por um invasor, levando assim à execução especulativa de códigos arbitrários.

Outros cenários de ataque foram descritos por investigadores académicos que descobriram de forma independente e relataram o problema pela primeira vez à Intel em abril de 2019. A Bitdefender relatou o problema à Intel em 10 de fevereiro de 2020. A resposta deles em 25 de fevereiro reconheceu o problema e também revelou que a divulgação pública ocorreria em 10 de março de 2020.

Quais sistemas são afetados?


O ataque LVI-LFB afeta CPUs Intel mais recentes que utilizam execução especulativa.

Mitigação

As estratégias de mitigação para ataques de canal lateral baseados em hardware enquadram-se em várias categorias, cada uma com um grau de impacto operacional nas organizações.

  1. Hardware. Estas são correções incluídas diretamente no hardware e aplicam-se apenas a gerações de CPUs que foram construídas após a identificação das falhas de arquitetura.
  2. Software. Essas são implementações de correções de erros que funcionam por completo no software. O Kernel Page Table Isolation (KPTI) é um exemplo de correção que protege a memória do kernel num espaço de endereço virtual isolado, tornando ineficazes vários ataques especulativos de canal lateral, como Meltdown. No entanto, para ser eficaz contra o LVI-LFB de aplicação para aplicação, um novo tipo de KPTI - KPTI horizontal - é necessário. Alternativamente, o sistema operacional também deve libertar os buffers MDS (LFBs em particular) ao fazer a transição de um modo menos privilegiado para um modo mais privilegiado, para evitar que os acessos à memória assistida por microcódigo sejam executados especulativamente com dados controlados pelo invasor
  3. Microcódigo. Essas mitigações exigem cooperação entre hardware e software. O fornecedor de hardware fornece uma correção de microcódigo para expor novas funcionalidades (por exemplo, as mitigações Spectre, L1TF ou MDS) que são utilizadas pelo hipervisor ou pelo (s) fornecedor (es) do sistema operativo para mitigar as vulnerabilidades.
  4. Desativar recursos. Desativar o hyperthreading é uma boa ideia em sistemas em que a segurança é crítica, assim como serializar todas as operações de carga críticas utilizando a instrução lfence. Outras mitigações podem envolver modificações nos compiladores, de modo a gerar código que não seja vulnerável a esse tipo de ataque.

Outro ataque de canal lateral que foi descoberto pela Bitdefender, o Ataque SWAPGS pode ser mitigado utilizando o Bitdefender Hypervisor Introspection.

Créditos

A equipa de pesquisa avançada da Bitdefender gostaria de dar crédito aos investigadores que comunicaram esse problema pela primeira vez à Intel em abril de 2019 e também agradecer a sua cooperação e colaboração que levaram à divulgação pública desse problema (e a muito mais). Os investigadores académicos são:

Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss e Frank Piessens

Estes investigadores criaram um site exclusivo e um artigo académico detalhado, que estão disponíveis da seguinte forma:

https://lviattack.eu/ (uma descrição detalhada do problema)

https://lviattack.eu/lvi.pdf(um whitepaper acadêmico)

Informações adicionais também estão disponíveis na Intel:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html (consultivo)

https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection(informações técnicas)