Um novo ataque chamado BTR, uma variante do Spectre v2, ameaça os sistemas Linux equipados com processadores Intel recentes. Em apenas alguns minutos, ele permite recuperar o hash da senha root. Esse mecanismo explora uma falha nas previsões das branches do processador e almeja particularmente os motores JIT.
Essa técnica, revelada pela equipe VUSec, destaca uma fraqueza persistente no nível do hardware que os patches de software ainda lutam para enfrentar de forma eficaz. Para os administradores Linux, é melhor entender como funciona esse ataque e como se proteger rapidamente.
Aqui está o que você precisa saber para compreender essa vulnerabilidade e suas implicações práticas.
Como o BTR desvia motores JIT para roubar dados sensíveis no Linux
O motor JIT (Just-In-Time), que encontramos em navegadores ou no compilador BPF do núcleo Linux, gera código sob demanda para acelerar operações. Para otimizar a execução, o processador utiliza um mecanismo chamado Branch Target Buffer (BTB). Este último memoriza o destino de saltos indiretos para antecipar as próximas instruções.
Qual é o problema? Quando um bloco de código JIT é liberado e, em seguida, substituído na mesma posição, o processador mantém sua previsão inicial, um resíduo obsoleto. Isso provoca uma execução especulativa sobre instruções ultrapassadas, oferecendo uma falha explorada pelo BTR.
Essa técnica de “execute-after-free” especulativa permite que um código não privilegiado desvie o fluxo de execução e acesse os dados do sistema através dos caches do processador.
Exploitação do hash root em menos de 5 minutos no Linux
Na demonstração dos pesquisadores, o driver do ataque utiliza o cBPF — uma versão clássica do BPF acessível sem privilégio. Um programa malicioso inicialmente alimenta o preditor, em seguida é removido e substituído por um segundo no mesmo endereço contendo instruções pipelined.
Em seguida, o ataque escaneia os caches para reconstruir o conteúdo da memória, byte por byte. É verdade que a velocidade é lenta (8 bytes por segundo), mas basta apontar precisamente as áreas corretas. Por exemplo, quando o comando su root é executado, o hash da senha é carregado na memória. O PoC mira a memória desse processo e recupera o hash em poucos minutos em um Lenovo.
Esse tempo varia conforme a geração do núcleo Intel — cerca de 3 minutos em um núcleo Raptor Cove, 5 minutos em um Lion Cove —, uma janela muito curta para um ataque de impacto crítico.
Por que os patches atuais ainda são insuficientes contra o BTR
Existe uma opção de endurecimento chamada bpf_jit_harden que supostamente embaralha os valores integrados no código JIT para impedir essas manipulações. No entanto, os pesquisadores descobriram uma maneira de contorná-la.
Eles escondem suas instruções maliciosas em outro lugar no código compilado, escapando assim dessa proteção. Como resultado, mesmo com essa opção ativada, o hash root continua vulnerável. É como lubrificar um motor antes de desmontá-lo sem avisar que algumas peças ainda são frágeis.
Por enquanto, outros motores JIT, como SpiderMonkey e GraalVM, demonstram ser um pouco mais resistentes, mas o espectro dessa falha ainda paira.
O objetivo dos fabricantes de processadores e editores para neutralizar o BTR
Todos os processadores testados, sejam eles Intel, AMD ou Arm, estão sujeitos a esse comportamento de previsão que não se atualiza quando o código muda. Em resumo, nenhum chip atual ainda responde perfeitamente a esse cenário.
Os fabricantes garantem que os mecanismos aplicáveis existem, especialmente o IBPB (Indirect Branch Predictor Barrier), mas insistem que a correção deve ser feita prioritariamente nas camadas de software. O terreno ideal para um voto de confiança no software livre em ação.
Aqui estão alguns avanços: o Linux agora desencadeia um IBPB em todos os núcleos durante a execução repetida de programas cBPF no mesmo endereço de memória. A Oracle randomiza a área do cache JIT para GraalVM, tornando a reutilização mais complexa. A Mozilla está estudando soluções semelhantes para o Firefox, mas aposta em um isolamento rigoroso de sites.
Algumas diretrizes para proteger seus servidores Linux contra o BTR
A condição sine qua non do ataque BTR é a capacidade de executar código não privilegiado na máquina. Em outras palavras, o atacante deve já ter acesso ao sistema. Não é um ataque remoto clássico, mas sim um hack pós-compromissão.
As versões do núcleo Linux afetadas são a partir da 5.18. Os patches necessários foram integrados em várias versões, como 6.1.183, 6.6.145 ou 7.2. Lembre-se de manter seu sistema atualizado.
Tenha em mente que recuperar o hash é uma etapa. Para quebrar esse hash e obter a senha em texto claro, ainda é necessário armar-se de paciência e recursos adequados.