O que são as vulnerabilidades Meltdown e Spectre?

Existem dois ataques (chamados de Meltdown e Spectre) causados por bug que atinge em todos os computadores, smartphones e celulares do planeta. Baseado na forma como a imprensa está descrevendo, parece que é o fim do mundo digital: uma vulnerabilidade que permite com que qualquer hacker acesse senhas, dados confidenciais e informações criptografadas. E o pior, não existe solução imediata!

Vamos colocar um pouco de racionalidade nessa discussão: não existe nenhum ataque ainda detectado que use essa vulnerabilidade e, entendendo como ela funciona, fica fácil de perceber que ela provavelmente não vai causar problemas reais para ninguém.

Entendendo a vulnerabilidade

Primeiro, precisamos entender a raiz do problema. Um dos maiores gargalos dos processadores é descobrir o que fazer. Os comandos precisam vir da memória, é essa comunicação (processador-memória) é uma avenida super congestionada. Se a instrução não chega, o processador fica sem fazer nada.

Então nas horas vagas, quando o processador está esperando chegar as próximas instruções, ele tenta adivinhar qual a próxima instrução. É como um restaurante de fast-food na hora do almoço: mesmo se não tiver nenhum pedido, a regra é colocar hambúrgueres na chapa, porque daqui a pouco com certeza vão ser necessários.

O problema é que esse processo de adivinhação não é controlado por nenhum mecanismo de segurança (deveria ser, mas não é).

Imagina o seguinte: e se o processador decidir, incorretamente, que a próxima tarefa é ler uma área de memória que tenha uma senha importante? Então se eu sou um harcker que sei como funciona esse mecanismo de "premonição", talvez consiga convencer o processador a executar essas instruções e trazer para meu programa, mesmo que eu não tenha privilégio. O sistema operacional nunca deixaria eu acessar essa informação, o resto do processador normalmente não deixaria também, mas essa "maracutaia" que inventaram para acelerar performance, não se preocupa com isso.

Então - em teoria - é possível convencer o processador de que ele deve dar ao programa do hacker um pedaço de informação que, de outra forma, não teria acesso.

Isso significa que qualquer programa ou app, por mais simples que seja, pode ser escrito de maneira maliciosa para acessar informações que, de outra forma, estariam protegidas.

Entendendo porque ela não é tão perigosa

Ok, lendo até agora dá impressão que estamos perto do fim do mundo digital. Mas não é bem assim.

Em primeiro lugar, não existe nenhum lugar na memória do computador marcado "SENHA IMPORTANTE" ou "INFORMAÇÃO CONFIDENCIAL". Memória é memória, e pode guardar qualquer coisa: uma imagem, uma instrução de um jogo online, uma página web, etc, etc, etc. São gigabytes e mais gigabytes, sendo que apenas um pequena parte **pode** ter conter algo confidencial.

Assim um atacante atrás de uma informação confidencial teria primeiro que saber se essa informação está na memória, depois tentar saber onde ela está, depois tentar convencer o processador a trazer essa informação para ele, iludindo o esse processador com uma série de instruções que convença ele a prever que as próximas são aquelas que tragam essa informação. UFA! Duvido que James Bond consiga...

Em resumo, é algo possível, porém muito, muito, muito, muito improvável de ser feito. Se eu fosse um grande banco fazendo transações de bilhões de dólares ou uma agência de segurança governamental (CIA, FBI, FSS, MI6, FIS, etc) eu poderia me preocupar porque apesar de ser pouquíssimo provável, não é impossível. Mas eu, sendo um humano normal, dificilmente vou ser afetado. É muito mais provável eu morrer atropelado em uma sexta-feira 13, dia de lua cheia, por uma Ferrari, dirigida por um piloto de Formula 1 que se distraiu ao ver um avião caindo por ter sido atingido por um asteroide. 

Entendendo porque ela é difícil de corrigir

É um bug no processador. Praticamente hoje todos os processadores, sejam em servidores, notebooks, desktops, smartphones, tablets e até mesmo smartwatches e televisores tem esse recurso de tentar prever instruções e assim tem potencialmente essa vulnerabilidade.

Existe uma grande discussão entre quais fabricantes de processadores são afetáveis ou não: Intel, AMD, ARM, etc. A AMD dizendo que a arquitetura dela garante que não existe muito risco (mas não diz que o risco é zero), a Intel alega que o problema é igual para todo mundo. Todo mundo tentando não ficar feio na foto!

Mas é um problema de HW, nunca será resolvido via atualização de firmware. Na verdade, é um problema no projeto do processador, então enquanto não sairem novos modelos de processadores, esse problema provavelmente vai continuar. Não é fácil mudar um processador, porque criar uma máquina que fabrica um processador é algo demorado, e qualquer mudança no processador significa mudar totalmente essa máquina, físicamente.

Os fabricantes de sistema operacionais estão trabalhando para criar mecanismos de proteção, porém isso terá um forte impacto na performance dos equipamentos (servidores, smartphones, etc)

Então, porque tanto escândalo por causa dessas vulnerabilidades?

Provavelmente é uma mistura: um pouco de desenformação e um pouco porque repórter gosta de fazer escândalo. Quanto mais melodramático o título da matéria, mas visualizações...




Comentários