Pesquisadores da Universidade da Califórnia em San Diego apresentaram um novo método de ataque a estruturas microarquitetônicas de processadores Intel, aplicável entre outros a CPUs baseados nas microarquiteturas Raptor Lake e Alder Lake. O ataque, que recebeu o codinome Indirector, permite modificar o fluxo de execução especulativa de instruções em outros processos e em outros níveis de privilégio (por exemplo, no núcleo ou em outra máquina virtual), executados em um único thread de CPU com o código do atacante. Como demonstração do funcionamento do método, foi preparado um protótipo de exploit que permite determinar a disposição de endereços de memória para contornar o mecanismo de proteção ASLR (Address Space Layout Randomization). Além disso, sob licença MIT, foi publicado um conjunto de ferramentas desenvolvido para análise e engenharia reversa da lógica microarquitetônica da CPU.
Foram propostos dois métodos para organizar o ataque. O primeiro método baseia-se na distorção do conteúdo do buffer de previsão de saltos indiretos IBP (Indirect Branch Predictor), utilizado para prever saltos indiretos em condições onde o endereço ou deslocamento para o salto ainda não são conhecidos e são calculados nas instruções que antecedem a instrução de salto. O segundo método envolve o buffer de previsão de saltos BTB (Branch Target Buffer), que contém informações sobre saltos recentes.


As vulnerabilidades identificadas permitem que o atacante determine o conteúdo das entradas nos buffers IBP e BTB, que contêm endereços de saltos utilizados em processos externos, além de realizar a substituição de um endereço de salto arbitrário nas tabelas de dados dos buffers. Como resultado, o atacante pode redirecionar o fluxo de execução de um processo externo para um endereço desejado na memória durante a execução especulativa das instruções. Após a determinação de uma previsão incorreta, o resultado da execução especulativa será descartado, mas os endereços e dados lidos da memória durante o processo de execução especulativa ficarão armazenados no cache e poderão ser extraídos utilizando um dos métodos para determinar o conteúdo do cache com base na análise da variação do tempo de acesso a dados em cache e não em cache. A determinação de endereços exatos de saltos indiretos pode ser utilizada, na prática, para contornar o mecanismo de proteção ASLR.
Fonte: opennet.ru
