Blog do Edivaldo – Informações e Notícias sobre Linux

BHI, a nova vulnerabilidade da classe Spectre que afeta chips Intel e ARM

Confira os detalhes da BHI, a nova vulnerabilidade da classe Spectre que afeta chips Intel e ARM, que é identifica como CVE-2022-0001.

Os pesquisadores da Free University of Amsterdam divulgaram recentemente que encontraram uma nova vulnerabilidade que é uma versão estendida da vulnerabilidade Spectre-v2 nos processadores Intel e ARM.

BHI, a nova vulnerabilidade da classe Spectre que afeta chips Intel e ARM

BHI, a nova vulnerabilidade da classe Spectre que afeta chips Intel e ARM
BHI, a nova vulnerabilidade da classe Spectre que afeta chips Intel e ARM

Esta nova vulnerabilidade, que eles chamaram de BHI (Branch History Injection, CVE-2022-0001), BHB (Branch History Buffer, CVE-2022-0002) e Spectre-BHB (CVE-2022-23960), é caracterizada por permitir evasão de mecanismos de proteção eIBRS e CSV2 adicionados aos processadores.

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

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

No decorrer de um ataque através de manipulações com o histórico de transições, são criadas condições para a previsão incorreta da transição e a 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 para que o endereço, ao realizar uma operação especulativa, seja 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.

A vulnerabilidade aparece na maioria dos processadores Intel atuais, com exceção da família de processadores Atom e 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 de software foram propostos para bloquear a vulnerabilidade, que podem ser usados ​​antes do aparecimento da proteção de hardware em futuros modelos de CPU.

Para bloquear ataques através do subsistema eBPF, é recomendado desabilitar a capacidade de carregar programas eBPF por usuários não privilegiados por padrão digitando 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, é recomendável 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.
[postlist tags=”stream” requesttype=”1″ number=”4″]

Sair da versão mobile