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 patrocinados – 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.
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 usados 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.
Conheça as soluções de segurança ArtVision em www.areareservada.artvision.pt/seguranca
Fonte: IT Insight