Outra vulnerabilidade foi identificada nos processadores AMD que permite ataques Meltdown

Uma equipe de pesquisadores da Universidade Técnica de Graz (Áustria) e do Centro Helmholtz para Segurança da Informação (CISPA) divulgou informações sobre uma vulnerabilidade (CVE-2021-26318) em todos os processadores AMD que possibilita a realização de tarefas do tipo Meltdown. ataques de canal lateral (inicialmente presumia-se que os processadores AMD não eram afetados pela vulnerabilidade Meltdown). Em termos práticos, o ataque pode ser usado para estabelecer canais de comunicação secretos, monitorar atividades no kernel ou obter informações sobre endereços na memória do kernel para contornar a proteção KASLR enquanto explora vulnerabilidades no kernel.

A AMD considera inadequado tomar medidas especiais para bloquear o problema, uma vez que a vulnerabilidade, como um ataque semelhante descoberto em agosto, é de pouca utilidade em condições reais, é limitada pelos limites atuais do espaço de endereço do processo e requer a presença de certos sequências prontas de instruções (gadgets) no kernel. Para demonstrar o ataque, os pesquisadores carregaram seu próprio módulo do kernel com um gadget adicionado artificialmente. Em condições reais, os invasores podem usar, por exemplo, vulnerabilidades que aparecem regularmente no subsistema eBPF para substituir as sequências necessárias.

Para se proteger contra esse novo tipo de ataque, a AMD recomendou o uso de técnicas de codificação seguras que ajudam a bloquear ataques Meltdown, como o uso de instruções LFENCE. Os pesquisadores que identificaram o problema recomendam ativar um isolamento mais rigoroso da tabela de páginas de memória (KPTI), que anteriormente era usado apenas para processadores Intel.

Durante o experimento, os pesquisadores conseguiram vazar informações do kernel para um processo no espaço do usuário a uma velocidade de 52 bytes por segundo, dada a presença de um gadget no kernel que realiza a operação “if (offset < data_len) tmp = LUT[dados[deslocamento] * 4096];” . Vários métodos foram propostos para recuperar informações através de canais secundários que acabam no cache durante a execução especulativa. O primeiro método baseia-se na análise de desvios no tempo de execução da instrução do processador “PREFETCH” (Prefetch+Time), e o segundo na alteração da variação do consumo de energia ao executar “PREFETCH” (Prefetch+Power).

Lembre-se que a vulnerabilidade Meltdown clássica se baseia no fato de que durante a execução especulativa de instruções, o processador pode acessar uma área privada de dados e depois descartar o resultado, uma vez que os privilégios definidos proíbem tal acesso do processo do usuário. No programa, o bloco executado especulativamente é separado do código principal por um ramo condicional, que em condições reais sempre dispara, mas devido ao fato de a instrução condicional utilizar um valor calculado que o processador não conhece durante a execução preemptiva de o código, todas as opções de ramificação são realizadas de forma especulativa.

Como as operações executadas especulativamente usam o mesmo cache que as instruções normalmente executadas, é possível durante a execução especulativa definir marcadores no cache que reflitam o conteúdo de bits individuais em uma área de memória privada e, em seguida, no código normalmente executado, determinar seu valor por meio do tempo. acessos de análise a dados armazenados em cache e não armazenados em cache.

Fonte: opennet.ru

Adicionar um comentário