Um grupo de pesquisadores da Universidade Livre de Amsterdã identificou uma nova (CVE-2020-0543) em estruturas microarquiteturais de processadores Intel, notável porque permite a recuperação dos resultados da execução de certas instruções realizadas em outro núcleo de CPU. Esta é a primeira vulnerabilidade do mecanismo de execução especulativa de instruções que permite o vazamento de dados entre núcleos individuais de CPU (vazamentos anteriores eram limitados a diferentes threads de um único núcleo). Os pesquisadores nomearam o problema de CROSSTalk, mas na a vulnerabilidade é mencionada como SRBDS (Special Register Buffer Data Sampling).
A vulnerabilidade está relacionada a há um ano e baseia-se na aplicação de métodos de análise de canais laterais aos dados em estruturas microarquiteturais. CROSSTalk é semelhante à vulnerabilidade , mas difere na fonte do vazamento.
A nova vulnerabilidade manipula o vazamento de um buffer intermediário anteriormente não documentado, que é utilizado em conjunto por todos os núcleos de CPU.
é que algumas instruções do microprocessador, incluindo RDRAND, RDSEED e SGX EGETKEY, são implementadas usando uma operação microarquitetural interna chamada SRR (Special Register Reads). Em processadores vulneráveis, os dados retornados para SRR se acumulam em um buffer intermediário, compartilhado entre todos os núcleos de CPU, e depois são transferidos para um buffer de preenchimento associado a um núcleo físico específico de CPU onde a operação de leitura foi iniciada. Em seguida, o valor é copiado do buffer de preenchimento para os registradores visíveis para os aplicativos.
O tamanho do buffer intermediário compartilhado corresponde à linha de cache, geralmente maior do que o tamanho dos dados lidos, e diferentes operações de leitura afetam diferentes deslocamentos no buffer. Como o buffer compartilhado é copiado integralmente para o buffer de preenchimento, não só a parte necessária para a operação atual é movida, mas também os dados remanescentes de outras operações, incluindo aquelas realizadas em outros núcleos de CPU.
No caso de uma organização bem-sucedida do ataque, um usuário local autenticado no sistema pode determinar o resultado da execução das instruções RDRAND, RDSEED e EGETKEY em um processo de terceiros ou dentro de um enclave Intel SGX, independentemente do núcleo da CPU em que o código está sendo executado.
Os pesquisadores que identificaram o problema um protótipo de exploit que demonstra a possibilidade de vazamento de informações sobre valores aleatórios obtidos através das instruções RDRAND e RDSEED, para a recuperação de uma chave privada ECDSA, manipulada em um enclave Intel SGX, após a realização de apenas uma operação de assinatura digital no sistema.

O Problema uma ampla gama de processadores Intel para desktops, móveis e servidores, incluindo Core i3, i5, i7, i9, m3, Celeron (séries J, G e N), Atom (séries C, E e X), Xeon (famílias E3, E5, E7, W e D), Xeon Scalable, etc. Vale ressaltar que a Intel foi notificada sobre a vulnerabilidade em setembro de 2018, e em julho de 2019 foi fornecido um protótipo de exploit que demonstrava vazamento de dados entre núcleos de CPU, mas o desenvolvimento da correção se prolongou devido à complexidade de sua implementação. Na atualização de microcódigo proposta hoje, o problema foi bloqueado alterando o comportamento das instruções RDRAND, RDSEED e EGETKEY para uma gravação excessiva de dados em um buffer compartilhado para evitar a persistência de informações residuais nele. Além disso, foi aplicada a suspensão do acesso ao buffer até que as operações de leitura e regravação do conteúdo fossem concluídas.
Um efeito colateral dessa proteção é o aumento da latência na execução das instruções RDRAND, RDSEED e EGETKEY, e a redução da largura de banda ao tentar executar essas instruções simultaneamente em diferentes processadores lógicos. A execução das instruções RDRAND, RDSEED e EGETKEY também suspende o acesso à memória de outros processadores lógicos. Essas características podem afetar negativamente o desempenho de algumas aplicações de servidor, portanto, o firmware prevê um mecanismo (RNGDS_MITG_DIS) para desativar a proteção das instruções RDRAND e RDSEED realizadas fora do enclave Intel SGX.
Fonte: opennet.ru
