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 usadas 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 usam execução especulativa.

Breve visão geral

Na busca de 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 ela chega à raiz de como as CPUs modernas operam. 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 compartilhado 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 controle do invasor para sequestrar especulativamente o fluxo de controle em um processo com privilégios mais altos, 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 criptografia, senhas ou outras informações que um invasor possa exfiltrar ou usar para obter mais controle 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 a ela é CVE-2020-0551.

Os pesquisadores analisaram anteriormente o MDS (Microarchitectural Data Sampling) apenas de uma direção; a vítima acessa o segredo, que é carregado nos buffers MDS, enquanto o invasor vaza 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 abusados 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 pesquisadores acadêmicos que descobriram de forma independente e relataram o problema pela primeira vez à Intel em abril de 2019. O 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 usam execução especulativa.

Mitigação

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

  1. Hardware. Essas são correções incluídas diretamente no hardware e se aplicam 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 patch que funcionam inteiramente dentro do software. O Kernel Page Table Isolation (KPTI) é um exemplo de correção que protege a memória do kernel em um 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 aplicativo para aplicativo, um novo tipo de KPTI - KPTI horizontal - é necessário. Alternativamente, o sistema operacional também deve liberar 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 um patch de microcódigo para expor novas funcionalidades (por exemplo, as mitigações Spectre, L1TF ou MDS) que são usadas pelo hipervisor ou pelo (s) fornecedor (es) do sistema operacional para mitigar as vulnerabilidades.
  4. Desativando 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 usando a instrução lfence. Outras mitigações podem envolver modificações nos compiladores, a fim de 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 usando o Bitdefender Hypervisor Introspection.

Créditos

A equipe de pesquisa avançada da Bitdefender gostaria de dar crédito aos pesquisadores que relataram esse problema pela primeira vez à Intel em abril de 2019 e também agradecê-los por sua cooperação e colaboração que levaram à divulgação pública desse problema (e a muito mais). Os pesquisadores 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

Esses pesquisadores 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(mergulho técnico)