Ciência e Tecnologia

Vulnerabilidade de hardware em processadores Intel

Pesquisadores da Universidade de Maryland nos EUA e da Universidade de Tsinghua na China publicaram um artigo científico documentando um novo método de ataque de canal lateral que explora uma vulnerabilidade de hardware anteriormente desconhecida nos processadores Intel. Embora a vulnerabilidade pareça afetar os processadores mais recentes do fabricante de chips, ela é mais eficaz para atacar modelos mais antigos que também estão expostos à vulnerabilidade Meltdown. O artigo provavelmente seria de interesse puramente científico se não fosse por um aspecto: os invasores roubam informações confidenciais alterando os dados do registro da bandeira.

Em inglês, por favor

As vulnerabilidades do processador de hardware ligadas à execução especulativa de instruções têm sido objeto de muita pesquisa por mais de cinco anos. Para simplificar ao máximo, todos os ataques propostos podem ser resumidos da seguinte forma: a CPU é de alguma forma forçada a ler dados aos quais o usuário não deveria ter acesso. Imagine este cenário teórico: o programa do invasor não tem acesso à chave de criptografia usada para proteger dados confidenciais. Se instruirmos a CPU a “ler a chave de criptografia em um determinado endereço”, a instrução simplesmente não será seguida. A ajuda chega (ao invasor) na forma de execução especulativa de instruções – uma característica importante das CPUs modernas, que existe há quase três décadas: para acelerar, em vez de esperar que uma instrução termine, o processador executa a next in parallel.

Se a primeira instrução verificar os direitos de acesso a informações confidenciais, ela não deveria, em teoria, permitir a execução da instrução seguinte para ler essas informações. Mas é tarde demais: a seguinte instrução está sendo executada especulativamente. Observe que ainda não temos acesso a esses dados – mas a CPU tem. No caso de vulnerabilidades conhecidas, como o Spectre, os dados são carregados temporariamente no cache da CPU, mas não podem ser lidos assim. No entanto, pode ser lido através de canais laterais; por exemplo, executando repetidamente uma instrução – cujo tempo de processamento varia dependendo dos dados no cache. Repetir tal operação muitas (milhares de!) vezes permite que invasores recuperem dados apenas observando a rapidez ou a lentidão com que algum comando aparentemente inofensivo é executado.

Percebemos que essa descrição “simples” ainda parece complicada . O novo artigo é ainda mais desconcertante, especialmente porque os autores decidiram não perder tempo com uma descrição detalhada do ataque. O diagrama abaixo o descreve na íntegra:

Visão geral do canal lateral de temporização de execução transiente. Fonte.

Vamos tentar descobrir. EFLAGS é um registrador de sinalizador no processador Intel que rastreia o status operacional da CPU. Ele pode armazenar o resultado dos cálculos, em particular se for igual a zero (o chamado zero flag ou ZF). Em seguida, vem a mágica: imagine que um colega seu pense em um número de 1 a 10 e seja instruído a guardá-lo para si. Você continua chamando os números de 1 a 10 (procurando por quaisquer sinais que possam denunciar seu colega), mas eles não querem compartilhar a resposta correta com você e respondem a cada vez com a palavra “crisântemo”. No entanto, quando você pronuncia o número correto, eles demoram um pouco mais para dizer “crisântemo” em comparação com outras vezes.

Algo semelhante acontece neste novo ataque: realizamos inúmeros cálculos com dados sensíveis. Todos esses cálculos são feitos especulativamente. O resultado é escrito no flag ZF (igual ou diferente de zero). Não podemos saber diretamente o status desse sinalizador. Mas então executamos uma instrução JCC um tanto inútil (especificamente a instrução JZ – “jump if zero”), que roda um pouco mais devagar se adivinharmos corretamente! E é esse atraso mensurável na resposta que constitui a vulnerabilidade.

Ainda não é um problema

O aspecto mais interessante desse ataque é que ele não não funciona por si só. Para garantir que a execução especulativa das instruções necessárias seja possível, os bandidos precisam explorar mais uma vulnerabilidade. O documento que estamos discutindo usa a vulnerabilidade Meltdown, descoberta em 2018, que felizmente fornece acesso a informações que estão fora do alcance de pessoas de fora. Como resultado, dados confidenciais foram lidos com 100% de confiabilidade em todas as CPUs antigas afetadas por essa vulnerabilidade (o estudo usou Intel Core i7 de sexta e sétima geração). Embora o experimento tenha falhado em CPUs de décima geração, eles também experimentam algum atraso ao executar uma determinada instrução do conjunto JCC.

Na realidade, tipos de ataques ainda mais versáteis como Spectre, que roubam informações de o cache da CPU, tem uma aplicação bastante restrita. Mas, pelo menos no caso deles, era óbvio que algo precisava ser feito com eles: a probabilidade de um ataque avançado direcionado a dados críticos era diferente de zero. Quanto ao novo papel, estamos lidando mais com uma ideia de que, se funcionar, se aplica a processadores Intel mais antigos.

Mas a notícia em si é significativa: agora há um novo lado -canal mecanismo para extrair dados usando o registrador de status do sinalizador. Não se pode descartar que no futuro essa abordagem, combinada com alguma outra vulnerabilidade, também afetará as novas CPUs. Ou talvez tudo seja resolvido antes de vermos um novo ataque: afinal, a dependência do tempo de execução da instrução em relação aos dados é um problema bastante sério. Existe toda uma subdisciplina de criptografia que lida com a proteção de algoritmos de criptografia contra ataques de temporização.

Em qualquer caso, a pesquisa sobre as especificidades das CPUs modernas está em andamento. Felizmente, executar ataques a vulnerabilidades de hardware é tão difícil quanto entendê-los. E, embora ainda não tenhamos visto nada que possa ser aplicado em grande escala, os oficiais de segurança da informação em empresas que lidam com dados altamente confidenciais devem levar em consideração essas ameaças e, no mínimo, monitorar sua evolução.

Mostrar mais

Artigos relacionados

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Botão Voltar ao topo