Pesquisadores do Google: para se proteger contra o Spectre requer uma alteração na arquitetura do processador, os patches de software não ajudarão

Em janeiro de 2018, os pesquisadores do Google disponibilizaram publicamente informações sobre vulnerabilidades fundamentais de hardware na maioria dos processadores modernos, com execução especulativa de instruções. O Spectre de Vulnerabilidade (e o Meltdown adjacente) explora o mecanismo de previsão de ramificação na CPU e permite a leitura de dados através de um canal externo na forma de uma hierarquia de cache comum. Em outras palavras, qualquer aplicativo no computador pode obter acesso de leitura a locais arbitrários de memória, o que viola o isolamento de programas, provoca vazamento de dados, negação de serviço e outros problemas.

O pior de tudo é que quase todos os processadores modernos (exceto o RISC e o russo Elbrus) são vulneráveis, porque a previsão de ramificação se tornou uma parte fundamental da arquitetura das CPUs modernas , que não podem ser abandonadas sem uma perda significativa de desempenho.

De fato, os pesquisadores descobriram a vulnerabilidade em meados de 2017, eles simplesmente não informaram o público em geral sobre isso, para que os fabricantes de processadores e sistemas tivessem a oportunidade de preparar atualizações de microcódigo e software.

Portanto, imediatamente após o anúncio oficial no início de janeiro, a Intel lançou uma atualização de microcódigo para um grande número de modelos de processadores atuais e desatualizados. A atualização está disponível como pacotes para o Red Hat Enterprise Linux, SUSE Linux Enterprise Server, CentOS, Fedora, Ubuntu, Debian e Chrome OS, permitindo atualizar o firmware sem atualizar o BIOS. A atualização do microcódigo não elimina a necessidade de aplicar os patches KPTI no kernel do Linux. É verdade que as primeiras versões do Linus Torvalds chamavam de "lixo absoluto" , e a Intel pediu para parar de instalá-las e, em seguida, foi relançada.

As atualizações foram lançadas por outros fabricantes para seus produtos; as correções correspondentes foram lançadas para a maioria dos sistemas operacionais. Um patch para o Windows 10 não escapou de aventuras: a Microsoft o liberou, o lembrou e o lançou novamente.

Mas depois de todas essas aventuras, a história pareceu terminar: versões estáveis ​​dos patches foram lançadas e todos que queriam instalá-los. Parece que você pode pôr um fim nisso. Mas não. Um ano depois, em 14 de fevereiro de 2019, um grupo de pesquisadores do Google publicou um relatório com o ditado: “Spectre ficará conosco. Análise de ataques através de canais de terceiros e execução especulativa " . Os pesquisadores concluíram que é impossível fechar completamente a vulnerabilidade apenas com patches de software. Isso exigirá "processamento significativo dos processadores".

A partir do relatório, pode-se concluir que a vulnerabilidade é realmente fundamental. Os autores escrevem que todos os processadores com execução especulativa sempre serão suscetíveis a vários ataques dos canais laterais, apesar dos métodos de proteção parcial que podem ser implementados no futuro .

O relatório dizia: “Acreditamos que, com o hardware moderno, vulnerabilidades especulativas minam a confidencialidade no nível do software. Ao mesmo tempo, não há proteção abrangente de software, pois descobrimos que o código malicioso pode criar um mecanismo universal para ler toda a memória no mesmo espaço de endereço por meio de canais de terceiros. ”

A Intel afirmou que pretendia implementar algumas alterações de hardware nos processadores para proteger contra o Spectre. Mas o problema é que o Spectre não é apenas um bug. Os pesquisadores acreditam que essa é uma ampla classe de vulnerabilidades que exploram o mecanismo de previsão de ramificações. Portanto, patches simples não podem ser executados aqui.

Os pesquisadores sugeriram várias soluções em potencial, a saber:

  • desativação completa da execução especulativa;
  • precisão diminuída do temporizador;
  • mascarando ramificações (como qualquer verificação de segurança incorporada no código como ramificação pode ser contornada pela própria natureza da previsão de ramificação, os autores propõem não considerar ramificações na criação de mecanismos de segurança).

Os pesquisadores fazem uma conclusão decepcionante: “Nossos modelos, nossos modelos mentais estão errados; sacrificamos a segurança por desempenho e complexidade e não sabíamos disso. A ironia amarga agora é que a proteção requer a introdução de uma complexidade ainda maior usando ferramentas de software, a maioria das quais, como sabemos, são incompletas ... Parece que Spectre recebeu um nome muito bom porque está destinado a nos assombrar por um longo tempo. ”

Source: https://habr.com/ru/post/pt441378/


All Articles