O que é o Hertzbleed e qual a grande novidade por trás dele?

Saiba os detalhes em um dos estudos de infosec mais complexos e fáceis de entender dos últimos tempos.

Em junho, pesquisadores de três universidades americanas publicaram um artigo descrevendo um ataque real que explora as mudanças de frequência da CPU e suas dependências da carga (comportamento padrão para CPUs modernas). A frequência da CPU é medida em hertz, daí o nome Hertzbleed (ou sangramento de Hertz, em livre tradução), sugerindo que uma mudança nessa frequência leva ao vazamento de dados.

Este método pode ser classificado como um ataque de hardware; ou seja, que explora vulnerabilidades ou outras fraquezas específicas em componentes físicos. Existem muitos ataques desse tipo, mas quase todos exigem acesso direto ao computador de destino — ou apenas a um chip específico. Mas o Hertzbleed pode operar remotamente!

O estudo é de grande interesse e, apesar de sua complexidade, pode ser resumido em termos didáticos para leigos. Mas para pelo menos uma compreensão básica de seus pontos mais sutis, é necessário um pouco de conhecimento prévio. Então decidimos fazer as duas coisas: postar uma explicação simples do Hertzbleed e outra um pouco mais aprofundada (mas ainda sem gráficos extravagantes ou cálculos abstrusos).

Seguindo a moda, o Hertzbleed tem seu próprio site e logotipo. O logotipo captura a essência básica da vulnerabilidade: alterar a frequência da CPU que leva a vazamentos. <a href="https://www.hertzbleed.com/ " target="_blank">Fonte</a>.

Seguindo a moda, o Hertzbleed tem seu próprio site e logotipo. O logotipo captura a essência básica da vulnerabilidade: alterar a frequência da CPU que leva a vazamentos. Fonte.

A explicação simples

Para economizar energia, as CPUs atuais não mantêm a mesma frequência o tempo todo. Em vez disso, a frequência (assim como a tensão da CPU) se ajusta automaticamente de acordo com sua carga. Quando as tarefas são poucas, a frequência pode ser muito baixa — por exemplo, 900MHz em vez dos 3,2GHz nominais. Se houver muitas tarefas, a frequência de um ou de todos os núcleos da CPU pode ser aumentada acima da linha de base. Na prática, a carga (o número e a complexidade das tarefas) não é o único critério para alterar a frequência. Por exemplo, pode ser reduzido se a CPU apresentar superaquecimento.

Os pesquisadores conseguiram aproveitar essa funcionalidade nativa para medir o estado da CPU quando ela estava executando um programa de criptografia de dados e, assim, roubar informações confidenciais. Eles encontraram um recurso de um algoritmo de criptografia moderno que “força” a CPU a aumentar a frequência ao processar determinados dados. À medida que a frequência aumenta, os dados são processados ​​mais rapidamente e o computador atacado responde às solicitações mais rapidamente. Ao medir o tempo de resposta, os pesquisadores conseguiram reconstruir a chave de criptografia secreta. Armados com essa chave, eles podem teoricamente interceptar e descriptografar dados trocados pelo sistema de destino, por exemplo, com outros computadores em uma rede privada virtual. E tudo isso sem qualquer chance de registrar o “roubo” da chave.

Hertzbleed desenvolve a ideia de ataques de hardware através dos chamados canais laterais. Ao mesmo tempo, introduz a possibilidade teórica de roubar dados remotamente — enviando solicitações para a vítima em potencial pela rede. Mas, por enquanto, isso continua sendo um exercício puramente teórico na busca de vulnerabilidades complexas em CPUs modernas. No entanto, é bem possível que no futuro esses ataques sejam “simplificados”.

Uma explicação um pouco mais complexa

Os ataques de canais laterais são realizados observando indiretamente a operação de um único chip ou de um computador inteiro. O método clássico de ataque de canal lateral envolve a observação de variações na corrente elétrica consumida pelo chip. Se o chip estiver ocupado criptografando dados usando uma chave secreta, por exemplo, mudanças no consumo de energia em alguns casos podem ser usadas para reconstruir a chave.

Os canais laterais podem ser baseados em software e também em hardware. O conhecido estudo Spectre usa esse canal lateral diretamente na CPU, explorando recursos de execução especulativa para roubar informações confidenciais. Além disso, às vezes não há necessidade de conectar um voltímetro ao computador para monitorar o consumo de energia da CPU, porque muitas vezes eles têm um embutido. Usando um sistema para monitorar o consumo médio de energia dos processadores Intel, um ataque relacionado ao Hertzbleed já foi desenvolvido.

Agora vamos dar uma olhada no ajuste dinâmico da frequência da CPU. Isso é possível pela técnica DVFS; na tradução da sigla, significa tensão dinâmica e escala de frequência. De fato, juntamente com a frequência, a voltagem da CPU também varia para garantir condições operacionais ideais (baixo consumo de energia em baixa carga, operação estável em capacidade máxima). Os pesquisadores descrevem com alguns detalhes como eles realizaram vários experimentos DVFS em processadores Intel (a própria Intel chama essa tecnologia de Turbo Boost). Eles sobrecarregaram a CPU com uma carga insignificante (cálculos aritméticos básicos) e observaram como a frequência mudou. Vários padrões surgiram: para simplificar ao máximo, com um determinado conjunto de dados de cálculo, a frequência da CPU tendia a aumentar – mas com outro conjunto, não. Além disso, uma frequência aumentada levou a cálculos mais rápidos e, consequentemente, a um resultado mais rápido.

Precisamos entender um terceiro termo técnico relevante para tudo isso: programação em tempo constante. Isso é importante quando se trata de implementar um algoritmo de criptografia em um programa. Suponha que temos um programa que recebe uma determinada frase como entrada e gera a mesma frase, mas criptografada. Podemos inserir dados, mas não conhecemos a chave de criptografia secreta, que, entretanto, estamos tentando estabelecer observando o tempo de execução, pois o tempo de execução da função depende dos dados de entrada. Isso é comparável a tentar arrombar um cofre trancado com um código digital secreto que reage de maneira ligeiramente diferente a sequências de números que estão quase certos, dando-nos pistas de “quente” e “frio”. A maioria dos programas que implementam algoritmos de criptografia apresenta um mecanismo de proteção para evitar tentativas de determinar a chave dessa maneira — o próprio princípio da programação em tempo constante.

O resultado mais importante do estudo da Hertzbleed é que o ajuste dinâmico da frequência da CPU quebra o princípio da programação em tempo constante – ou seja, invariância de tempo na criptografia. E os autores mostraram como tirar proveito desse fato. Eles fizeram isso pegando um sistema com software de criptografia de dados da vida real e alimentando uma sequência de caracteres, que o programa tentou descriptografar. As entradas foram escolhidas para criar condições que permitissem a um invasor reconstruir a chave de criptografia. Além disso, a chave é extraída por meio de um canal lateral — ou seja, o vazamento de dados ocorre devido a uma alteração na frequência da CPU e, consequentemente, no tempo de execução do programa e no tempo de resposta à solicitação do invasor.

As consequências

Em nossa “explicação um pouco mais complicada” do Hertzbleed, abordamos aproximadamente… 0,05% das informações reais apresentadas pelos pesquisadores. Existem inúmeras outras nuances também relevantes para entender seu funcionamento. Em particular, eles utilizaram um recurso do algoritmo de encapsulamento de chave SIKE para criar condições para possibilitar o vazamento através do tempo de resposta ou mudança de frequência. Isso é semelhante ao ataque Spectre mencionado acima, que exige que condições especiais sejam criadas no software atacado para permitir o roubo de dados importantes. A rigor, com base nos resultados do estudo, é impossível dizer inequivocamente onde está a vulnerabilidade: na CPU ou no programa.

E precisamos mencionar um aspecto gritante da implementação: embora os pesquisadores tenham demonstrado um ataque real, prático (não teórico), eles o realizaram sob condições controladas. A variação do tempo de resposta conforme as entradas foi sempre constante. Mas e se a CPU estiver executando outras tarefas simultaneamente que também afetam o tempo de resposta e tornam os dados mais ruidosos? Por fim, mesmo em tais circunstâncias ideais, a reconstrução da chave de criptografia (em dois experimentos diferentes) levou 36 e 89 horas! Durante esse tempo, milhares de solicitações por segundo foram enviadas ao programa de criptografia, que era a única maneira de garantir que todos os recursos necessários de operação de software e hardware estivessem alinhados para produzir o vazamento. Isso é muito tempo!

Portanto, a reação ao estudo foi ambígua. Por um lado, as vulnerabilidades receberam os identificadores usuais: CVE-2022-23823 para Intel e CVE-2022-24436 para AMD. Parece que o problema está, afinal, nas CPUs. Mas a Intel e a AMD relataram que não têm planos de lançar atualizações para os sistemas afetados (para Intel, as CPUs da 8ª à 11ª geração). De fato, a mudança no algoritmo SIKE tornou impossível o ataque demonstrado. A Microsoft e a Cloudflare, que usam o SIKE como um dos elementos em seus sistemas de criptografia, atualizaram seus próprios softwares.

No entanto, o estudo é de grande importância. Como foi o caso do Spectre em 2018, não será o último desta nova classe de ataques. Se um exemplo de vazamento de dados por meio do ajuste dinâmico da frequência da CPU puder ser mostrado, outros certamente se seguirão. É também um importante corpo de trabalho para criptógrafos. O SIKE é um algoritmo bastante recente, candidato ao título de “solução de criptografia pós-quântica”. Na verdade, ele foi analisado quanto à robustez contra qualquer ataque de canal lateral e provou ser bastante resiliente. Mas o estudo da Hertzbleed mostrou que surgiram novos caminhos.

Em suma, como costuma acontecer com esses estudos, esse ataque foi “descoberto”, mas não pôde ser implementado – de forma completa e com sucesso – de verdade. Os desenvolvedores de CPUs e programas que são particularmente sensíveis a hackers tirarão suas próprias conclusões e farão alterações antes que seja possível roubar qualquer coisa. Mas há uma pequena chance de que, da próxima vez, esses ou outros pesquisadores encontrem algo que permita aos invasores, digamos, interceptar o tráfego de rede criptografado ou quebrar a criptografia enquanto permanecem anônimos. Com um pouco de imaginação é possível inflar o esquema descrito neste estudo para tais proporções. Mas isso ainda precisa ser comprovado, e o estudo Hertzbleed (e o problema que tivemos para descrevê-lo em termos simples) mostra que essa não é uma tarefa fácil. Para vulnerabilidades da classe Spectre, nenhum avanço foi demonstrado em mais de quatro anos. Aqui, também, as coisas provavelmente continuarão as mesmas: em mais ou menos um ano, outro relatório será divulgado que avança um pouco e esclarece o anterior. E isso é um ponto positivo. Afinal, já temos problemas suficientes com segurança da informação!

Dicas