Короткая заметка проверки уязвимости Intel Trusted Execution Technology
В статье использовались: Ubuntu 16.04, tBoot 1.9.6, TPM 1.2.
Сначала проверим работает-ли intel txt на Ubuntu с ядром 4.10.0-28 командой:sudo txt-stat
![как видим, mle успешно запущен, и секретный флаг установлен верно как видим, mle успешно запущен, и секретный флаг установлен верно](https://habrastorage.org/getpro/habr/upload_files/53e/24b/e77/53e24be772e2135e1a0724ffdc36270d.png)
![](https://habrastorage.org/getpro/habr/upload_files/643/b30/4db/643b304db0cf5237da0f6b06b3629ad6.png)
txt-stat показывает хорошие хеши системы. Хэши могут быть использованы злоумышленником для ответа и выполнения обычных PCRs.
Проверим динамику PCRs от TPM:
![](https://habrastorage.org/getpro/habr/upload_files/f80/a69/83b/f80a6983b7e35075f448a0a75332edd0.png)
И как видим первые два символа начинаются с 8AF3, AB69, 4836.
Теперь повторим те же самые действия на 4.10.17+malicious:
![](https://habrastorage.org/getpro/habr/upload_files/143/84b/328/14384b328add0e99d4344efd31bafea2.png)
А тут первые два символа начинаются с 8AF3, 0E89, 486A.
Сравним оба файла и посмотрим изменения:git diff normal_pcrs.txt malicious_pcrs.txt
![](https://habrastorage.org/getpro/habr/upload_files/b89/a65/c99/b89a65c99da8860647a32f7fabd06293.png)
Видим, что PCR-18 и PCR-19 отличаются, из-за ядра malicious.
Запускаем "Lost Pointer" для эксплуатации уязвимости tboot:
sudo insmod lostpointer/lostpointer.ko
dmesg
insmod - команда для вставки модуля в ядро;
dmesg - команда для вывода буфера сообщений ядра в стандартный поток вывода (stdout) (по умолчанию на экран).
![](https://habrastorage.org/getpro/habr/upload_files/527/6c5/03b/5276c503b7159e2d0bbdb3e019cab3ca.png)
Как видим, модуль отображает информацию о tBoot и тело шеллкода. Теперь перейдем в предыдущую ос, и проверим изменения в PCR.
![](https://habrastorage.org/getpro/habr/upload_files/73b/d62/3cf/73bd623cf29c3c20eca69ec6dfd6d1b2.png)
Как видим, первые два символа изменились (PCR 17-19), и при сравнивании с помощью git diff получаем следующее:
![](https://habrastorage.org/getpro/habr/upload_files/7f5/f96/de2/7f5f96de220e3e7e3f134288fb9a35ba.png)
Система malicious стала иметь теже PCR как и обычная система. Через редактор vi сравним оба файла:vi -o normal_pcrs.txt sleep_malicious_pcrs.txt
![](https://habrastorage.org/getpro/habr/upload_files/aba/1bc/ebe/aba1bcebea5aa2143beda4ae03663fac.png)