Quatro anos se passaram desde a primeira publicação da pesquisa sobre Spectre e Meltdown, vulnerabilidades de hardware em processadores modernos. Desde então, os pesquisadores descobriram várias falhas semelhantes, que podem ser potencialmente utilizadas para vazar dados confidenciais. Eles também mostraram exemplos de ataques usando essas vulnerabilidades, embora a maioria deles seja improvável de ser usada em uso ativo. Neste post, analisamos o estado atual dessas questões de hardware e seu potencial uso para atacar empresas.
Variantes de Spectre
O anúncio original de agosto de 2018 revelou três vulnerabilidades: Spectre v1 e v2 e Meltdown. Eles têm vários recursos em comum:
- Sua exploração geralmente envolve a execução de código malicioso em um sistema vulnerável, embora com poucos privilégios. A opção mais perigosa é um ataque por meio de um navegador ao visitar uma página da Web “infectada”.
- A exploração prática requer uma série de condições, em particular, o código do aplicativo atacado deve permitir o vazamento de dados, ter um dispositivo cujo acesso torna o ataque possível.
- A violação de dados em si ocorre por canais secundários. Portanto, a taxa de filtragem é extremamente baixa.
- Um ataque bem-sucedido pode não deixar nenhum vestígio de acesso não autorizado aos dados.
Este último argumento é precisamente o que tem despertado interesse especial neste trabalho científico aparentemente teórico. Em todos os casos, os pesquisadores têm explorado o sistema de predição de filiais. Este mecanismo foi introduzido há mais de 20 anos e permite acelerar o desempenho executando um conjunto de instruções mesmo antes de um pedido explícito de ativação do programa. Se a previsão estiver correta, os recursos do processador serão usados de forma mais eficiente. Se estiver incorreta, os cálculos simplesmente são descartados.
Uma prova de conceito no Spectre v1 mostrou que o processador lerá dados aos quais o programa deve ser inacessível. Ele é armazenado em cache e pode ser recuperado de canais laterais. Esse mecanismo foi considerado seguro, uma vez que a leitura errada desse “segredo” não foi transmitida ao programa. Mas os pesquisadores encontraram maneiras de ler indiretamente esses dados.
Após a publicação do trabalho em Spectre e Meltdown, outras vulnerabilidades semelhantes foram descobertas. Os pesquisadores continuam procurando novos métodos para extrair dados secretos explorando vulnerabilidades do processador. Esta tabela Intel lista mais de 20 desses problemas, além dos três originais.
Como lutar contra Spectre
Teoricamente, existem três maneiras de tornar a vulnerabilidade de um processador menos explorável: os fornecedores podem emitir uma atualização de microcódigo para processadores existentes, modificar novas CPUs ou tentar resolver o problema através de atualizações de software. Uma combinação de firmware e atualizações de software é frequentemente necessária para a mitigação de problemas reais. O novo microcódigo que cobre algumas das vulnerabilidades está disponível para processadores Intel desde a geração Haswell de 2013. As soluções de hardware foram implementadas pela primeira vez na oitava geração de processadores Intel, bem como nas CPUs Zen 2 da AMD.
As soluções de software podem ser bastante complicadas: como exemplo, você pode dar uma olhada nas possíveis modificações no kernel Linux contra Spectre v1 e v2. Uma ampla gama de medidas foram discutidas, dependendo das metas e objetivos de um determinado sistema, incluindo a completa desativação da execução de código especulativo com sérias consequências para o desempenho da CPU.
Para a maioria das organizações cujo modelo de negócio depende do desempenho de uma grande frota de servidores, a queda no desempenho será o impacto mais notável das medidas contra a Spectre. Um benchmark relativamente recente no site phoronix, que examina o desempenho de vários aplicativos de servidor, mostra uma redução de desempenho de uma média de 25% quando todas as precauções contra spectre são habilitadas no sistema operacional Linux.
Ataques práticos e provas de conceito
Apesar do grande número de ataques, a ameaça de roubo de dados com Spectre permanece teórica. Embora cada investigação contenha algum código que prove o vazamento, isso não significa que ele possa ser usado contra um sistema real. Limitações típicas dessas demonstrações ou provas de conceito são as seguintes:
- Eles demonstram uma violação aleatória de dados. Pode não ter valor prático, é apenas informações aleatórias que o invasor não teve acesso anteriormente.
- Os pesquisadores criam as condições ideais para o ataque. Por exemplo, eles têm acesso ilimitado ao sistema. Neste caso, não é necessário usar métodos complexos para exfiltração de dados.
- Isso demonstra uma violação real de dados, mas sob condições muito improváveis.
O trabalho teórico mais impressionante (no que diz respeito às consequências possíveis) é o ataque netspectre. Os pesquisadores conseguiram demonstrar exploração remota com exfiltração de dados a uma taxa de 15 a 60 bits por hora. As limitações do ataque são claras: baixa velocidade de transmissão de dados, dados roubados contêm uma grande quantidade de tráfego de lixo, além disso, o código deve ser deixado vulnerável no servidor atacado e deve agir “no lugar certo” para alcançar o sucesso.
No ano passado, houve dois ataques práticos, o mais próximo possível das condições ativas. Em março, o Google mostrou um conceito de leaky.page: uma página web que pode extrair dados da RAM. Em setembro, um ataque .js Spook foi demonstrado na versão mais recente (no momento da pesquisa) do Google Chrome (92) com proteção Spectre (isolamento de páginas da Web em processos isolados do navegador). Esse método permitiu o roubo de dados reais: os pesquisadores acessaram as credenciais de uma rede social, os dados do gerenciador de senhas e uma imagem carregada por um usuário em uma nuvem privada. Mas em todos esses casos, o sucesso da operação exigiu ter uma página “infectada” localizada no mesmo domínio. Por exemplo, roubar uma senha do Tumblr envolve carregar um código Javascript malicioso em outra página na mesma rede social.
Então, que perigos essa ameaça representa?
Spook.js foi neutralizado com um patch de software para o navegador Google Chrome. Portanto, neste momento, não há ameaça imediata de exploração das vulnerabilidades de Spectre em condições reais. Todos os ataques conhecidos são extremamente complexos e exigem as melhores habilidades por parte do cibercriminoso.
As provas mais realistas do conceito já foram corrigidas e, mesmo sem patches, sua exploração requer um grande conjunto de condições. Embora os relatórios de mídia sobre as “os exploits de Spectre” reais não tenham sido confirmados, os fornecedores de segurança adicionaram ferramentas para detectar ataques conhecidos apenas no caso, então as chances são de que os mecanismos de detecção de malware existentes possam ajudar a proteger seus negócios.
No entanto, não devemos ignorar completamente o Spectre: é importante que a investigação continue. Há uma pequena chance de que, com o tempo, o “pior cenário” seja descoberto: um ataque que não requer a instalação de malware e que permite que os dados sejam roubados sem deixar rastros.
Em teoria, um ataque direcionado pode ser realizado usando vulnerabilidades de hardware se o valor dos dados roubados o justificar. A proteção contra tais riscos requer investimentos significativos para identificar potenciais vetores de ataque: seguir as recomendações dos desenvolvedores de sistemas operacionais ou implementar proteção, mesmo ao custo de uma grande queda no desempenho. Mas para a maioria, talvez com exceção as grandes empresas, basta contar com desenvolvedores de software e sistemas operacionais, fabricantes de processadores e soluções de segurança.