Kasper, um scanner de dispositivo para código especulativo no kernel Linux

Um grupo de pesquisadores da Universidade Livre de Amsterdã revelaram por meio de uma postagem no blog, uma ferramenta chamada "casper" que destacam que é projetado para identificar trechos de código no kernel do Linux que pode ser usado para explorar Vulnerabilidades da classe Spectre causada pela execução especulativa de código pelo processador.

Para quem desconhece esse tipo de ataque, deve saber que vulnerabilidades de classe como Spectre v1 permitem determinar o conteúdo da memória, um determinado script (gadgets) é necessário no código privilegiado, levando à execução especulativa de instruções.

Otimizar, o processador começa a executar esses dispositivos em modo especulativoou, em seguida, determina que a previsão de desvio não foi justificada e reverte as operações para seu estado original, mas os dados processados ​​durante a execução especulativa ficam no cache e nos buffers de microarquitetura e estão disponíveis para extração usando vários métodos de determinação de dados residuais por meio de terceiros. canais do partido.

Ferramentas de verificação de gadgets baseado em padrões anteriormente disponível para a vulnerabilidade Spectre mostrou uma taxa muito alta de falsos positivos, enquanto muitos gadgets reais foram perdidos (experimentos mostraram que 99% dos gadgets detectados por essas ferramentas não podiam ser usados ​​para ataques, e 33% dos que funcionavam não eram dispositivos observados capazes de levar a um ataque).

Apresentando o Kasper, um scanner de dispositivo de execução transitória (ou especulativa). Ele usa políticas de análise de corrupção para modelar um invasor capaz de explorar vulnerabilidades arbitrárias de software/hardware em um caminho transitório. 

Sobre Cásper

Para melhorar a qualidade da identificação de dispositivos problemáticos, Kasper modela as vulnerabilidades que um invasor pode usar em cada etapa dos ataques da classe Spectre: os problemas são modelados para permitir o controle de dados (por exemplo, substituição de dados do invasor em estruturas de microarquitetura para influenciar a execução especulativa subsequente) usando ataques da classe LVI , obter acesso a informações confidenciais (por exemplo, quando o buffer está fora dos limites ou a memória é usada após ser liberada) e vaza informações confidenciais (por exemplo, analisando o estado do cache do processador ou usando o método MDS ).

Modele um invasor capaz de controlar dados (por exemplo, por meio de massagem de memória ou injeção de valor LVI), acessar segredos (por exemplo, por meio de acesso fora dos limites ou uso após free ) e vazar esses segredos (por exemplo, por meio de cache, MDS- canais secretos baseados em contenção de portas). 

Ao realizar o teste, bibliotecas de tempo de execução de contatos do kernel por Kasper e verifique se eles funcionam no nível LLVM. Durante a verificação, a execução especulativa do código é emulada pelo mecanismo de restauração do ponto de verificação, que executa especificamente uma bifurcação de código prevista incorretamente, após o que retorna ao seu estado original antes do início da bifurcação.

A Kasper também tenta modelar várias vulnerabilidades de software e hardware, analisa a influência dos efeitos arquitetônicos e microarquitetônicos e realiza testes de fuzzing de possíveis ações do invasor. Para a análise dos fluxos de execução, é utilizada a porta DataFlowSanitizer para o kernel Linux, e para os testes de fuzzing, uma versão modificada do pacote syzkaller.

Como resultado, a Kasper descobriu 1.379 dispositivos anteriormente desconhecidos no kernel Linux altamente reforçado. Confirmamos nossas descobertas demonstrando uma exploração de prova de conceito de ponta a ponta para um dos dispositivos encontrados.

Durante a varredura do kernel Linux com o Kasper, 1379 dispositivos anteriormente desconhecidos foram identificados, o que pode levar ao vazamento de dados durante a execução especulativa de instruções.

Nota-se que talvez apenas alguns deles possam apresentar problemas reais, mas para mostrar que existe um perigo real, e não apenas teórico, foi desenvolvido um protótipo funcional de um exploit para um dos trechos de código problemáticos, o que levou a um vazamento de informações de memória do kernel.

Finalmente se você estiver interessado em saber mais sobre isso sobre Kasper, você deve saber que o código fonte É distribuído sob a licença Apache 2.0.

fonte: https://www.vusec.net


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.