Raiz de confiança Intel x86: perda de confiança



Imagem: shutterstock

Chegou o momento em que os arquitetos, engenheiros e especialistas em segurança da Intel podem ter mais medo: foi encontrado um erro na área de memória não gravável (ROM) do Intel Converged Security and Management Engine, e esse erro lança dúvidas sobre todos os esforços da empresa para criar a raiz da confiança e a base da segurança em suas plataformas.

E o ponto aqui não é nem que os erros do firmware (firmware), que são "conectados" na memória interna da ROM ROM dos microprocessadores e chipsets Mask, não podem ser corrigidos, mas que o erro encontrado destrói a cadeia de confiança de toda a plataforma como um todo, permitindo comprometer sua base de hardware.

Os especialistas da Positive Technologies encontraram um erro de hardware no hardware Intel, bem como um erro no firmware Intel CSME, que se manifesta em um estágio muito inicial deste subsistema, na ROM de inicialização (ROM de inicialização). Sabe-se que o Intel CSME fornece autenticação inicial de um sistema baseado em chips Intel, baixando e verificando todo o restante do firmware das plataformas modernas. Por exemplo, o Intel CSME, interagindo com o microcódigo da CPU, garante a autenticidade do firmware UEFI BIOS via tecnologia BootGuard. Além disso, o Intel CSME baixa e verifica o firmware do Power Management Controller, que controla a fonte de voltagem para cada unidade de hardware nos chips Intel.

Mais importante, porém, é o Intel CSME que é responsável pela base criptográfica de tais tecnologias de proteção de hardware desenvolvidas pela Intel e usadas em todos os lugares, como DRM, fTPM e Intel Identity Protection. O firmware Intel CSME implementa um sistema de certificação remota para sistemas confiáveis ​​chamado EPID (ID de privacidade aprimorada), que permite identificar de forma exclusiva e anônima cada instância específica de um sistema de computação (computador), encontrando muitos aplicativos úteis, como proteger conteúdo digital, garantir a segurança das transações financeiras, certificação da Internet das coisas. Além disso, o firmware do Intel CSME possui um módulo de software TPM que permite usá-lo para armazenar chaves de criptografia sem um chip TPM adicional, que está longe de qualquer computador.

E a Intel tentou tornar essa raiz de confiança o mais segura possível. O sistema de segurança das plataformas Intel é projetado de tal maneira que mesmo um erro arbitrário de execução de código em qualquer um dos módulos de firmware Intel CSME não corre o risco de perder a chave raiz de segurança (também conhecida como Chipset Key), mas apenas põe em risco as funções específicas pelas quais o módulo vulnerável é responsável quando Isso permite reduzir facilmente o risco alterando as chaves de criptografia usando o mecanismo de número de versão seguro do SVN. Isso foi claramente demonstrado em 2017, quando um erro de execução arbitrária de código foi encontrado no módulo de firmware BringUP (bup), descrito na Intel SA-00086. Em seguida, a Intel simplesmente executou a regeneração de chaves aumentando o SVN e, assim, facilmente evitou o risco de comprometer as tecnologias baseadas em EPID.

Infelizmente, porém, não existem sistemas de segurança perfeitos e, como qualquer outro, a arquitetura de segurança da Intel tem seu calcanhar de Aquiles - ROM inicializável. Um erro na ROM nos estágios iniciais de execução permite realmente controlar a leitura da chave do chipset e a geração de todas as outras chaves de criptografia. Uma dessas chaves é usada para criptografar uma matriz de dados ICVB (Integrity Control Value Blob). Com essa chave, você pode falsificar o código de qualquer módulo de firmware Intel CSME - e o sistema de autenticação não poderá reconhecê-lo. Isso equivale a vazar a chave privada da assinatura digital de firmware Intel CSME, mas para esta plataforma específica.

No momento, a situação com o EPID é atenuada pelo fato de a Chipset Key estar armazenada dentro da plataforma (em memória OTP especial, One-Time Programmable Memory) em um formato criptografado e para comprometer completamente o EPID, também é necessário extrair a chave de hardware na qual o Chipset Key está armazenado, criptografado em armazenamento SKS especial (Secure Key Storage). Mas essa chave não é exclusiva da plataforma, mas é uma para toda a geração de chipsets Intel. E como um erro encontrado na ROM permite interceptar a execução do código até bloquear o mecanismo de geração de chave de hardware no SKS, e o erro na própria ROM não pode ser corrigido, acreditamos que isso é apenas uma questão de tempo - quando essa chave será extraída. E então o caos completo ocorrerá: a identificação do hardware será falsificada, o conteúdo digital será extraído, as informações criptografadas da mídia permanente serão descriptografadas.
Assim, os especialistas da Positive Technologies encontraram um erro na ROM de inicialização do Intel CSME em todos os chipsets e SoC da Intel lançados atualmente, exceto Ice Point (10ª geração de processadores). Este erro permite extrair a chave do chipset, bem como manipular parte da chave de hardware e o processo de sua geração, não permitindo, no entanto, no momento, obter diretamente seu componente de hardware (conectado ao SKS). Além disso, esse erro na ROM permite que você organize a execução arbitrária de código no nível de privilégio zero do Intel CSME.

Mais detalhadamente, descreveremos os detalhes técnicos em um white paper completo dedicado a esse erro, que planejamos publicar um pouco mais tarde. Observe que, depois que nossos especialistas entraram em contato com o Intel PSIRT com um relatório sobre esse erro, a Intel informou que o erro já era conhecido ( CVE-2019-0090) A Intel entende que é impossível corrigir um erro na ROM em equipamentos já lançados e, portanto, eles simplesmente bloqueiam todas as formas possíveis de operação. O patch para o CVE-2019-0090 corrige apenas um dos possíveis vetores de ataque - por meio do hub de sensores integrado (Integrated Sensors Hub, ISH). Acreditamos que existem potencialmente muitas maneiras de explorar essa vulnerabilidade na ROM. Alguns deles podem exigir acesso local, outros físicos. Para abrir um pouco o véu do segredo, digamos algumas palavras sobre a própria vulnerabilidade:

  1. , boot ROM: IOMMU MISA (Minute IA System Agent), SRAM ( ) Intel CSME DMA-, . , , .
  2. Intel CSME boot ROM (page directory), IOMMU. , , SRAM DMA- (DMA CSME, ) SRAM Intel CSME.
  3. Os parâmetros MISA IOMMU são redefinidos quando a redefinição é executada para o Intel CSME, que após a redefinição inicia a execução novamente a partir da ROM de inicialização.

Portanto, qualquer dispositivo de plataforma que possa executar transações de DMA na memória estática do Intel CSME e, ao mesmo tempo, reiniciar o Intel CSME (ou apenas aguardar a ativação do Intel CSME) pode modificar as tabelas de sistema das páginas do Intel CSME e, portanto, interceptar execução.

Postado por Mark Ermolov, Especialista Líder, Divisão de Pesquisa em Tecnologias de SO e Soluções de Hardware, Positive Technologies.

All Articles