Skip to content
Sistema

Em 5 minutos: Como explorar o BTR, uma variante do Spectre v2, para roubar o hash da senha root no Linux

Avatar illustré de Julien Macé 3 min read
découvrez btr, une solution innovante offrant performance et fiabilité pour répondre à vos besoins technologiques.
btr

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 ramificações do processador e visa especialmente os motores JIT.

Essa técnica, revelada pela equipe VUSec, destaca uma fraqueza persistente a nível de hardware que os patches de software ainda têm dificuldade em contrabalançar de forma eficaz. Para os administradores Linux, é melhor entender o funcionamento desse ataque e como se proteger rapidamente.

Aqui está o que você precisa saber para entender essa vulnerabilidade e suas implicações práticas.

Como BTR desvia os 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 em tempo real para acelerar as operações. Para otimizar a execução, o processador utiliza um mecanismo chamado Branch Target Buffer (BTB). Este último memoriza o destino dos saltos indiretos para antecipar as instruções seguintes.

A questão? Quando um bloco de código JIT é liberado e depois substituído no mesmo local, 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.

Exploração do hash root em menos de 5 minutos no Linux

Na demonstração dos pesquisadores, o piloto do ataque utiliza o cBPF – uma versão clássica do BPF acessível sem privilégio. Um programa malicioso primeiro treina o preditor, depois é deletado e substituído por um segundo na mesma localização contendo instruções encadeadas.

Em seguida, o ataque examina os caches para reconstruir o conteúdo da memória, byte a byte. Certamente, a taxa é lenta (8 bytes por segundo), mas é suficiente apontar precisamente as áreas corretas. Por exemplo, quando o comando su root é executado, o hash da senha é carregado na memória. O PoC foca na memória desse processo e recupera o hash em poucos minutos em um Lenovo.

Esse tempo varia de acordo com 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 confunde os valores incluídos 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 permanece vulnerável. É como lubrificar um motor antes de desmontá-lo sem avisar que algumas peças ainda estão frágeis.

No momento, outros motores JIT como SpiderMonkey e GraalVM parecem 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 Intel, AMD ou Arm, estão sujeitos a esse comportamento de previsão que não se atualiza quando o código muda. Em termos claros, nenhum chip atual responde perfeitamente a esse cenário.

Os fabricantes garantem que existem mecanismos aplicáveis, incluindo o IBPB (Indirect Branch Predictor Barrier), mas insistem que a correção deve ocorrer 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 ativa um IBPB em todos os núcleos durante a execução repetida de programas cBPF na mesma área 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 de rede clássico, mas sim uma invasão pós-comprometimento.

As versões do núcleo Linux afetadas começam na 5.18. Os patches necessários foram integrados em várias versões como as 6.1.183, 6.6.145 e 7.2. Lembre-se de manter seu sistema atualizado.

Lembre-se de que recuperar o hash é uma etapa. Para quebrar esse hash e obter a senha em texto claro, é necessário ter paciência e os recursos adequados.

Share Facebook X WhatsApp LinkedIn Pinterest Reddit Email