2018/01/04

Meltdown e Spectre deixam em risco "todos" os computadores e smartphones


Já foram revelados os detalhes sobre a preocupante falha que afecta os CPUs Intel, mas que afinal se vem a revelar bem mais vasta, afectando igualmente CPUs AMD e ARM e que deixa vulneráveis praticamente todos os dispositivos electrónicos com CPUs fabricados nos últimos dez anos.

Para começar, não estamos perante uma única falha, mas sim duas, denominadas Meltdown e Spectre.

O Meltdown é uma falha que permite a um qualquer programa ultrapassar as barreiras que o deviam isolar do funcionamento do sistema operativo, permitindo acesso a zonas de memória que contenham informação sensível. Esta falha afecta todos os CPUs fabricados desde 1995 (com excepção dos Itanium e alguns Atom) - não parecendo afectar CPUs AMD e ARM.

O Spectre é outra falha, que permite usar uma técnica idêntica para que um programa malicioso consiga aceder a dados de outros programas. É uma vulnerabilidade mais difícil de explorar, mas também se revela mais difícil de corrigir - e tem a agravante de que, para além dos CPUs Intel, também afecta os AMD e ARM (daí a confusão de alguns dizerem que a falha só afecta uns, ou todos - estamos a falar de duas vulnerabilidades distintas).

Este ataque até permitiria que um script numa página web pudesse potencialmente aceder à memória de um gestor de passwords, e torna-se por isso preocupante (a Mozilla já fez uma actualização de emergência que, por agora, limita a precisão das funções de temporização que são necessárias para se tirar partido desta vulnerabilidade).


A origem do problema tem a ver com a "execução especulativa de código". Inicialmente, um CPU limitava-se a ler as instruções da memória e a executá-las; simples. Com o aumento do desempenho, foram-se aplicando novas técnicas, que iam fazendo o pré-carregamento das instruções seguintes, para que estivessem prontas a ser executadas. O problema deste sistema é que, quando se chega a uma instrução que implicasse uma decisão "se acontecer isto, faz aquilo, senão faz antes aquela outra coisa" temos a situação de que o CPU não sabe que caminho irá ter que percorrer. Nas primeiras implementações, o CPU tentava determinar qual seria o percurso mais provável, mas posteriormente - e tendo em conta a enorme penalização no desempenho que ocorre quando o CPU "falha" e tem que reiniciar o processo de ir buscar instruções - o CPU começou também a fazer a "execução especulativa" desse caminho alternativo. Assim, fosse para que lado fosse, o CPU estaria preparado para continuar o processamento a toda a velocidade - sendo que, ao seguir por um caminho, se limitava a descartar as instruções do caminho que não tinha seguido.

O problema é que essas instruções pré-processadas na eventualidade de serem necessárias estão a ser executadas sem o devido controlo de acesso a zonas da memória que não deveriam conseguir aceder; fazendo com que programas criados especificamente para tirarem partido disto, consigam ler praticamente qualquer zona de memória do sistema.



Tudo isto resulta numa verdadeira "tempestade perfeita", que faz com que praticamente todos os computadores das últimas décadas fique em risco - a não ser que se utilize um sistema actualizado e com as devidas correcções implementadas, assim como software que minimize o risco de abuso por parte do Spectre.

O mais assustador no meio de tudo isto é que, mesmo para aquelas pessoas mais paranóicas (como eu), que já se davam ao trabalho de criar máquinas virtuais para correr software em que pudessem não confiar completamente, para garantir que qualquer actividade indesejada não conseguisse aceder ou interferir com o sistema principal, estas falhas tornam isso irrelevante. É verdadeiramente uma dos maiores "barracadas" de sempre na informática... e suspeito que ainda vá dar bastante que falar, quando começarem a surgir ataques que se aproveitem destas vulnerabilidades nos muitos milhões de sistemas que seguramente irão permanecer vulneráveis...

4 comentários:

  1. Quando se seguiu um determinado "atalho" no passado para se atingir determinado objetivo com base num qualquer "desenrascanço", será mais do que inevitável virmos a sofrer consequências no presente ou no futuro.

    ResponderEliminar
  2. Já recebi o update para o Windows 10, até agora não notei nada de diferente na velocidade do PC.

    ResponderEliminar
  3. Boa tarde ,

    Mas a Intel já disse que a correcção deste problema irá implicar quebras de 30% de performance, já estou a prever um mega processo contra estes incautos fabricantes de cpus, quando li a noticia da venda das acções da Intel lembrei-me logo das questões legais que todos estes processos vão implicar

    ResponderEliminar
  4. Que cena, não sou especialista no assunto mas, isto não quererá dizer que os CPU's precisam de uma grande evolução mesmo de raiz? Falhas do tempo em que provavelmente a maioria do povo nem tinha PC, novos CPU's com melhorias insignificantes!

    ResponderEliminar