CROSSTalk uma vulnerabilidade de vazamento de dados que afeta a Intel

Confira os detalhes e conheça melhor a CROSSTalk uma vulnerabilidade de vazamento de dados que afeta a Intel, e também o seu sistema operacional favorito.

Simplesmente a Intel não deixou de ser o alvo de várias vulnerabilidades que levam ao vazamento de dados e já falei bastante sobre elas aqui no blog e, neste novo caso, a Intel ainda não é exceção.

E acontece que uma equipe de pesquisadores da Universidade Livre de Amsterdã identificou uma nova vulnerabilidade (CVE-2020-0543) nas estruturas de microarquitetura dos processadores Intel, notável pelo fato de permitir restaurar os resultados de alguns instruções executadas em outro núcleo da CPU.

CROSSTalk uma vulnerabilidade de vazamento de dados que afeta a Intel

CROSSTalk uma vulnerabilidade de vazamento de dados que afeta a Intel

Essa é a primeira vulnerabilidade no mecanismo de execução de instruções especulativas, que permite que os dados vazem entre núcleos de CPU separados (anteriormente, os vazamentos eram limitados a diferentes segmentos em um núcleo).

A vulnerabilidade pertence à classe de problemas MDS, introduzida há um ano, e baseia-se na aplicação de métodos de análise de terceiros a dados em estruturas de microarquitetura.

O princípio do CROSSTalk está próximo da vulnerabilidade do RIDL, mas difere na origem do vazamento. A nova vulnerabilidade manipula um vazamento de um buffer intermediário anteriormente não documentado que é compartilhado entre todos os núcleos da CPU.

“A essência do problema é que algumas instruções do microprocessador, incluindo RDRAND, RDSEED e SGX EGETKEY, são implementadas usando a operação de microarquitetura interna SRR (Special Log Reads). Em processadores vulneráveis, os dados retornados para SRR são depositados em um buffer intermediário comum a todos os núcleos da CPU, após o qual são transferidos para o buffer de preenchimento associado ao núcleo físico específico da CPU em que o leia operação. Em seguida, no buffer de preenchimento, o valor é copiado para os registros visíveis para os aplicativos.”

O tamanho do buffer compartilhado intermediário corresponde à linha de cache, que geralmente é maior que o tamanho dos dados lidos, e diferentes operações de leitura afetam diferentes deslocamentos no buffer.

Como o buffer compartilhado é copiado para todo o buffer de preenchimento, não apenas a parte necessária para a operação atual é movida, mas também os dados restantes de outras operações, incluindo aquelas executadas em outros núcleos da CPU.

Se o ataque for organizado com sucesso, um usuário local autenticado no sistema poderá determinar o resultado da execução das instruções RDRAND, RDSEED e EGETKEY em um processo estranho ou dentro do enclave Intel SGX, independentemente do núcleo da CPU, o código está sendo executado.

Os pesquisadores que descobriram o problema publicaram um protótipo que demonstrou a capacidade de filtrar informações sobre valores aleatórios obtidos pelas instruções RDRAND e RDSEED para restaurar a chave privada ECDSA processada no enclave Intel SGX depois de executar apenas uma operação assinada digitalmente no sistema.

Isso demonstrou que uma ampla gama de processadores Intel para computadores de mesa, móveis e servidores, incluindo Core i3, i5, i7, i9, m3, Celeron, Atom, Xeon, Xeon escalável etc., são vulneráveis.

Notavelmente, a Intel foi notificada da vulnerabilidade em setembro de 2018 e em julho de 2019 foi fornecida uma exploração de protótipo que mostrava um vazamento de dados entre os núcleos da CPU, mas o desenvolvimento da solução foi atrasado devido à complexidade de sua implementação.

Na atualização de microcódigo proposta recentemente, o problema é bloqueado alterando o comportamento das instruções RDRAND, RDSEED e EGETKEY para substituir os dados no buffer compartilhado para impedir que informações residuais se instalem nele.

Além disso, a suspensão de acesso ao buffer é aplicada até que as operações de leitura e gravação sejam concluídas.

Um efeito colateral dessa proteção é um aumento nos atrasos quando RDRAND, RDSEED e EGETKEY são executados e uma diminuição no desempenho ao tentar executar essas instruções simultaneamente em diferentes processadores lógicos.

Infelizmente, essas características podem afetar negativamente o desempenho de alguns aplicativos.

O que está sendo falado no blog

Sair da versão mobile