2018-1-07

SEGURANÇA

Tudo o que precisa saber sobre o Meltdown e o Spectre

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

Tudo o que precisa saber sobre o Meltdown e o Spectre

O Meltdown e o Spectre vieram para ficar.

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)

 

ARTIGOS RELACIONADOS

Processadores vulneráveis - Nem a Apple escapa
HARDWARE

Processadores vulneráveis - Nem a Apple escapa

LER MAIS

Intel - A falha não é só nossa
SEGURANÇA

Intel - A falha não é só nossa

LER MAIS

Recomendado pelos leitores

Experiência do utilizador é fundamental na implementação de SASE
SEGURANÇA

Experiência do utilizador é fundamental na implementação de SASE

LER MAIS

Microsoft lança ferramenta de red team para IA generativa
SEGURANÇA

Microsoft lança ferramenta de red team para IA generativa

LER MAIS

Empresas portuguesas já utilizam soluções de cibersegurança com IA
SEGURANÇA

Empresas portuguesas já utilizam soluções de cibersegurança com IA

LER MAIS

IT CHANNEL Nº 105 MARÇO 2024

IT CHANNEL Nº 105 MARÇO 2024

VER EDIÇÕES ANTERIORES

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