Intel corrige falha que permitia usar buffer do processador para invasões

Por Rafael Rodrigues da Silva | 15 de Maio de 2019 às 08h22
Tudo sobre

Intel

Saiba tudo sobre Intel

Ver mais

Nesta terça-feira (14), equipes de segurança publicaram diversas novas falhas e vulnerabilidades encontradas em processadores, todas derivados daquelas usadas nos ataques do tipo Spectre e Meltdown ocorridos no início deste ano. No total, quatro grupos de pesquisa encontram quatro novos tipos de vulnerabilidades em processadores que podem ser usados por hackers para ataques.

Todos essas vulnerabilidades são baseadas na mesma falha encontrada pela Intel e que a empresa batizou de Microarchitectural Data Sampling (MDS).

Para entender como essas falhas podem ser exploradas primeiro é importante entender que cada processador possui um comportamento de arquitetura (o modo como os programadores deverão escrever as instruções para que seus programas funcionem) e um comportamento de microarquitetura (o modo como a implementação da arquitetura age) e que eles podem ser ligeiramente diferentes entre si.

Por exemplo, a arquitetura de um processador pode instruir que cada instrução seja executada em sequência uma de cada vez e aguarde para que todos os operadores de uma instrução sejam reconhecidos antes de executá-la. Enquanto isso, a microarquitetura do equipamento pode fazer com que ele especule o resultado antes da compilação de todos os dados da instrução como forma de acelerar o processo.

Assim, caso se execute um programa que instrui o processador a carregar um certo valor de um endereço particular da memória, a nível de arquitetura o equipamento irá esperar até que esse endereço de memória seja encontrado para executar a instrução, enquanto a nível de microarquitetura o processador já irá sugerir o valor a ser carregado (normalmente baseado no cache) antes mesmo de esse local na memória ser encontrado. Caso o valor seja diferente, a tentativa de adivinhação será ignorada e o valor correto será utilizado na execução da instrução, mantendo a regra arquitetural do processador mesmo que, a nível micro, a operação executada tenha sido diferente.

O problema é que essas tentativas de “adivinhar” o valor a ser executado podem ser usados por hackers para conseguir informações sobre a máquina. Por exemplo, ao modificar os valores existentes em cache, é possível causar uma sutil diferença no tempo de execução dos processos (já que é mais rápido ler valores que já existem em cache do que os que não estão lá), diferença essa que pode ser medida por um hacker para, a partir dessa medição, conseguir informações que podem ajudá-lo a invadir uma máquina.

A falha MDS funciona de maneira bem similar, mas ao invés de vazar informações do cache, o vazamento acontece de diversos buffers existentes dentro do processador.

Dentro de cada processador, existem diversos buffers que ajudam o componente a executar os processos necessários. Por exemplo, existe o line fill buffer (LFB), que é usado para retirar informações do cache de nível 1. Esse buffer é utilizado toda vez que o processador precisa encontrar um resultado novo na memória da máquina: após encontrá-lo, o LFB é usado como um “rascunho” para o equipamento, que carrega o novo valor nesse buffer antes de gravá-lo no cache. Além do LFB, existe também um store buffer, que também é usado pelo processador para armazenar temporariamente dados retirados da memória da máquina, e os load ports, que são usados como uma “ponte” para copiar os valores de uma memória para um registro.

Então, assim como os ataques Spectre e Meltdown usavam a diferença no tempo de execução para descobrir valores do cache, os ataques MDS conseguem acessar os dados existentes nesses buffers para conseguir informações sobre a máquina que permitem a um hacker assumir o controle dela. Apesar disso, o processo leva tempo, porque, junto de informações relevantes sobre os processos do computador, esses buffers também podem revelar toneladas de dados irrelevantes para o hacker, e por isso a nomenclatura dada ao processo pela Intel possui a palavra “sampling”, pois é necessário que o processo de roubo de informação desses buffers sejam executados diversas vezes para que um hacker tenha amostras de dados o suficiente para executar uma invasão.

Isso porque não há como controlar a informação existente em cada buffer. Simplesmente não tem como definir que um buffer em específico conterá uma informação útil para o invasor, e às vezes são necessárias milhões de tentativas de roubo desses buffers para que se tenha informações suficientes para invadir uma máquina. Por esse motivo a Intel classificou essa falha como uma de risco mediano para baixo. Outro ponto interessante é que, assim como a Meltdown e Spectre, o problema é algo específico dos processadores Intel, e as arquiteturas utilizadas pelos processadores da AMD e da ARM já mostraram não ser vulneráveis a este tipo de problema.

Apesar de não ser uma das falhas mais perigosas, a Intel já confirmou que conseguiu uma solução para o problema e uma atualização de firmware liberada pela empresa nesta terça (14). Ela faz com que toda a primeira geração de processadores Coffee Lake e Whiskey Lake se tornem imunes a essa vulnerabilidade. Além disso, a fabricante já avisou que as próximas gerações do Coffee Lake, Whiskey Lake e Cascade Lake já virão de fábrica com mudanças que evitarão que esse problema possa ser explorado por hackers para invadir uma máquina.

Fonte: Ars Technica

Gostou dessa matéria?

Inscreva seu email no Canaltech para receber atualizações diárias com as últimas notícias do mundo da tecnologia.