Короткая заметка проверки уязвимости Intel Trusted Execution Technology
В статье использовались: Ubuntu 16.04, tBoot 1.9.6, TPM 1.2.
Сначала проверим работает-ли intel txt на Ubuntu с ядром 4.10.0-28 командой:sudo txt-stat
txt-stat показывает хорошие хеши системы. Хэши могут быть использованы злоумышленником для ответа и выполнения обычных PCRs.
Проверим динамику PCRs от TPM:
И как видим первые два символа начинаются с 8AF3, AB69, 4836.
Теперь повторим те же самые действия на 4.10.17+malicious:
А тут первые два символа начинаются с 8AF3, 0E89, 486A.
Сравним оба файла и посмотрим изменения:git diff normal_pcrs.txt malicious_pcrs.txt
Видим, что PCR-18 и PCR-19 отличаются, из-за ядра malicious.
Запускаем "Lost Pointer" для эксплуатации уязвимости tboot:
sudo insmod lostpointer/lostpointer.ko
dmesg
insmod - команда для вставки модуля в ядро;
dmesg - команда для вывода буфера сообщений ядра в стандартный поток вывода (stdout) (по умолчанию на экран).
Как видим, модуль отображает информацию о tBoot и тело шеллкода. Теперь перейдем в предыдущую ос, и проверим изменения в PCR.
Как видим, первые два символа изменились (PCR 17-19), и при сравнивании с помощью git diff получаем следующее:
Система malicious стала иметь теже PCR как и обычная система. Через редактор vi сравним оба файла:vi -o normal_pcrs.txt sleep_malicious_pcrs.txt