Publicidade

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

Por  | 

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

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.

Continua após a publicidade

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.

Canaltech
O Canaltech está no WhatsApp!Entre no canal e acompanhe notícias e dicas de tecnologia
Continua após a publicidade

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.

Continua após a publicidade

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.