Técnica

O novo ataque ignora os mecanismos de defesa de hardware contra o buraco Spectre nos processadores Intel e ARM

O novo ataque ignora os mecanismos de defesa de hardware contra o buraco Spectre nos processadores Intel e ARM

 

Embora não seja fácil de explorar, essa prova de conceito mostra que alguns processadores Intel e ARM ainda são vulneráveis ​​a ataques de canal lateral.


Buraco do espectro

 

As contramedidas de hardware que foram implementadas nos processadores Intel e ARM nos últimos anos para remover uma grande falha chamada Spectre não são tão fortes quanto se pensava. Os cientistas desenvolveram um novo método de ataque que pode superar os mecanismos de defesa, mas seu uso não é tão fácil quanto o buraco de minhoca original.

O novo ataque, descoberto por pesquisadores do Grupo de Segurança de Sistemas e Redes da VU Amsterdam (VUSec), é chamado Specter-BHI (Branch History Injection) ou Spectre-BHB (Branch History Store) porque Intel e ARM deram nomes diferentes. De acordo com a equipe de pesquisa, esta é uma extensão do ataque Spectre v2 de 2017, também conhecido como Spectre-BTI (Branch Target Injection) e, como o Spectre v2, pode vazar informações confidenciais do espaço de memória do kernel privilegiado.

Confira também:

Uma exploração de prova de conceito por pesquisadores do VUSec é vazar hashes de senha de root de /etc/shadow usando uma conta não privilegiada. O arquivo /etc/shadow é um arquivo de sistema no Linux que só pode ser acessado pela conta raiz administrativa. Essencialmente, a exploração força o kernel a carregar um arquivo na memória onde normalmente estaria protegido do acesso por processos sem privilégios, mas depois usa um ataque Spectre-BHI para acessar e vazar seu conteúdo. Esta é uma violação séria do limite básico de segurança em sistemas operacionais modernos que separam aplicativos de modo de usuário e espaço de memória do espaço de memória do kernel privilegiado.

O que é Espectro?

Spectre é uma classe de vulnerabilidades, originalmente revelada em janeiro de 2017, que surge de um moderno recurso de desempenho de CPU chamado execução especulativa, no qual a CPU tenta prever antecipadamente o caminho que um programa seguirá ao acessar um branch condicional e executar instruções ao longo do esta faixa cedo. Se as previsões, baseadas em algoritmos internos, estiverem erradas, os resultados armazenados no cache do processador serão descartados. Ataques de execução especulativa como Spectre e muitos outros que se seguiram usam esse mecanismo para vazar informações de caches temporários que atuam como canais secundários.

“Na época em que o Spectre foi descoberto, o Branch Target Injection (BTI ou Spectre-v2), o tipo mais perigoso de Spectre, era fácil de usar em todos os níveis de permissão”, explicam os pesquisadores do VUSec. “Por exemplo, um invasor de userland sem privilégios pode passar qualquer alvo filho para um preditor de ramificação de userland intermediário e forçar o kernel a pular especulativamente para o alvo de código injetado e executar qualquer código que esteja lá.”

Para reduzir o risco, fornecedores de software como Google e fabricantes de kernel Linux desenvolveram soluções de software como o retpoline. Embora tenha sido eficaz, causou uma diminuição significativa no desempenho, de modo que os fabricantes de processadores posteriores desenvolveram a segurança do hardware. A solução da Intel é chamada EIBRS e ARM é CSV2.

“Essas soluções são complexas – o artigo de pesquisa original está disponível neste link – mas a essência disso é que o preditor ‘de alguma forma’ rastreia o nível de permissão (usuário/kernel) no qual o alvo é executado”, explicam os pesquisadores do VUSec. “E, como seria de esperar, se o alvo pertencer a um nível de privilégio mais baixo, o kernel não o usará (ou seja, não haverá mais locais de código aleatórios fornecidos pelo invasor que possam ser apreendidos especulativamente para o fluxo de controle do kernel). “

O problema, no entanto, é que o preditor da CPU depende do histórico global para selecionar entradas de destino para execução especulativa e, como os pesquisadores do VUSec demonstraram, esse histórico global pode ser corrompido. Em outras palavras, enquanto o Spectre v2 original permitia que invasores injetassem fisicamente a localização do código de destino e, em seguida, executassem furtivamente esse código pelo kernel, o novo ataque Spectre-BHI/BHB poderia forçar o kernel a prever incorretamente e executar algo interessante. Gadgets ou snippets de código que já existem. Está na história e foi feito no passado, mas pode levar ao vazamento de dados.

“O Intel eIBRS e o Arm CSV2 foram corrompidos? Como se. Isso significa que as medidas de segurança estão funcionando conforme o esperado, mas a superfície de ataque restante é mais importante do que os fabricantes originalmente supunham. […] No entanto, encontrar ferramentas que possam ser usadas está se tornando cada vez mais importante.” Mais difícil do que antes porque um invasor não pode injetar alvos diretamente nos limites de permissão.”

Atenuando o novo bug Spectre-BHI

A Intel identificou o novo Spectre-BHI como CVE-2022-0001 para a variante com vários privilégios e CVE-2022-0002 para a variante com vários privilégios. ARM descreve-o como CVE-2022-23960 para ambas as variantes.

Segundo a Intel, a maioria dos processadores da empresa são afetados, com exceção dos da família Atom. Para ARM, as CPUs fracas são Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex – A78C Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1.

Ambas as empresas fizeram recomendações e estão oferecendo contramedidas de software no momento. O ARM possui cinco soluções de mitigação diferentes, dependendo do sistema.

Em sua exploração do Linux, os pesquisadores do VUSec usaram eBPF, uma tecnologia disponível desde a versão 4.4 do kernel que permite que os programas sejam colocados em sandbox no kernel do sistema operacional. Embora o eBPF não faça parte do problema subjacente e outras ferramentas de código que podem vazar dados possam ser encontradas, a presença de um eBPF não privilegiado “facilita muito ataques especulativos (e outros)”, disseram os pesquisadores. Por esse motivo, eles recomendam desativá-lo, e algumas distribuições Linux começaram a desativá-lo por padrão.

Fonte: CSO

Assista também

.

Artigos relacionados

Botão Voltar ao topo