Duas das vulnerabilidades mais divulgadas na década de 2010 estavam intimamente relacionadas entre si. Em vez de serem vulnerabilidades de segurança em software, Spectre e Meltdown são vulnerabilidades no design fundamental de CPUs tornando o problema mais difícil de resolver. Os próprios problemas são particularmente graves, permitindo a divulgação da memória de outros aplicativos e do sistema operacional.
Visão geral
CPUs usam designs incrivelmente avançados para atingir o mais alto desempenho, incluindo técnicas, incluindo execução especulativa e previsão de ramificação. A execução especulativa é onde a CPU começa a executar um processo antes de saber se precisa, na tentativa de economizar tempo quando determina que precisa. A previsão de ramificação é um subconjunto de execução especulativa que tenta prever o resultado de um processo e, em seguida, começa a computar a próxima etapa com base nesse valor previsto, permitindo que a CPU execute uma série de instruções a partir de pedido.
A vulnerabilidade do Spectre vem da implementação desses dois recursos. Ele permite que um aplicativo viole as técnicas de isolamento de memória embutidas na maioria dos softwares modernos, permitindo a divulgação de memória, incluindo segredos como senhas e chaves de criptografia. Um dos problemas com o Spectre é que os dados podem ser acessados a partir de aplicativos que não têm vulnerabilidades de segurança, pois apenas um programa malicioso é necessário.
A vulnerabilidade Meltdown é baseada em algumas técnicas de memória, bem como no sistema de execução especulativa mencionado acima. Ele utiliza uma “condição de corrida” entre a execução do processo e a verificação de privilégios e permite que um programa malicioso acesse a memória de outros aplicativos e do sistema operacional.
Dica: Uma "condição de corrida" é um problema em que uma tarefa deve depender de outra, mas a ordem de execução correta não é aplicada. Isso pode resultar na execução do “segundo” processo primeiro e no uso de memória não inicializada que deveria conter o resultado do “primeiro” processo, vazando o conteúdo anterior dessa memória. Neste caso específico, o processo não deve ser executado até que uma verificação de permissões tenha verificado que é permitido, mas a verificação de permissão pode acontecer em segundo lugar devido a otimizações de desempenho.
Efeitos
Em meados de 2017, várias equipes descobriram e relataram de forma independente Meltdown e Spectre em particular para fabricantes de CPU que desenvolveram patches. Devido aos patches visando otimizações de desempenho, eles acabaram reduzindo o desempenho das CPUs em até 30% nos piores cenários, com uma redução de desempenho de 2 a 14% sendo mais representativa das pessoas experiências.
As vulnerabilidades afetaram muitas CPUs x86, CPUs IBM POWER e algumas CPUs baseadas em ARM. O colapso afeta o hardware normalmente encontrado em computadores pessoais e também em servidores em nuvem. Spectre afeta computadores pessoais, servidores em nuvem e dispositivos móveis. Todas as CPUs da Intel de 1995 a meados de 2018 eram vulneráveis aos problemas (com a exclusão das linhas Itanium e Atom antes de 2013). As CPUs da AMD não foram afetadas pelo Meltdown, mas eram vulneráveis ao Spectre.
Os patches de mitigação de software foram desenvolvidos e lançados por meio de fornecedores de sistema operacional que resolvem a maioria dos problemas. Desde meados de 2018, a Intel atualizou seu design de CPU para incluir atenuações de hardware para os problemas.
Ambos os problemas podem ser explorados por meio de páginas da web maliciosas com JavaScript elaborado, por isso é realmente importante certifique-se de que os patches de segurança estão instalados em todos os sistemas, mesmo que a perda de desempenho seja forte. Infelizmente, os problemas não podem ser corrigidos com um único patch, pois são problemas extremamente complexos com profundas integração com o hardware, os patches de segurança continuarão a ser implementados ao longo do tempo, à medida que as novas variantes forem descoberto.