Duas novas vulnerabilidades no eBPF permitem proteção de desvio contra Spectre 4

Logotipo do Spectre

Recentemente, a notícia de que duas vulnerabilidades foram identificadas no kernel linux que permitir usar o subsistema eBPF para contornar a proteção contra o ataque Spectre 4 (SSB, Bypass de armazenamento especulativo). É mencionado que, ao usar um programa BPF sem privilégios, um invasor pode criar condições para a execução especulativa de certas operações e determinar o conteúdo de áreas arbitrárias da memória do kernel.

O método de ataque Spectre 4 depende da restauração de dados presos no cache do processador após descartar o resultado da execução especulativa de operações ao processar operações intercaladas de leitura e gravação usando endereçamento indireto.

Quando uma operação de leitura segue uma operação de gravação, o deslocamento da direção de leitura pode já ser conhecido devido a operações semelhantes (as operações de leitura são realizadas com muito mais frequência e a leitura pode ser feita do cache) e o processador pode ler especulativamente antes de gravar, sem esperar que o deslocamento indireto da direção da gravação seja calculado.

Se, após o cálculo do deslocamento, for detectada uma interseção das áreas de memória para escrita e leitura, o processador simplesmente descartará o resultado lido já obtido especulativamente e repetirá esta operação. Esta função permite que a instrução de leitura acesse o valor anterior em alguma direção enquanto a operação de salvamento ainda está pendente.

Depois de descartar um comércio especulativo falido, vestígios de sua execução permanecem no cache, após o que um dos métodos para determinar o conteúdo do cache pode ser usado para recuperá-lo com base na análise das alterações no tempo de acesso ao cache e nos dados armazenados em cache.

Observe que cada tópico pode ser abusado independentemente do outro, contando com em erros que não se sobrepõem.

Os PoCs foram compartilhados de forma privada com os mantenedores do subsistema BPF para ajudar no desenvolvimento do arranjo.

A primeira vulnerabilidade CVE-2021-35477: é causado por uma falha no mecanismo de validação do programa BPF. Para se proteger contra o ataque do Spectre 4, o verificador adiciona uma instrução adicional após operações de salvamento potencialmente problemáticas na memória, armazenando um valor zero para compensar os traços da operação anterior.

Foi assumido que a operação de gravação zero seria muito rápida e bloquearia a execução especulativa, pois depende apenas do ponteiro do frame da pilha BPF. Mas, de fato, foi possível criar condições nas quais a instrução que leva à execução especulativa tem tempo para ser executada antes da operação de salvamento preventivo.

A segunda vulnerabilidade CVE-2021-3455: está relacionado ao fato de que quando o verificador de BPF detecta operações de salvamento potencialmente perigosas na memória, as áreas não inicializadas da pilha BPF, a primeira operação de gravação na qual ela não está protegida, são ignoradas.

Este recurso possibilita a realização de uma operação de leitura especulativa, dependendo da área de memória não inicializada, antes de executar a instrução de armazenamento. A nova memória para a pilha BPF é alocada sem verificar o conteúdo que já está na memória alocada, e na etapa anterior ao início do programa BPF, existe uma forma de gerenciar o conteúdo da área de memória, que será então alocado para a pilha BPF.

A solução disponível reimplementa técnicas de mitigação para continuar recomendado por fornecedores de CPU e disponível no kernel principal repositório git.

Finalmente, é mencionado que os mantenedores dos subsistemas eBPF no kernel obtiveram acesso a um protótipo de exploit que demonstra a possibilidade de realizar ataques na prática.

Os problemas são corrigidos na forma de patches, que serão incluídos na próxima atualização do kernel do Linux, portanto, as atualizações para as diferentes distribuições começarão a chegar nos próximos dias.

fonte: https://www.openwall.com/


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: AB Internet Networks 2008 SL
  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.