
TPM vulnerability checking tool for CVE-2018-6622. This tool will be published at Black Hat Asia 2019 and 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» — это новый инструмент проверки уязвимостей для дискретного TPM и встроенного TPM (Intel PTT). CVE-2018-6622 и неизвестная CVE связаны с состоянием сна S3 или приостановкой Advanced Configuration and Power Interface (ACPI). Злоумышленник может обойти TPM с помощью сна S3, и функции удалённой аттестации и запечатывания/распечатывания, использующие Platform Configuration Registers (PCR), могут быть нейтрализованы. Если вы хотите получить подробную информацию о CVE-2018-6622 и неизвестной CVE, пожалуйста, прочитайте нашу статью USENIX, A Bad Dream: Subverting Trusted Platform Module While You Are Sleeping и презентацию Black Hat Europe 2019 BitLeaker: Subverting BitLocker with One Vulnerability.
Napper и CVE-2018-6622 были представлены на конференциях по безопасности ниже.
Неизвестная CVE, связанная с Intel Platform Trust Technology (PTT), была представлена на конференциях по безопасности ниже.
Вы можете посмотреть демонстрационное видео ниже.
Мы всегда приветствуем ваш вклад. Сводный отчёт Napper, который вы предоставите, сделает мир безопаснее.
Napper имеет лицензию GPL v2.
Trusted Platform Module (TPM) — это защищённое от взлома устройство, предназначенное для предоставления аппаратных или программно-прошивочных функций безопасности. Чип TPM имеет генератор случайных чисел, энергонезависимую память, модули шифрования/дешифрования и Platform Configuration Registers (PCR), которые могут использоваться для различных приложений безопасности, таких как BitLocker, DM-Crypt, Trusted Boot (tboot) и Open Cloud Integrity Technology (Open CIT).
TPM широко развёрнут в массовых устройствах, чтобы обеспечить надёжную основу для построения доверенных платформ, особенно в устройствах, используемых в корпоративных и государственных системах. Поскольку TPM является критической точкой доверенной платформы, многие исследователи пытались найти уязвимости в TPM и пришли к выводу, что его трудно взломать без физического доступа. Однако это уже не так.
Найденные нами уязвимости позволяют обойти TPM с помощью Advanced Configuration and Power Interface (ACPI). ACPI в ПК, ноутбуках и серверах предоставляет шесть состояний сна (S0-S5) для снижения энергопотребления. Когда система переходит в состояние сна, процессор, устройства и оперативная память отключаются. Поскольку система отключает компоненты, включая устройства безопасности, при пробуждении она должна повторно инициализировать их, и это может стать поверхностью атаки. Мы нашли уязвимости на этой поверхности атаки без физического доступа.
Чтобы смягчить эти уязвимости, мы также представляем контрмеры и новый инструмент «Napper» для проверки уязвимостей TPM. Napper — это загрузочное USB-устройство на основе Linux, которое содержит модуль ядра и программное обеспечение для проверки уязвимостей. Когда вы загружаете систему с Napper, он заставляет вашу систему вздремнуть, чтобы проверить уязвимости и сообщить вам результат.
Napper состоит из специального модуля ядра и настроенных инструментов tpm2. Napper основан на Ubuntu 18.04, и мы настроили и адаптировали его для создания образа Live CD. Если вы просто хотите проверить уязвимость TPM и ищете простой способ, перейдите к разделу 3.1 и используйте образ Napper Live CD с вашим USB-накопителем. Napper Live CD содержит не только бинарный инструмент, но и полный исходный код Napper. Если вы сейчас используете Ubuntu 18.04 и хотите собрать Napper с нуля, перейдите к разделу 3.2 и соберите его.
Образы Napper Live CD находятся на странице релизов проекта Napper.
Если вы используете операционную систему Microsoft Windows, воспользуйтесь Win32 Disk Imager и запишите образ Napper Live CD на ваш USB-накопитель.
Если вы используете Linux или Mac OS X, используйте команду dd ниже.```
$> sudo dd if=Napper-LiveCD.iso of=/dev/sdX bs=4096 $> sync
### 3.1.3. Перезагрузите систему с USB-накопителем и запустите Napper
Если вы подключите USB-накопитель и измените порядок загрузки, чтобы загрузиться с него, вы увидите меню загрузки Napper ниже и сможете запустить Napper Live CD, выбрав первый пункт.
<center> <img src="https://assets.kitploit.com/production/public/readmes/28076/525cb00d8f948ccc1653bd4fd08c8baf293615ad80ec52082b6c04efe7484f57.png" alt="napper_boot_menu"/> </center>
После загрузки вы увидите файл README.txt на рабочем столе и значок инструмента Napper на левой панели док-станции. Чтобы проверить свою систему, нажмите верхний значок док-станции и введите `napper` в качестве пароля. `ID` и `password` инструмента Napper установлены как `napper`. Пока Napper тестирует вашу систему, она будет переходить в спящий режим и пробуждаться. Поэтому вам нужно нажать клавишу на клавиатуре, чтобы разбудить систему из состояния сна ACPI S3.
<center> <img src="https://assets.kitploit.com/production/public/readmes/28076/50fdb76d396e32fe811b7f9e23849fd4b66fccee5c4325b5f8c4f167938c51b2.png" alt="napper_run"/> </center>