
Pesquisadores de três universidades europeias
revelaram os detalhes do primeiro ataque conhecido à
SGX .
O conjunto de instruções SGX (Software Guard eXtensions) permite que o aplicativo crie enclaves - áreas no espaço de endereço virtual que são protegidas contra leitura e gravação de fora desta área por outros processos, incluindo o kernel do sistema operacional. Os enclaves são isolados no nível de hardware e software: essa memória é fisicamente separada do restante da memória do processador e criptografada.
O ataque
Plundervolt (CVE-2019-11157) usa a interface do SO para controlar a tensão e a frequência do processador Intel - a mesma interface usada para fazer overclock da CPU durante o overclock. Ao alterar a voltagem da CPU, ele extrai dados do enclave em alguns minutos, incluindo chaves de criptografia.
Código de exploração de demonstração
publicado no GitHub . Processadores vulneráveis:
- Intel Core 6, 7, 8, 9 e 10 gerações
- Intel Xeon E3 v5 e v6
- Intel Xeon E-2100 e E-2200
Os pesquisadores conseguiram combinar os conceitos de dois ataques bem conhecidos:
- Rowhammer : altere o valor do bit de uma célula DRAM de 1 para 0 e vice-versa gravando dados nas células vizinhas.
- CLKSCREW Manipulação de energia do processador Dynamic Voltage and Frequency Scaling (DVFS).
Plundervolt combina os princípios subjacentes a esses dois ataques. Através do DVFS, ele altera a voltagem nas células de memória SGX, o que leva a alterações indesejadas de dados no enclave.
O trabalho é baseado na engenharia reversa anterior dos processadores Intel. Ele revelou quais registros MSR (ModelSpecific Register) são responsáveis pela mudança dinâmica na tensão da CPU após um comando do programa. Esses registros estão em todos os processadores Intel.
Esquema de registro não documentado MSR com endereço 0x150Como se viu, em processadores vulneráveis ocorre uma mudança previsível de bits. Por exemplo, no processador Core i3-7100U, com uma queda de tensão de 118 mV, a operação
0x80D36 * 0x21 = 0x109b3f6
fornece um valor previsivelmente defeituoso de
0xffffffffe109b417
a uma frequência de 2 GHz.
Outros exemplos de multiplicações com falha no Core i3-7100U a 2 GHz:
Essas pequenas alterações não violam a privacidade da SGX. Em vez disso, eles introduzem erros nas operações de processamento de dados SGX. Em outras palavras, o Plundervolt não quebra o SGX, mas altera o resultado: “A subtensão induz uma alteração nos bits nas instruções do processador, como rodadas de multiplicação ou criptografia AES (AES-NI)”, explica David Oswald, acadêmico da Universidade de Birmingham, um dos autores da pesquisa científica. trabalho “Como o SGX criptografa os dados apenas quando estão sendo lidos e gravados na memória (mas não dentro do processador), a proteção de memória do SGX não evita esses erros (pois os valores defeituosos são gravados na própria memória.”)
O Plundervolt permite que você veja mensagens criptografadas saindo do enclave SGX e depois restaure a chave secreta que foi originalmente usada para criptografar dados.


Pesquisadores demonstraram a eficácia do ataque introduzindo erros na implementação do Intel RSA-CRT e AES-NI, trabalhando no enclave SGX. Eles foram capazes de recuperar chaves criptográficas completas com pouco esforço computacional.
Código para testar o ataque (repositório no GitHub)O ataque descrito não requer um aumento radical na voltagem, portanto não ameaça a segurança física do chip. De fato, essa propriedade de Plundervolt torna um ataque ainda mais perigoso. Outra propriedade perigosa é que é muito mais rápida do que a maioria dos outros ataques aos processadores Intel, como Spectre, Meltdown, Zombieload, RIDL e outros. A tabela mostra o número de iterações até que um erro de multiplicação (
0xAE0000 * 0x18
)
0xAE0000 * 0x18
com diferentes valores de subtensão no I3-7100U a 2 GHz:
Mudar bits nas multiplicações do AES é muito rápido. Por exemplo, recuperar uma chave AES leva vários minutos, incluindo o cálculo necessário para obter a chave do texto cifrado com falha, diz Oswald.
Infelizmente para os atacantes, o ataque do Plundervolt é difícil de conduzir remotamente. Você não pode atrair um usuário para um site e executar JavaScript. A voltagem da CPU por esse método não muda. Para funcionar, o Plundervolt exige que uma vítima no computador seja root ou admin. Isso requer engenharia social e o uso de explorações adicionais.
O Plundervolt
não funciona em ambientes virtualizados , como máquinas virtuais e serviços de computação em nuvem, onde o SO convidado não tem acesso à interface que controla a tensão do processador.
No entanto, Plundervolt é um problema sério. A equipe de pesquisa notificou a Intel sobre a vulnerabilidade em junho de 2019, e o fabricante da CPU trabalha com patches desde então. As atualizações de firmware e BIOS foram lançadas em 10 de dezembro de 2019 como parte das recomendações de segurança
INTEL-SA-00289 . Depois de instalar os patches no BIOS, você pode desativar a interface para gerenciar a voltagem e a frequência do relógio.
Para uma descrição técnica do ataque, consulte o
artigo científico (pdf) , que será lançado na coleção
Anais do 41º Simpósio IEEE de Segurança e Privacidade .