Seis anos depois de a Intel realizar mudanças arquitetônicas em suas CPUs para resolver vulnerabilidades de execução, pesquisadores desenvolveram uma nova técnica que pode contornar algumas dessas mitigações.
Chamado de Injeção de Privilégios de Ramificação (BPI- Branch Privilege Injection), o novo método de ataque foi desenvolvido por pesquisadores da Universidade ETH de Zurique, na Suíça, e pode vazar informações da memória privilegiada em sistemas operacionais atualizados e CPUs Intel. O método anula as mitigações de hardware desenvolvidas pela Intel desde 2018 em suas CPUs para a vulnerabilidade Spectre v2, também conhecida como Injeção de Alvo de Ramificação (BTI).
A análise revela três variante, violando os limites de segurança entre usuário e kernel, convidado e hipervisor, e através das barreiras indiretas de previsão de ramificação – escreveram os pesquisadores da ETH em seu artigo de pesquisa. (clique aqui para ler)

De acordo com um comunicado da Intel, a vulnerabilidade, identificada como CVE-2024-45332, afeta todas as CPUs Intel desde a 9ª geração, conhecida como Coffee Lake Refresh, lançada em outubro de 2018. A Intel lançou agora uma atualização de microcódigo que inclui novas mitigações, mas os usuários só podem obtê-las por meio de atualizações UEFI dos fabricantes de seus PCs ou placas-mãe.
A variante 2 do Spectre, identificada como CVE-2017-5715, foi uma das três vulnerabilidades divulgadas por pesquisadores do Google em janeiro de 2018 que exigiram, sem dúvida, o maior esforço de coordenação de patches da história, e deu início a uma nova área de pesquisa que produziu dezenas de outras vulnerabilidades em CPUs nos anos seguintes.
O ataque, apelidado de Branch Target Injection pela Intel, explora o recurso de execução especulativa das CPUs modernas, que utiliza algoritmos para tentar prever qual caminho de código um programa provavelmente seguirá e executar instruções ao longo desse caminho com antecedência, a fim de fornecer os resultados instantaneamente do cache quando o fluxo de execução atingir esse ponto. Se a especulação da CPU se mostrar incorreta, os resultados são descartados, mas até que isso aconteça, os invasores podem usar várias técnicas para extraí-los do cache da CPU, essencialmente usando-o como um canal lateral.
O impacto do Spectre v2 é grave, pois viola algumas das camadas de segurança fundamentais em sistemas operacionais e outros sistemas: por exemplo, a separação do acesso à memória entre processos em modo usuário e processos do kernel, a separação entre a memória do hipervisor e as máquinas virtuais convidadas, a separação entre a memória do sistema operacional e a memória de ambientes de execução seguros da CPU, como o Intel SGX, e muito mais. Muitas variantes do Spectre surgiram após a publicação inicial, incluindo Spectre-NG, SgxPectre, Spectre-PHT, Spectre-PHT-CA-OP, Spectre-PHT-CA-IP, Spectre-PHT-SA-OP, Spectre-BTB-SA-IP, Spectre-BTB-SA-OP e Spectre-BHI.
As mitigações para ataques de execução especulativa como o Spectre v2, que a Intel introduziu em novas CPUs, são chamadas de Especulação Restrita de Ramificação Indireta Aprimorada (eIBRS) e Barreira de Predição de Ramificação Indireta (IBPB).
Segundo o artigo, embora o eIBRS pareça restringir corretamente as previsões ao domínio de segurança ao qual estão associadas, essa associação pode ser manipulada. As atualizações do preditor de ramificação em andamento enquanto ocorre uma troca de privilégios são associadas ao novo domínio de segurança em vez do anterior. Além disso, os pesquisadores descobriram que as atualizações em andamento quando o preditor de ramificação indireto é invalidado (IBPB) não são liberadas. Como resultado, essas atualizações são armazenadas no preditor de ramificação, apesar de invalidá-lo.
E a prova de conceito vazou com sucesso memória arbitrária do kernel a 5,6 KB/s em um Ubuntu 24.04 atualizado com todas as mitigações padrão em execução em um processador Intel Raptor Lake (13ª geração). No entanto, os pesquisadores destacam que todos os sistemas operacionais são afetados, não apenas o Linux. Mas CPUs AMD e ARM não são afetadas por essa classe de ataques e condições de corrida porque possuem diferentes estratégias de mitigação em vigor.
Existem maneiras de implementar atualizações do microcódigo da CPU: por meio da UEFI durante os estágios iniciais da inicialização, onde a CPU carregará a versão mais recente do microcódigo armazenada na UEF; ou pelo bootloader do sistema operacional posteriormente no processo de inicialização, embora este seja um patch temporário que precisa ser constantemente reaplicado.
Para o Spectre v2, há também uma mitigação baseada em software proposta pelo Google, chamada retpoline, que substitui saltos e chamadas indiretas no código por retornos, pois os retornos não são previstos como desvios indiretos. Os pesquisadores da ETH Zurich sugerem, para evitar previsões de desvio indireto prejudiciais, desativar todas as previsões de desvio indireto no modo supervisor pois ainda que suportada apenas em processadores mais novos, essa abordagem resulta em uma sobrecarga menor de até 1,7% no UnixBench e 6,4% no lmbench.
Enquanto isso, o patch de microcódigo desenvolvido pela Intel introduz uma degradação de desempenho de até 2,7% nas CPUs da família Alder Lake quando os pesquisadores o testaram.