TONTOU é um ataque contra CPUs Intel e AMD que permite contornar a proteção contra vulnerabilidades Spectre v2.

Pesquisadores do Instituto de Tecnologia de Massachusetts (MIT) identificaram a técnica de ataque TONTOU (Time-of-Neutralization to Time-of-Use), que oferece uma nova maneira de explorar vulnerabilidades microarquiteturais na classe Spectre v2. A vulnerabilidade permite que o conteúdo da memória do kernel seja determinado durante a execução de um exploit no espaço do usuário. O código para bloquear a exploração da vulnerabilidade foi integrado ao kernel. Linux 5 de agosto e incluído nas versões 7.1.7, 6.18.43, 6.12.102, 6.6.149, 6.1.181, 5.15.214 e 5.10.263.

Pesquisadores demonstraram a viabilidade de um ataque local, sem privilégios de usuário, para determinar o hash da senha do usuário root, armazenado no arquivo /etc/shadow e carregado na memória durante a autenticação do sistema. Os pesquisadores conseguiram vazar dados da memória do kernel com uma taxa de transferência de 5.47 bytes por segundo e uma precisão de 91.97%. Em 10 testes de exploração, com duração média de 18 minutos, em metade das vezes eles detectaram com sucesso a presença do arquivo /etc/shadow na memória e extraíram seu conteúdo.

A vulnerabilidade foi demonstrada em sistemas com processadores AMD e pode ser explorada em CPUs AMD das famílias Zen 1 a 4. O ataque também é viável em sistemas Intel, mas a exploração é mais complexa. Para se proteger contra estouros de pilha de retorno e bloquear a vulnerabilidade SRSO (Speculative Return Stack Overflow), os processadores AMD empregam o mecanismo de proteção Safe-RET, que limpa o buffer de previsão de desvio após cada uso e restringe a janela de ataque a duas instruções executadas em algumas dezenas de nanossegundos.

Para contornar essa proteção e ampliar a janela de ataque, foi implementada uma técnica de desaceleração da CPU, permitindo a substituição de interrupções no momento certo para redirecionar o fluxo de execução dentro do kernel e usar um manipulador de interrupção para corromper entradas no buffer de previsão de desvios. Para explorar a vulnerabilidade SRSO, um atacante pode criar condições em que a unidade de previsão de desvios execute especulativamente um grande número de chamadas CALL previstas incorretamente, o suficiente para causar um estouro na pilha de endereços de retorno e sobrescrever os pontos de retorno previstos corretamente, localizados no início da pilha. Como resultado, os elementos iniciais da pilha podem ser sobrescritos com valores escolhidos pelo atacante, o que subsequentemente leva ao uso desses valores substituídos durante a execução especulativa de uma instrução RET no contexto de outro processo.

O processador determinará que a previsão de desvio estava incorreta e reverterá a operação, mas os dados processados ​​durante a execução especulativa permanecerão no cache e nos buffers da microarquitetura. Se o bloco executado erroneamente acessar a memória, sua execução especulativa também resultará na permanência dos dados lidos da memória no cache compartilhado. Para recuperar informações do cache, pode-se usar um método para determinar o conteúdo do cache com base na análise das mudanças nos tempos de acesso aos dados em cache e não em cache.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção DDoS, servidores VPS VDS 🔥 Compre hospedagem de sites confiável com proteção contra DDoS, servidores VPS/VDS | ProHoster