
Ferramenta de verificação de vulnerabilidades TPM para CVE-2018-6622. Esta ferramenta será publicada no Black Hat Asia 2019 e no Black Hat Europe 2019.
,----------------, ,---------,
,-----------------------, ," ,"|
," Napper v1.3 for TPM ," | ," ," |
+-----------------------+ | ," ," |
| .-----------------Z | | +---------+ |
| | Z | | | | -==----'| |
| | ︶ ︶ z | | | | | |
| | - | | |/----| ==== oo | |
| | | | | ,/| (((( | ,"
| `-----------------' |," .;'/ | (((( | ,"
+-----------------------+ ;; | | |,"
/_)______________(_/ //' | +---------+
___________________________/___ `,
/ oooooooooooooooo .o. oooo / \,"---------
/ ==ooooooooooooooo==.o. ooo= / ,`\--{-D) ,"
`-----------------------------' '----------"
Napper v1.3 for checking a TPM vulnerability, CVE-2018-6622 and unknown CVE
Project link: https://github.com/kkamagui/napper-for-tpm
Please contribute your summary report to the Napper project!
"Napper" é uma nova ferramenta de verificação de vulnerabilidades para o TPM discreto e o firmware TPM (Intel PTT). CVE-2018-6622 e um CVE desconhecido estão relacionados ao estado de sono S3 ou suspensão do Advanced Configuration and Power Interface (ACPI). O atacante pode subverter o TPM com o sono S3, e a atestação remota e os recursos de selar/desselar que usam os Platform Configuration Registers (PCRs) podem ser neutralizados. Se você quiser informações detalhadas sobre CVE-2018-6622 e o CVE desconhecido, leia nosso artigo da USENIX, A Bad Dream: Subverting Trusted Platform Module While You Are Sleeping e a apresentação do Black Hat Europe 2019 BitLeaker: Subverting BitLocker with One Vulnerability.
Napper e CVE-2018-6622 foram apresentados nas conferências de segurança abaixo.
Um CVE desconhecido relacionado ao Intel Platform Trust Technology (PTT) foi introduzido nas seguintes conferências de segurança.
Você pode assistir ao vídeo de demonstração abaixo.
Sempre recebemos suas contribuições. O relatório resumido do Napper que você contribuir tornará o mundo seguro.
Napper tem licença GPL v2.
Trusted Platform Module (TPM) é um dispositivo resistente a violações e projetado para fornecer funções de segurança baseadas em hardware ou firmware. Um chip TPM possui um gerador de números aleatórios, armazenamento não volátil, módulos de criptografia/descriptografia e Platform Configuration Registers (PCRs), que podem ser utilizados para várias aplicações de segurança como BitLocker, DM-Crypt, Trusted Boot (tboot) e Open Cloud Integrity Technology (Open CIT).
O TPM tem sido amplamente implantado em dispositivos comerciais para fornecer uma base sólida para a construção de plataformas confiáveis, especialmente em dispositivos usados em sistemas empresariais e governamentais. Como o TPM é o ponto crítico na plataforma confiável, muitos pesquisadores tentaram encontrar vulnerabilidades no TPM e concluíram que é difícil quebrá-lo sem acesso físico. No entanto, isso não é mais verdade.
As vulnerabilidades que encontramos podem subverter o TPM com o Advanced Configuration and Power Interface (ACPI). O ACPI em PCs, laptops e servidores fornece seis estados de suspensão (S0-S5) para reduzir o consumo de energia. Quando o sistema entra no estado de suspensão, a CPU, os dispositivos e a RAM são desligados. Como o sistema desliga os componentes, incluindo dispositivos de segurança, o sistema deve reinicializá-los ao acordar e isso pode ser a superfície de ataque. Encontramos vulnerabilidades nessa superfície de ataque sem acesso físico.
Para mitigar as vulnerabilidades, também apresentamos contramedidas e uma nova ferramenta, "Napper", para verificar as vulnerabilidades do TPM. Napper é um dispositivo USB inicializável baseado em Linux, e possui um módulo de kernel e um software de verificação de vulnerabilidades. Quando você inicializa um sistema com o Napper, ele faz seu sistema tirar uma soneca para verificar as vulnerabilidades e relatar o resultado para você.
Napper consiste em um módulo de kernel especial e ferramentas tpm2 personalizadas. O Napper é baseado no Ubuntu 18.04, e o personalizamos e adaptamos para criar uma imagem Live CD. Se você apenas deseja verificar a vulnerabilidade do TPM e encontrar uma maneira fácil para isso, vá para a Seção 3.1 e use a imagem Live CD do Napper com seu armazenamento USB. O Live CD do Napper possui não apenas uma ferramenta binária, mas também o código-fonte completo do Napper. Se você está usando Ubuntu 18.04 agora e deseja construir o Napper do zero, vá para a Seção 3.2 e construa-o.
As imagens Live CD do Napper estão na página de releases do projeto Napper.
Se você estiver usando o sistema operacional Microsoft Windows, use o Win32 Disk Imager e grave a imagem Live CD do Napper no seu armazenamento USB.
Se você estiver usando Linux ou Mac OS X, use o comando dd abaixo.```
$> sudo dd if=Napper-LiveCD.iso of=/dev/sdX bs=4096 $> sync
### 3.1.3. Reinicie o seu Sistema com o seu Armazenamento USB e Execute o Napper
Se você conectar o seu armazenamento USB e alterar a sequência de inicialização para inicializar com ele, poderá ver o menu de inicialização do Napper abaixo e iniciar o Live CD do Napper selecionando a primeira opção.
<center> <img src="https://assets.kitploit.com/production/public/readmes/28076/525cb00d8f948ccc1653bd4fd08c8baf293615ad80ec52082b6c04efe7484f57.png" alt="napper_boot_menu"/> </center>
Após a sequência de inicialização, você poderá ver o arquivo README.txt na área de trabalho e o ícone da ferramenta Napper na barra de dock esquerda. Para verificar o seu sistema, clique no ícone superior da barra de dock e digite `napper` para a senha. O `ID` e a `senha` da ferramenta Napper estão configurados como `napper`. Enquanto o Napper testa o seu sistema, ele colocará o sistema em suspensão e o acordará. Portanto, você precisa digitar no teclado para acordar o sistema do estado de suspensão ACPI S3.
<center> <img src="https://assets.kitploit.com/production/public/readmes/28076/50fdb76d396e32fe811b7f9e23849fd4b66fccee5c4325b5f8c4f167938c51b2.png" alt="napper_run"/> </center>