TONTOU: Um novo ataque Spectre v2 contra AMD e Intel

Pontos chave:
  • TONTOU aproveita o intervalo de tempo entre a limpeza do buffer de previsão e sua utilização.
  • Os atacantes usam a "Injeção de Interrupção" para redirecionar o fluxo do kernel e contaminar o mecanismo de previsão.
  •  Isso afeta as arquiteturas Zen 1 a 4 da AMD e várias gerações de processadores Intel.
  • As correções já foram incorporadas nas atualizações recentes do kernel Linux (5 de agosto).

Ataque TONTOU

Será possível que a velocidade do seu processador seja justamente o que está comprometendo sua segurança? Para entender como os processadores atingem essa velocidade , precisamos considerar que eles funcionam "prevendo o futuro"... Não, eles não são mágicos nem têm uma pequena bola de cristal...

O funcionamento dos processadores é o seguinte: em vez de esperar para ver qual caminho um programa seguirá, o chip prevê a rota provável e a antecipa. Se a previsão estiver incorreta, o trabalho é descartado, mas os rastros permanecem na memória. É aqui que entra o Spectre , uma das vulnerabilidades mais significativas descobertas nos últimos anos. Desde a sua descoberta, os atacantes aprenderam a ler esses rastros, criando variantes cada vez mais sofisticadas; TONTOU é uma dessas novas vulnerabilidades.

Pesquisadores do MIT descobriram o TONTOU (Time-of-Neutralization to Time-of-Use), uma nova e sofisticada técnica para explorar vulnerabilidades do Spectre v2 , permitindo que a memória do kernel seja lida a partir do espaço do usuário.

Embora fabricantes e desenvolvedores tenham projetado diversos mecanismos de proteção contra ataques preditivos há anos, os invasores conseguiram descobrir novas rotas, e este novo estudo do CSAIL demonstra como contornar essas proteções.

Os pesquisadores descobriram que existe um intervalo de tempo inevitável entre o momento em que o buffer é limpo e o instante em que as previsões são usadas, e é nesse pequeno intervalo que o código (às vezes apenas algumas instruções) é injetado por meio de interrupções do sistema, possibilitando a recontaminação do hardware e a extração de dados críticos.

Em relação ao ataque: interrupções e violação da segurança do Safe-RET

A AMD possui uma defesa contra vulnerabilidades SRSO (Speculative Return Stack Overflow) chamada Saferet, que limpa o mecanismo de previsão imediatamente antes de cada uso. Isso deixa uma janela de vulnerabilidade que pode ser explorada em algumas dezenas de nanossegundos. Para atacar essa pequena janela, pesquisadores desenvolveram uma técnica chamada Injeção de Interrupção.

Os processadores pausam constantemente suas tarefas para lidar com interrupções, e programas comuns podem configurar esses temporizadores . Com isso em mente, pesquisadores ajustaram precisamente um temporizador e, usando uma técnica para diminuir a velocidade da CPU, fizeram com que o processador fosse interrompido exatamente no momento errado . Durante essa interrupção, um atacante pode forçar a execução de um grande número de chamadas, causando um estouro da pilha de endereços. Quando a execução errônea termina, o processador descarta o processo, mas os dados acessados ​​permanecem nos caches compartilhados , de onde podem ser extraídos analisando os tempos de acesso.

Extração e teste de senhas em sistemas reais

Para demonstrar a gravidade da vulnerabilidade TONTOU, a equipe criou um exploit funcional em um sistema AMD executando um kernel Linux atual. O primeiro obstáculo foi contornar a defesa que randomiza a posição do sistema operacional na memória, o que eles conseguiram fazer em dez tentativas, levando cerca de nove minutos por teste.

Em seguida, demonstraram um ataque local como um usuário sem privilégios para determinar o hash da senha de root, extraindo dados com sucesso a uma taxa de 5.47 bytes por segundo com 91.97% de precisão. Em 50% dos testes (com duração média de 18 minutos), detectaram e extraíram com sucesso o conteúdo do arquivo de senhas. Embora seja uma velocidade lenta, é mais do que suficiente para comprometer criticamente um servidor.

Impacto na Intel, AMD e na correção de mitigação.

A equipe testou quatro gerações de processadores Intel e AMD, obtendo falhas de previsão em ambas as arquiteturas. Embora a técnica tenha se mostrado viável nas famílias Zen 1 a 4 da AMD , nos chips Intel o ataque contornou duas proteções diferentes , embora tenha sido observado um comportamento inconsistente entre as diferentes gerações da Intel, sugerindo que as defesas nominais são implementadas de forma diferente no hardware.

Como solução, os pesquisadores sugerem limpar o mecanismo de previsão uma segunda vez após a conclusão da interrupção. Embora essa medida pareça viável para a AMD, pode ser contraproducente para a Intel, já que o ataque depende de a interrupção deixar um estado consistente, o que poderia torná-lo mais confiável.

Os pesquisadores notificaram a AMD e a Intel no início de fevereiro e os responsáveis ​​pela manutenção do kernel do Linux em março. Como resultado, o código de bloqueio para mitigar a vulnerabilidade foi integrado ao kernel do Linux em 5 de agosto.

Por fim, se tiver interesse em saber mais, você pode encontrar os detalhes no seguinte link.


Adicionar como fonte preferencial no Google