Meltdown e Spectre - tudo o que precisa saber

A falha "genética" dos processadores vai afetar o mundo do IT por muito tempo. Saiba como mitigar o problema e quais os riscos envolvidos

Meltdown e Spectre - tudo o que precisa saber

Existem mais de quatro mil milhões de dispositivos no mundo e a maioria padecem de um erro fundamental de nascença: estão todos vulneráveis a ciberataques, e o mundo não o soube até ao passado dia 3 de janeiro.

Sumariamente, a arquitetura da maioria dos processadores permite o acesso indevido à memória do kernel (o núcleo de qualquer sistema operativo) e consequentemente o acesso a toda a informação processada, seja no seu  smartphone, no PC ou num data center.

Todos estes dispositivos padecem do mesmo defeito na origem da arquitetura dos processadores de alta-performance.

 

Um pouco de contexto

Em 1995 a internet estava a experienciar um boom; o PC chegava a quase todas as casas do mundo desenvolvido. Foram anos de glória para a indústria. Para oferecer maior velocidade de processamento aos consumidores e empresas,  já não chegava simplesmente esperar que a lei de Moore trabalhasse. 

A resposta da Intel chegou com o mítico processador Pentium Pro que introduziu nos PCs a Execução Especulativa.

Para quem não sabe o que é a Execução Especulativa, uma analogia possível é aquela relação que temos com um empregado de café que nos conhece bem demais – ainda não terminamos de dizer o que queremos e já temos o pedido habitual sobre o balcão. 

Assim, a Execução Especulativa aumenta a velocidade de processamento ao operar múltiplas instruções de uma só vez, possivelmente numa ordem diferente daquela que entrou no CPU. 

Para o fazer, prevê qual o caminho mais provável que a instrução vai tomar, executando-a mesmo antes que ela acabe de entrar no processador, e fá-lo de uma forma "especulativa". Se a instrução não levar esse caminho, o processador faz roll back e executa novamente a instrução sem que isso afete a aplicação.

É esta a razão da vulnerabilidade agora descoberta: esta capacidade preditiva dos processadores x86 e de todos os inspirados na mesma arquitetura, sejam AMD ou ARM, abre o acesso ao data cache do processador destinado ao kernel, e a partir daí é possível monitorizar todas as cadeias de pedidos ao processador.

 

A descoberta

Esta vulnerabilidade permaneceu 22 anos adormecida; desconhecida por todos, incluindo os fabricantes. Um grupo de investigadores do Zero Project da Google (na maioria investigadores universitários), fez aquilo para que são patrocionados – encontrar vulnerabilidades de segurança desconhecidas ou Zero-Day Attacks – e descobriram no núcleo fundamental da computação o data cache timing do processador x86, e de todos as arquiteturas posteriores de todos os fabricantes que usem a Execução Especulativa.

Os investigadores analisaram inicialmente processadores para servidores como o Intel Xeon E5-1650 v3, o processador da AMD de alto desempenho para desktop PC FX(tm)-8320 Eight-Core, o AMD PRO A8-9600 R7 para laptop, e o ARM Cortex A57 para mobile e que é usado inclusive pelos próprios smartphones Nexus da Google. 

Todos registaram vulnerabilidades (embora com nuances e de forma mais grave com a Intel) em dois grupos diferentes de problemas, a que chamaram de Spectre variante 1 e 2 e Meltdown variante 3.

(papers científicos aqui: Spectre, Meltdown)

 

O Spectre 

O Spectre quebra o isolamento entre diferentes aplicações. Permite que um invasor engane programas, mesmo os que seguem as melhores práticas.

Na verdade, as verificações de segurança das referidas melhores práticas aumentam  a superfície de ataque e podem tornar as aplicações mais suscetíveis ao Spectre.

Esta vulnerabilidade é difícil de explorar a partir das aplicações instaladas – pode ser explorada através de um código nativo desenhado para o efeito, mas existe uma forma mais simples de um atacante entrar no processador: usando JavaScript, que é uma linguagem quase sempre presente nos websites.

Para além de violar os limites de isolamento da memória de processamento usando o código nativo, o Spectre também podem ser usado para violar o sandboxing do navegador, montando-os através do código JavaScript "móvel".

 

O Meltdown

O Meltdown quebra o isolamento mais fundamental entre as aplicações do user e o sistema operativo.

A segurança baseia-se fundamentalmente no isolamento da memória. Por exemplo, os intervalos de endereços do kernel são marcados como não acessíveis e estão protegidos do acesso do utilizador.

Este ataque permite que um programa aceda à memória e, assim, à informação de outros programas e do sistema operativo. O Meltdown explora os efeitos colaterais da execução fora de ordem nos processadores modernos para ler locais arbitrários de memória do núcleo, incluindo dados pessoais e senhas.

 

Um segredo (quase) bem guardado

Não é claro o momento em que os investigadores encontraram esta falha fundamental de segurança, mas alguns PDF de papers científicos do grupo referem acontecimentos com data de 2016.

O certo é que a Intel foi avisada, e por sua vez (em data também não determinada) comunicou aos fabricantes de sistema operativos, que reuniram equipas gigantescas de programadores para reescrever o kernel de modo a criar um isolamento.

No caso do Linux sabe-se que o trabalho foi iniciado no final de setembro passado, no sentido de separar a memória do kernel dos processos do utilizador (Kernel Page Table Isolation). A Apple, a Microsoft, e claro que a própria Google, estão a trabalhar para mitigar o problema, e os primeiros patches estão disponíveis.

Se a ideia era manter total segredo até ter uma solução para o problema de modo a que os cibercriminosos não tirassem vantagem da vulnerabilidade, então falhou já perto do final desta gigantesca taskforce, porque alguém informou o site inglês The Register do que estava a acontecer.
Dia 3 de manhã a notícia explodiu, e todos ficámos a saber do segredo tão bem guardado ao longo de tanto tempo e por tantas pessoas. 

A partir de dia 3 é uma corrida, entre os fabricantes que tentam lançar as defesas e os hackers que desenvolverão código para explorar o problema.

 

Mitigando o problema

É preciso ser claro: este problema vai atormentar a comunidade de IT durante muito tempo.

Novos processadores terão arquiteturas acompanhadas de orientações claras sobre as propriedades de segurança do processador. A segurança do software depende fundamentalmente de haver uma clara compreensão conjunta entre as equipas de desenvolvimento do hardware e do software quanto às informações que o CPU pode ou não expor ao software no processo de cálculo.

Até lá, temos de viver com o parque instalado de processadores, e o menos mau deste problema é que as vulnerabilidades podem violar o isolamento dos dados, mas não os podem comprometer. 

 

Spectre 

O problema do Spectre, que permite que uma app possa vigiar outra durante a execução, não tem por enquanto uma solução de fundo – mas também dos dois tipos de ameaças é a menos provável.

Aqui, todas as atenções se voltam para o motor de JavaScript nos browsers. Apple, Microsoft, Google e Mozilla – todos já lançaram na passada semana novas versões (Explorer e Edge Mozilla Chrome) dos seus navegadores, prevenindo que JavaScript malicioso possa ser lido em websites.

Mas como diz a própria Mozilla Project, este é um processo que exige tempo, pelo que novas versões devem agora sair regularmente num processo de aperfeiçoamento.

Até lá, e dependendo dos browsers, há opções para ou desligar o motor de JavaScript ou instalar extensões no browser para o mesmo efeito. Muitos sites vão ficar "estranhos” ou inavegáveis, mas o positivo é que possivelmente deixará de ver publicidade. 

 

Meltdown 

A técnica de isolamento Kernel Page Table usada em Linux parece mitigar fortemente o problema. A questão é que existe uma enorme quantidade de processadores no ativo, o que conjugado com os 7 principais sistemas operativos dá uma imensidão de trabalho a fazer por parte dos fabricantes.

No Linux 4.15, no Windows 17035 (RS4) lançado na passada semana, e no Mac OSX 10.13.2 lançado no final de dezembro, foram implementadas técnicas de isolamento do kernel, e é agora absolutamente mandatório aos responsáveis pelos sistemas fazerem estas primeiras atualizações, sendo certo que virão outras mais eficientes.

Isto é especialmente importante no caso de processadores Intel, embora os vários tipos de processadores não se comportem de forma igual perante a ameaça. Nos testes realizados pelo Zero Project, processadores Skylake e Haswell tinham diferentes respostas ao ataques, sendo o Skylake mais vulnerável.

A AMD só tem razão em parte quando diz que está menos exposta. Os seus processadores Ryzen têm o que afirma ser "rede neural de inteligência artificial que aprende a prever o futuro caminho que uma aplicação irá tomar com base em chamadas passadas” – o que resulta num pesadelo, porque atualmente não há como saber se uma construção de código específico é ou não segura.

 

Velocidade de processamento comprometida?

A questão mais falada nos últimos dias é se as novas versões dos kernel vão tornar o processamento até 30% mais lento, como referiam as notícias iniciais.

A Intel desmente, e diz que os efeitos são marginais para uma utilização típica de um processador. Este artigo está a ser escrito com recurso a um Intel Core i7 com o Mac OS 10.13.2 (já corrigido para o Meltdown), e para o utilizador está tudo igual em termos de velocidade, incluindo apps pesadas como as da Adobe.

 

Mas o que acontece no data center ?

A Red Hat fez um exaustivo benchmark a cargas de trabalho em Linux, e tudo depende da intensidade com que é usado o kernel:

 

  • 8 a 19% de atraso para memória aleatória altamente armazenada em cache I/0 como nos workloads OLTP (Online Transaction Processing) 
  • 3 a 7% de atraso em utilizações como database analytics ou DSS (Decision Support System)
  • 2 a 5% de atraso em HPC (High Performance Computing) onde as cargas de trabalho intensivas em CPU são menos afetadas, porque os trabalhos são executados principalmente no espaço do utilizador
  • Menos de 2% de atraso para aplicações pouco utilizadoras do kernel ou onde existe um bypass a este, como as técnicas aceleradoras do Linux ( DPDK e OpenOnload)

 

Tags

NOTÍCIAS RELACIONADAS

RECOMENDADO PELOS LEITORES

REVISTA DIGITAL

IT INSIGHT Nº 48 Março 2024

IT INSIGHT Nº 48 Março 2024

NEWSLETTER

Receba todas as novidades na sua caixa de correio!

O nosso website usa cookies para garantir uma melhor experiência de utilização.