Vulnerabilidade nos processadores Intel Atom levando ao vazamento de informações dos registros

A Intel divulgou uma vulnerabilidade de microarquitetura (CVE-2023-28746) nos processadores Intel Atom (E-core) que permite a determinação dos dados usados ​​por um processo executado anteriormente no mesmo núcleo da CPU. A vulnerabilidade, codinome RFDS (Register File Data Sampling), é causada pela capacidade de determinar informações residuais de arquivos de registro do processador (RF, Register File), que são usados ​​para armazenar conjuntamente o conteúdo dos registros em todas as tarefas no mesmo núcleo da CPU. .

O problema foi identificado pelos engenheiros da Intel durante uma auditoria interna. Informações detalhadas sobre o método de exploração da vulnerabilidade não são divulgadas. Argumenta-se que o invasor não pode controlar propositalmente a seleção de processos para extração de dados, ou seja, a deposição de informações disponíveis para recuperação é aleatória. No entanto, o monitoramento de informações residuais pode vazar dados confidenciais de outros processos de usuário, do kernel do sistema, de máquinas virtuais, de enclaves SGX e de manipuladores de modo SMM.

Vazamentos afetam registros vetoriais que são usados ​​ativamente em criptografia, funções de cópia de memória e processamento de strings, por exemplo, nas funções memcpy, strcmp e strlen. O vazamento também é possível por meio de registros para armazenar números de ponto flutuante e inteiros, mas eles são atualizados durante a execução da tarefa com muito mais frequência do que os registros vetoriais, portanto, o vazamento através deles é menos provável. Os dados residuais não permanecem diretamente nos registradores, mas podem ser extraídos dos arquivos de registradores usando técnicas de ataque de canal lateral, como a mineração de dados no cache da CPU.

A vulnerabilidade afeta apenas os processadores Atom baseados nas microarquiteturas Alder Lake, Raptor Lake, Tremont, Goldmont e Gracemont. Como os processadores vulneráveis ​​não suportam o modo HyperThreading, o vazamento só é possível dentro de um thread de execução do núcleo atual da CPU. As alterações para resolver a vulnerabilidade estão incluídas na atualização do microcódigo microcode-20240312-staging. Os métodos de proteção contra a vulnerabilidade são idênticos aos já utilizados para bloquear ataques previamente identificados do MDS (Microarchitectural Data Sampling), SRBDS (Special Register Buffer Data Sampling), TAA (Transactional Asynchronous Abort), DRPW (Device Register Partial Write) e Ataques SBDS (compartilhados). Amostragem de dados de buffers).

Para bloquear vazamentos no kernel e hipervisores, além de atualizar o microcódigo, é necessário utilizar métodos de proteção de software baseados no uso da instrução VERW para limpar o conteúdo dos buffers da microarquitetura ao retornar do kernel para o espaço do usuário ou ao transferir controle para o sistema convidado. A proteção especificada já foi adicionada ao hipervisor Xen e ao kernel Linux. Para habilitar a proteção no kernel Linux, você pode usar o sinalizador “reg_file_data_sampling=on” ao carregar o kernel, e informações sobre exposição a vulnerabilidades e a presença de microcódigo necessário para proteção podem ser avaliadas no arquivo “/sys/devices/system /cpu/vulnerabilidades/reg_file_data_sampling”.

Fonte: opennet.ru

Adicionar um comentário