Pesquisadores dos EUA e da China descobriram que as CPUs Intel estão vulneráveis a um novo ataque de canal lateral.
Sim. Foi descoberto um novo ataque de canal lateral que afeta várias gerações de CPUs Intel, permitindo que os dados vazem pelo registro EFLAGS.
CPUs Intel estão vulneráveis a um novo ataque de canal lateral
O novo ataque foi descoberto por pesquisadores da Universidade de Tsinghua, da Universidade de Maryland e de um laboratório de informática (BUPT) administrado pelo Ministério da Educação da China e é diferente da maioria dos outros ataques de canal lateral.
Em vez de depender do sistema de cache como muitos outros ataques de canal lateral, esse novo ataque aproveita uma falha na execução transitória que possibilita a extração de dados secretos do espaço de memória do usuário por meio da análise de tempo.
O ataque funciona como um canal lateral para o Meltdown, uma falha crítica de segurança descoberta em 2018, afetando muitos microprocessadores baseados em x86.
O Meltdown explora um recurso de otimização de desempenho chamado “execução especulativa” para permitir que os invasores ignorem os mecanismos de isolamento de memória para acessar segredos armazenados na memória do kernel, como senhas, chaves de criptografia e outros dados privados.
O Meltdown foi amplamente mitigado por meio de patches de software, atualizações de microcódigo e reprojetos de hardware; no entanto, nenhuma solução resolveu o problema 100% e o método de ataque mais recente pode funcionar mesmo em sistemas totalmente corrigidos, dependendo das configurações de hardware, software e patch.
O novo ataque de canal lateral apresentado em um artigo técnico publicado no Arxiv.org descreve uma falha na alteração do registro EFLAGS em execução transitória, afetando o tempo das instruções JCC (jump on condition code).
O registrador EFLAGS é um registrador da CPU que contém vários sinalizadores relacionados ao estado do processador, enquanto a instrução JCC é uma instrução da CPU que permite desvio condicional com base no conteúdo do registrador EFLAGS.
O ataque é realizado em duas fases, sendo a primeira para disparar a execução transiente e codificar dados secretos através do registrador EFLAGS, e a segunda é medir o tempo de execução da instrução KCC para decodificar os dados.
Os dados experimentais mostraram que o ataque alcançou 100% de recuperação de dados (vazamento) para o Intel i7-6700 e Intel i7-7700 e teve algum sucesso contra a CPU Intel i9-10980XE mais recente. O experimento foi conduzido no Ubuntu 22.04 com kernel Linux versão 5.15.0.
No entanto, os pesquisadores observam que esse ataque de tempo não é tão confiável quanto os métodos de canal lateral do estado do cache e, para obter melhores resultados em chips recentes, o ataque teria que ser repetido milhares de vezes.
“Em nosso experimento, descobrimos que a influência do registro EFLAGS no tempo de execução da instrução Jcc não é tão persistente quanto o estado do cache”, diz a parte sobre a avaliação dos dados experimentais.
“Por cerca de 6 a 9 ciclos após a execução transitória, o tempo de execução Jcc não estará prestes a construir um canal lateral. Empiricamente, o ataque precisa ser repetido milhares de vezes para maior precisão.”
Os pesquisadores admitem que as causas do ataque permanecem indefinidas e levantam a hipótese de que há um buffer na unidade de execução da CPU Intel, que precisa de tempo para reverter se a execução for interrompida, um processo que causa uma parada se a instrução seguinte depende no alvo do buffer.
No entanto, eles ainda propõem algumas mitigações não triviais, como alterar a implementação da instrução JCC para tornar impossível a medição da execução adversária sob qualquer condição ou reescrever o EFLAGS após a execução transitória para reduzir sua influência sobre a instrução JCC.