Eles identificaram um novo tipo de ataque que afeta os processadores Intel e AMD

Bug dentro do logotipo Intel

Um grupo de Pesquisadores da Universidade da Virgínia e da Califórnia apresentaram um novo tipo de ataque às estruturas de microarquitetura dos processadores Intel e AMD.

O método de ataque proposto está associado ao uso de um cache intermediário de micro-operações (cache micro-op) em processadores, que podem ser usados ​​para extrair informações que foram estabelecidas no curso da execução especulativa de instruções.

É observado que novo método supera significativamente o ataque de espectros v1 em termos de desempenho, torna difícil detectar o ataque e não é bloqueado pelos métodos existentes de proteção contra ataques através de canais laterais projetados para bloquear vulnerabilidades causadas pela execução especulativa de instruções.

Por exemplo, o uso da instrução LFENCE bloqueia o vazamento nos estágios posteriores da execução especulativa, mas não protege contra o vazamento por meio de estruturas de microarquitetura.

O método afeta os modelos de processador Intel e AMD lançados desde 2011, incluindo as séries Intel Skylake e AMD Zen. CPUs modernas dividem instruções complexas do processador em microoperações mais simples do tipo RISC, que são armazenados em cache em um cache separado.

Este cache é fundamentalmente diferente de caches de nível superior, não é diretamente acessível e atua como um buffer de fluxo para acessar rapidamente os resultados da decodificação de instruções CISC em uma microinstrução RISC.

No entanto, os pesquisadores encontraram uma maneira de criar as condições que surgem durante um conflito de acesso ao cache e permitir julgar o conteúdo do cache das microoperações por meio da análise das diferenças no tempo de execução de determinadas ações.

O cache micro-op nos processadores Intel é segmentado em relação aos threads da CPU (Hyper-Threading), enquanto os processadores AMD Zen usa um cache compartilhado, que cria condições para vazamento de dados não apenas dentro de um thread de execução, mas também entre diferentes threads no SMT (o vazamento de dados é possível entre o código em execução em diferentes núcleos lógicos da CPU).

Os pesquisadores propuseram um método básico para detectar mudanças no cache de micro-operações e vários cenários de ataque que permitem criar canais de transmissão de dados secretos e usar código vulnerável para filtrar dados confidenciais, ambos dentro de um único processo (por exemplo, para organizar um processo de vazamento de dados ao executar um terceiro código da parte em motores JIT e máquinas virtuais) e entre o kernel e os processos no espaço do usuário.

Ao preparar uma variante do ataque Spectre usando o cache micro-op, os pesquisadores conseguiram atingir uma taxa de transferência de 965.59 Kbps com uma taxa de erro de 0.22% e 785.56 Kbps ao usar a correção de erros, no caso de um vazamento na mesma memória espaço. endereços. e nível de privilégio.

Com um vazamento abrangendo diferentes níveis de privilégio (entre o kernel e o espaço do usuário), a taxa de transferência foi de 85,2 Kbps com correção de erro adicionada e 110,96 Kbps com uma taxa de erro de 4%.

Ao atacar os processadores AMD Zen, criando um vazamento entre diferentes núcleos lógicos de CPU, a taxa de transferência foi de 250 Kbps com uma taxa de erro de 5,59% e 168,58 Kbps com correção de erros. Comparado com o método clássico de Spectre v1, o novo ataque acabou sendo 2,6 vezes mais rápido.

Prevê-se que a mitigação de um ataque de cache micro-op exija mais alterações que degradam o desempenho do que quando as defesas Spectre estavam habilitadas.

Como um compromisso ideal, é proposto bloquear esses ataques não desativando o cache, mas no nível de monitoramento de anomalias e determinação de estados de cache típicos dos ataques.

Como nos ataques Spectre, organizar um vazamento do kernel ou outros processos requer a execução de um determinado script (dispositivos) no lado da vítima dos processos, levando à execução especulativa de instruções.

Cerca de 100 desses dispositivos foram encontrados no kernel do Linux e serão removidos, mas soluções são regularmente encontradas para gerá-los, por exemplo, aquelas associadas ao lançamento de programas BPF especialmente criados no kernel.

Finalmente se você estiver interessado em saber mais sobre isso, você pode verificar 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.