Detalhes de vulnerabilidades no mecanismo MMIO dos processadores Intel revelados

Faz pouco Intel divulgou detalhes sobre uma nova classe de vazamentos de dados através das estruturas microarquitetônicas dos processadores, que permitem, através da manipulação do mecanismo MMIO (Memory Mapped Input Output), determinar as informações processadas em outros núcleos de CPU.

Por exemplo vulnerabilidades permitem a extração de dados de outros processos, enclaves Intel SGX ou máquinas virtuais. As vulnerabilidades são específicas apenas para CPUs Intel; processadores de terceiros não são afetados pelas vulnerabilidades.

Três métodos foram identificados. para extrair dados residuais via MMIO:

  • DRPW (Gravação de registro de dispositivo parcial, CVE-2022-21166) - Um problema com o manuseio incorreto de gravações em alguns registros MMIO. Se o tamanho dos dados gravados for menor que o tamanho do log, as informações residuais nos buffers de preenchimento também serão copiadas para o log. Como resultado, um processo que iniciou uma operação de escrita incompleta no registrador MMIO pode receber dados que ficam nos buffers da microarquitetura após operações realizadas em outros núcleos de CPU.
  • SBDS (Amostragem de dados de buffers compartilhados, CVE-2022-21125) - Vazamento de dados residuais do buffer de preenchimento vinculado ao kernel, que foi descartado como resultado da mudança de buffers intermediários comuns para todos os núcleos.
  • SBDR (Ler dados de buffers compartilhados, CVE-2022-21123): O problema é semelhante ao SBDS, mas difere no fato de que dados residuais podem entrar em estruturas de CPU visíveis para aplicativos. Os problemas de SBDS e SBDR ocorrem apenas em processadores clientes e na família de servidores Intel Xeon E3.

Um ataque requer acesso ao MMIO, que, por exemplo, pode ser obtido em sistemas de virtualização que fornecem a capacidade de acessar MMIO para sistemas convidados controlados por invasores. A correção também pode ser necessária para sistemas que usam enclaves Intel SGX (Software Guard Extensions) independentes.

Bloquear a vulnerabilidade requer uma atualização de firmware e o uso de métodos proteção de software adicional baseado no uso da instrução VERW para limpar o conteúdo dos buffers de microarquitetura no momento de retornar do kernel para o espaço do usuário ou quando o controle é transferido para o sistema convidado.

Também se usa proteção semelhante para bloquear ataques classes previamente identificadas de MDS (Microarchitectural Data Sampling), SRBDS (Special Record Buffer Data Sampling) e TAA (Transactional Assynchronous Abort).

Essas vulnerabilidades não são ataques de execução transitória. No entanto, essas vulnerabilidades podem propagar dados obsoletos para buffers de preenchimento do kernel, onde os dados podem ser inferidos posteriormente por um ataque de execução transitória não mitigado.

A mitigação dessas vulnerabilidades inclui uma combinação de atualizações de microcódigo e alterações de software, dependendo da plataforma e do modelo de uso. Algumas dessas mitigações são semelhantes àquelas usadas para mitigar a amostragem de dados microarquitetônicos (MDS) ou àquelas usadas para mitigar a amostragem de dados de buffer de registro especial (SRBDS).

Essas vulnerabilidades foram atribuídas aos seguintes Identificadores Comuns de Vulnerabilidade e Exposição (CVE) e pontuações da versão 3.1

No lado do microcódigo, as mudanças necessárias para implementar a segurança são propostas na atualização de microcódigo de maio para CPUs Intel (IPU 2022.1).

No kernel do Linux, a proteção está incluída contra uma nova classe de ataques nas diferentes versões que são suportadas.

O arquivo "/sys/devices/system/cpu/vulnerabilities/mmio_stale_data" foi adicionado ao kernel do Linux para verificar a suscetibilidade do sistema a vulnerabilidades no MMIO e avaliar a atividade de determinados mecanismos de proteção. 

Essência da classe de vulnerabilidades identificadas é que algumas operações levam a copiar ou mover dados deixados após a execução em outros núcleos de CPU de um buffer de microarquitetura para outro. Vulnerabilidades no MMIO permitem que esses dados residuais sejam transferidos de buffers de microarquitetura isolados para registradores visíveis ao aplicativo ou buffers de CPU.

Por fim, se você estiver interessado em saber mais sobre o assunto, consulte os detalhes em o seguinte link.


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.