
TPM Genie é um interposer de barramento I2C para Trusted Platform Modules discretos.
O TPM Genie foi projetado para auxiliar na pesquisa de vulnerabilidades de Módulos de Plataforma Confiável. Como um interposer de barramento serial, o TPM Genie é capaz de interceptar e modificar todo o tráfego enviado pelo canal I2C entre a máquina host e um chip TPM discreto.
Fora da pesquisa, o modelo de ameaça demonstrado pelo TPM Genie exigiria que um invasor tivesse acesso físico temporário à máquina afetada para implantar o dispositivo interposer. Tal ataque poderia ser conduzido em um cenário de "Evil Maid", por um funcionário mal-intencionado em um datacenter contendo servidores empresariais habilitados para TPM, ou por um ataque de interdição na cadeia de suprimentos no estilo daqueles encontrados no catálogo ANT da NSA de implantes de hardware.
Muitos TPMs discretos são distribuídos em uma placa filha que é conectada à placa principal através de um simples conector ou soquete. Consequentemente, o processo de implantação de um interposer é bastante direto, pois não exigiria que o invasor realizasse quaisquer ataques de modificação de circuito. O implante poderia ser instalado em apenas alguns segundos.
O TPM Genie foi extensivamente testado com o Infineon SLB9645 I2C TPM, que está em conformidade com a especificação do protocolo TPM v1.2.
Esta ferramenta foi desenvolvida principalmente para manipular pacotes de resposta TPM, a fim de desencadear bugs de análise nos drivers TPM do lado do host. Esses bugs podem ser encontrados no kernel Linux, bem como em uma variedade de bootloaders como Tboot e Tianocore EDKII. Aproveitando essas vulnerabilidades, um invasor pode ser capaz de comprometer uma máquina host após ela ter inicializado com sucesso em um estado totalmente medido e atestado.
O TPM Genie também é capaz de realizar ataques man-in-the-middle nas operações de PCR Extend, proporcionando a capacidade de minar a maioria dos propósitos declarados de um TPM: inicialização medida, atestação remota e armazenamento selado. Normalmente, a atestação ou o desbloqueio (unsealing) falhariam se um invasor modificasse qualquer componente do processo de inicialização medida. No entanto, o interposer torna possível falsificar essas medições substituindo a carga útil associada ao ordinal PCR Extend conforme é transmitida pelo barramento.
Além disso, o TPM Genie pode enfraquecer o gerador de números aleatórios por hardware do Linux. Em alguns sistemas, /dev/hwrng está vinculado ao Módulo de Plataforma Confiável, de modo que todas as leituras no dispositivo de caractere resultarão na obtenção de bytes aleatórios pelo chip TPM. Dessa forma, o interposer pode alterar sutilmente o RNG da plataforma, o que pode prejudicar as operações criptográficas no host.
Finalmente, o TPM Genie pode ser usado simplesmente para farejar o barramento e capturar segredos, como dados de sessão associados aos comandos OIAP e OSAP. E com um esforço nominal adicional de engenharia, o TPM Genie deve ser capaz de falsificar a Chave de Endosso (Endorsement Key), obter controle do AuthData e recalcular o HMAC da Sessão de Autorização. (Mais informações sobre isso no meu whitepaper. Prometo que implementarei isso em breve).