Dois ataques ao mecanismo de previsão de canal de cache em processadores AMD

Um grupo de pesquisadores da Universidade Técnica de Graz (Áustria), anteriormente conhecido por desenvolver métodos de ataque MDS, NetSpectreName, Martelo de lançamento и ZombieLoad, conduziu pesquisas sobre otimizações de hardware específicas para processadores AMD e foi desenvolvido dois novos métodos de ataques de canal lateral que manipulam vazamentos de dados durante a operação do mecanismo de previsão de canal de cache LXNUMX dos processadores AMD. As técnicas podem ser usadas para reduzir a eficácia da proteção ASLR, recuperar chaves em implementações vulneráveis ​​de AES e aumentar a eficácia do ataque Spectre.

Foram identificados problemas na implementação do mecanismo de predição de canal (way preditor) no cache de dados de primeiro nível (L1D) da CPU, utilizado para prever qual canal de cache contém determinado endereço de memória. A otimização usada nos processadores AMD é baseada na verificação de μ-tags (μTag). μTag é calculado aplicando uma função hash específica ao endereço virtual. Durante a operação, o mecanismo de previsão de canal usa μTag para determinar o canal de cache da tabela. Assim, o μTag permite que o processador se limite a acessar apenas um canal específico, sem pesquisar todas as opções, o que reduz significativamente o consumo de energia da CPU.

Dois ataques ao mecanismo de previsão de canal de cache em processadores AMD

Durante a engenharia reversa da implementação do sistema de previsão de canal em várias gerações de processadores AMD lançados de 2011 a 2019, foram identificadas duas novas técnicas de ataque de canal lateral:

  • Collide+Probe - permite que um invasor rastreie o acesso à memória para processos executados no mesmo núcleo lógico da CPU. A essência do método é usar endereços virtuais que causam colisões na função hash usada para calcular μTag para rastrear o acesso à memória. Ao contrário dos ataques Flush+Reload e Prime+Probe usados ​​em processadores Intel, Collide+Probe não usa memória compartilhada e funciona sem conhecimento de endereços físicos.
  • Load+Reload - permite determinar com muita precisão os rastreamentos de acesso à memória no mesmo núcleo físico da CPU. O método é baseado no fato de que uma célula de memória física só pode estar no cache L1D uma vez. Aqueles. acessar a mesma célula de memória em um endereço virtual diferente fará com que a célula seja expulsa do cache L1D, permitindo que o acesso à memória seja rastreado. Embora o ataque dependa de memória compartilhada, ele não libera linhas de cache, permitindo ataques furtivos que não removem dados do cache de último nível.

Com base nas técnicas Collide+Probe e Load+Reload, os pesquisadores demonstraram vários cenários de ataque de canal lateral:

  • É mostrada a possibilidade de utilizar métodos para organizar um canal oculto de comunicação indireta entre dois processos, permitindo a transferência de dados em velocidades de até 588 kB por segundo.
  • Usando colisões no μTag, foi possível reduzir a entropia para diferentes variantes de ASLR (Address Space Layout Randomization) e contornar a proteção ASLR no kernel em um sistema Linux completamente atualizado. É mostrada a possibilidade de realizar um ataque para reduzir a entropia ASLR tanto a partir de aplicativos de usuário quanto usando código JavaScript executado em um ambiente sandbox e código executado em outro ambiente convidado.

    Dois ataques ao mecanismo de previsão de canal de cache em processadores AMD

  • Baseado no método Collide+Probe, foi implementado um ataque para recuperar a chave de criptografia de uma implementação vulnerável (baseada em Mesa T) Criptografia AES.
  • Ao usar o método Collide+Probe como canal de aquisição de dados, o ataque Spectre foi capaz de extrair dados privados do kernel sem usar memória compartilhada.

A vulnerabilidade ocorre em processadores AMD baseados em microarquiteturas
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epic), Zen+ e Zen2.
A AMD foi notificada sobre o problema em 23 de agosto de 2019, mas até agora não divulgou o relatório com informações sobre como bloquear a vulnerabilidade. Segundo os pesquisadores, o problema pode ser bloqueado no nível de atualização do microcódigo, fornecendo bits MSR para desativar seletivamente o sistema de previsão de canal, semelhante ao que a Intel fez para controlar a desativação dos mecanismos de previsão de ramificação.

Dois ataques ao mecanismo de previsão de canal de cache em processadores AMD

Fonte: opennet.ru

Adicionar um comentário