
Outil de vérification de vulnérabilité TPM pour CVE-2018-6622. Cet outil sera présenté à Black Hat Asia 2019 et 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" est un nouvel outil de vérification de vulnérabilité pour le TPM discret et le TPM firmware (Intel PTT). La CVE-2018-6622 et une CVE inconnue sont liées à l'état de veille S3 ou à la suspension de l'Interface avancée de configuration et de gestion de l'énergie (ACPI). L'attaquant peut subvertir le TPM avec le sommeil S3, et les fonctionnalités d'attestation à distance et de scellement/déscellement utilisant les registres de configuration de la plateforme (PCR) peuvent être neutralisées. Si vous souhaitez obtenir des informations détaillées sur la CVE-2018-6622 et la CVE inconnue, veuillez lire notre article USENIX, A Bad Dream: Subverting Trusted Platform Module While You Are Sleeping et la présentation Black Hat Europe 2019 BitLeaker: Subverting BitLocker with One Vulnerability.
Napper et la CVE-2018-6622 ont été présentés lors des conférences de sécurité suivantes.
Une CVE inconnue liée à Intel Platform Trust Technology (PTT) a été présentée lors des conférences de sécurité suivantes.
Vous pouvez regarder la vidéo de démonstration ci-dessous.
Nous accueillons toujours vos contributions. Le rapport de synthèse de Napper que vous contribuez rendra le monde plus sûr.
Napper est sous licence GPL v2.
Le module de plateforme sécurisée (TPM) est un dispositif résistant aux altérations et conçu pour fournir des fonctions de sécurité basées sur le matériel ou le firmware. Une puce TPM possède un générateur de nombres aléatoires, un stockage non volatil, des modules de chiffrement/déchiffrement et des registres de configuration de la plateforme (PCR), qui peuvent être utilisés pour diverses applications de sécurité telles que BitLocker, DM-Crypt, Trusted Boot (tboot) et Open Cloud Integrity Technology (Open CIT).
Le TPM a été largement déployé dans les appareils courants pour fournir une base solide pour la construction de platesformes de confiance, en particulier dans les appareils utilisés dans les systèmes d'entreprise et gouvernementaux. Parce que le TPM est le point critique dans la plateforme de confiance, de nombreux chercheurs ont essayé de trouver des vulnérabilités dans le TPM et ont conclu qu'il est difficile de le casser sans accès physique. Cependant, ce n'est plus vrai.
Les vulnérabilités que nous avons trouvées peuvent subvertir le TPM via l'Interface avancée de configuration et de gestion de l'énergie (ACPI). L'ACPI dans les PC, ordinateurs portables et serveurs fournit six états de veille (S0-S5) pour réduire la consommation d'énergie. Lorsque le système entre dans l'état de veille, le CPU, les périphériques et la RAM sont mis hors tension. Étant donné que le système met hors tension les composants, y compris les dispositifs de sécurité, le système doit les réinitialiser lors du réveil, ce qui pourrait constituer une surface d'attaque. Nous avons trouvé des vulnérabilités sur cette surface d'attaque sans accès physique.
Pour atténuer les vulnérabilités, nous présentons également des contre-mesures et un nouvel outil, "Napper", pour vérifier les vulnérabilités du TPM. Napper est un périphérique USB amorçable basé sur Linux, et il comprend un module noyau et un logiciel de vérification des vulnérabilités. Lorsque vous démarrez un système avec Napper, il fait faire une sieste à votre système pour vérifier les vulnérabilités et vous rapporter le résultat.
Napper se compose d'un module noyau spécial et d'outils tpm2 personnalisés. Napper est basé sur Ubuntu 18.04, et nous l'avons personnalisé et adapté pour créer une image Live CD. Si vous souhaitez simplement vérifier la vulnérabilité du TPM et trouver un moyen simple pour cela, veuillez vous rendre à la section 3.1 et utiliser l'image Live CD de Napper avec votre stockage USB. Le Live CD de Napper contient non seulement un outil binaire mais aussi le code source complet de Napper. Si vous utilisez actuellement Ubuntu 18.04 et souhaitez construire Napper à partir de zéro, veuillez vous rendre à la section 3.2 et le construire.
Les images Live CD de Napper se trouvent dans la page des versions du projet Napper.
Si vous utilisez le système d'exploitation Microsoft Windows, utilisez Win32 Disk Imager et écrivez l'image Live CD de Napper sur votre stockage USB.
Si vous utilisez Linux ou Mac OS X, utilisez la commande dd ci-dessous.```
$> sudo dd if=Napper-LiveCD.iso of=/dev/sdX bs=4096 $> sync
### 3.1.3. Redémarrez votre système avec votre stockage USB et exécutez Napper
Si vous branchez votre stockage USB et modifiez l'ordre de démarrage pour démarrer avec celui-ci, vous verrez le menu de démarrage de Napper ci-dessous et pourrez lancer le Live CD de Napper en sélectionnant la première option.
<center> <img src="https://assets.kitploit.com/production/public/readmes/28076/525cb00d8f948ccc1653bd4fd08c8baf293615ad80ec52082b6c04efe7484f57.png" alt="napper_boot_menu"/> </center>