Uma equipe de pesquisadores anunciaram a Descoberta outra vulnerabilidade Meltdown que afeta os chips da AMD que poderia permitir ataques.
Recentemente, uma equipe de pesquisadores da University of Technology em Graz (Áustria) e do Helmholtz Center for Information Security (CISPA) divulgou informações sobre uma vulnerabilidade (CVE-2021-26318) em todos os processadores AMD que poderia permitir ataques de canal lateral da classe Meltdown.
Descoberta outra vulnerabilidade Meltdown que afeta os chips da AMD
Sim. Foi descoberta outra vulnerabilidade Meltdown que afeta os chips da AMD. Mas diante das informações divulgadas, o pessoal da AMD anunciou que considera inadequado tomar medidas especiais para bloquear o problema, uma vez que a vulnerabilidade, como um ataque semelhante detectado em agosto, é de pouca utilidade em condições reais, pois menciona que é limitada por os limites atuais do espaço de endereço do processo e requer sequências de instruções (gadgets) no kernel.
Para demonstrar o ataque, os pesquisadores carregaram seu próprio módulo de kernel com um dispositivo adicionado artificialmente. Na vida real, os invasores podem, por exemplo, usar regularmente vulnerabilidades no subsistema EBPF para substituir as sequências necessárias.
De um ponto de vista prático, o ataque pode ser usado para organizar canais de transmissão de dados secretos, monitorar a atividade no kernel ou obter informações sobre endereços na memória do kernel para evitar proteção baseada na randomização de endereços (KASLR) no processo de exploração de vulnerabilidades em o kernel.
“Descobrimos variações de tempo e poder da instrução de pré-busca que podem ser observadas em um espaço de usuário não privilegiado. Ao contrário do trabalho anterior sobre ataques de pré-busca na Intel, mostramos que a instrução de pré-busca na AMD filtra ainda mais informações. Demonstramos a importância deste canal lateral com vários estudos de caso em cenários do mundo real. Demonstramos a primeira divisão da microarquitetura KASLR.”
Para se defender contra esse novo ataque, a AMD recomendou o uso de técnicas de criptografia seguras para ajudar a bloquear ataques Meltdown, como o uso de instruções LFENCE.
Os pesquisadores que identificaram o problema recomendam ativar o isolamento mais rígido da tabela de páginas de memória (KPTI), que antes era usado apenas para processadores Intel.
Durante o experimento, os pesquisadores conseguiram filtrar informações do kernel para um processo no espaço do usuário a uma taxa de 52 bytes por segundo, se houver um dispositivo no kernel que execute a operação, vários métodos foram propostos para extrair através de canais informações de terceiros armazenadas em cache durante a execução especulativa.
O primeiro método baseia-se na análise dos desvios do tempo de execução pela instrução do processador e o segundo na mudança na variação do consumo de energia quando “PREFETCH” (Prefetch + Power) é executado.
“Monitoramos a atividade do kernel, por exemplo, se o áudio é reproduzido via Bluetooth, e estabelecemos um canal secreto. Por fim, até filtramos a memória do kernel a 52,85 B/s com dispositivos Spectre simples no kernel do Linux. Mostramos que o isolamento mais forte da tabela de páginas deve ser habilitado em CPUs AMD por padrão para mitigar nossos ataques enviados com sucesso.”
Lembremos que a clássica vulnerabilidade Meltdown se baseia no fato de que durante a execução especulativa de instruções o processador pode acessar uma área de dados privada e depois descartar o resultado, uma vez que os privilégios estabelecidos proíbem tal acesso do processo do usuário.
No programa, o bloco executado especulativamente é separado do código principal por uma ramificação condicional, que em condições reais é sempre disparada, mas devido ao fato de que a declaração condicional usa um valor calculado que o processador não conhece durante a execução inicial do código, a execução especulativa de todas as opções de ramificação é realizada.
Uma vez que as operações especulativas usam o mesmo cache que as instruções executadas normalmente, é possível durante a execução especulativa armazenar marcadores em cache que refletem o conteúdo de bits individuais em uma área de memória fechada e, em seguida, em código executado normalmente para determinar seu valor por meio de acessos de análise de tempo armazenados em cache e dados não armazenados em cache.
Por fim, caso tenha interesse em saber mais sobre o assunto, consulte os detalhes no seguinte endereço.