BHI: uma nova vulnerabilidade da classe Spectre afetando Intel e ARM

Pesquisadores da Universidade Livre de Amsterdã tornado conhecido recentemente encontrou um nova vulnerabilidade que é uma versão estendida da vulnerabilidade Spectre-v2 em processadores Intel e ARM.

Essa nova vulnerabilidade, à qual ter batizado como BHI (Injeção de Histórico de Filial, CVE-2022-0001), BHB (Buffer de Histórico de Filial, CVE-2022-0002) e Spectre-BHB (CVE-2022-23960), caracteriza-se por permitir burlar os mecanismos de proteção eIBRS e CSV2 adicionados aos processadores.

A vulnerabilidade é descrita em diferentes manifestações do mesmo problema, pois BHI é um ataque que afeta diferentes níveis de privilégio, por exemplo, um processo de usuário e o kernel, enquanto BHB é um ataque no mesmo nível de privilégio, por exemplo, eBPF JIT e o núcleo.

Sobre vulnerabilidade

Conceitualmente, BHI é uma variante estendida do ataque Spectre-v2, para contornar proteção adicional (Intel eIBRS e Arm CSV2) e orquestrar vazamento de dados, a substituição de valores no buffer por um histórico de ramificação global (Branch History Buffer), que é usado na CPU para melhorar a precisão da previsão de ramificação levando em conta a história das transições passadas.

Durante um ataque através de manipulações com a história das transições, são criadas condições para a previsão incorreta da transição e execução especulativa das instruções necessárias, cujo resultado é depositado na cache.

Com exceção de usar um buffer de histórico de versão em vez de um buffer de destino de versão, o novo ataque é idêntico ao Spectre-v2. A tarefa do invasor é criar tais condições que o endereço, ao realizar uma operação especulativa, é retirado da área dos dados que estão sendo determinados.

Depois de realizar um salto especulativo indireto, o endereço de salto lido da memória permanece no cache, após o qual um dos métodos para determinar o conteúdo do cache pode ser usado para recuperá-lo com base em uma análise da mudança no tempo de acesso ao cache e não em cache dados.

Pesquisadores demonstraram uma exploração funcional que permite que o espaço do usuário extraia dados arbitrários da memória do kernel.

Por exemplo, ele mostra como, usando o exploit preparado, é possível extrair dos buffers do kernel uma string com um hash da senha do usuário root, carregado do arquivo /etc/shadow.

A exploração demonstra a capacidade de explorar a vulnerabilidade em um único nível de privilégio (ataque kernel a kernel) usando um programa eBPF carregado pelo usuário. A possibilidade de usar gadgets Spectre existentes no código do kernel, scripts que levam à execução especulativa de instruções, também não está descartada.

Vulnerabilidade aparece na maioria dos processadores Intel atuais, com exceção da família de processadores Atom e em vários dos processadores ARM.

Segundo a pesquisa, a vulnerabilidade não se manifesta nos processadores AMD. Para resolver o problema, vários métodos têm sido propostos. software para bloquear a vulnerabilidade, que pode ser usado antes do aparecimento da proteção de hardware em futuros modelos de CPU.

Para bloquear ataques através do subsistema eBPF, sRecomenda-se desabilitar por padrão a capacidade de carregar programas eBPF por usuários não privilegiados gravando 1 no arquivo “/proc/sys/kernel/unprivileged_bpf_disabled” ou executando o comando “sysctl -w kernel .unprivileged_bpf_disabled=1”.

Para bloquear ataques por meio de gadgets, é recomendado usar a instrução LFENCE em seções de código que potencialmente levam à execução especulativa. Vale ressaltar que a configuração padrão da maioria das distribuições Linux já contém as medidas de proteção necessárias suficientes para bloquear o ataque eBPF demonstrado pelos pesquisadores.

As recomendações da Intel para desabilitar o acesso sem privilégios ao eBPF também se aplicam por padrão a partir do kernel Linux 5.16 e serão portadas para ramificações anteriores.

Por fim, se estiver interessado em saber mais sobre o assunto, pode consultar os detalhes no link a seguir


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.