banner

Блог

Jul 28, 2023

Обход Bitlocker с помощью логического анализатора

Инженер по безопасности [Гийом Кере] провел день в системах тестирования на проникновение для своего работодателя, указал и успешно использовал довольно очевидную слабость в системе полнотомного шифрования BitLocker, которая, как говорится в связанной статье, позволяет просто перехватывать трафик между дискретный чип TPM и ЦП через шину SPI. Принцип работы Bitlocker заключается в использовании закрытого ключа, хранящегося в чипе TPM, для шифрования полного ключа тома, который, в свою очередь, использовался для шифрования данных тома. Все это выполняется низкоуровневыми драйверами устройств в ядре Windows и прозрачно для пользователя.

Вся суть BitLocker заключалась в предотвращении доступа к данным на защищенном томе в случае кражи или потери физического устройства. Простое извлечение диска и установка его на незащищенный компьютер или другой адаптер не предоставит никаких данных без ключа, хранящегося в TPM. Однако, поскольку этот ключ должен передаваться в виде открытого текста от TPM к ЦП во время последовательности загрузки, [Гийом] показывает, что довольно просто — с помощью очень недорогих инструментов и бесплатного программного обеспечения — просто найти и обнаружить этот TPM-to-to. -Транзакция ЦП, декодирование потока данных и нахождение ключа. Используя немного больше, чем дешевый логический анализатор, подключенный к нескольким удобным большим контактам на ближайшем флэш-чипе (поскольку контакты SCK, MISO и MOSI используются совместно с TPM), простой TIS был декодирован достаточно, чтобы захватить байты TPM. рамка. Затем это можно было бы декодировать с помощью веб-приложения декодера потока TPM, любезно предоставленного группой сообщества программного обеспечения TPM2. Команда, которую нужно искать, — это TPM_CC.Unseal, которая представляет собой запрос от ЦП к TPM на отправку интересующего нас ключа. После этого простой захват и декодирование кадра ответа TPM немедленно покажет товар.

То, что вы делаете дальше, является вопросом удобства, но большинство специалистов по безопасности и криминалистике уже будут плотно сидеть на низкоуровневом файле образа диска целевого тома. Используя команду Linux xxd для преобразования этого 32-байтового шестнадцатеричного ключа дампа в файл двоичного ключа, модуль dislocker-fuse FUSE может создать динамически расшифровываемую виртуальную файловую систему, которую вы можете просто смонтировать. При желании вы могли бы затем записать расшифрованные данные тома на новый диск, вставить их в компьютер и загрузить операционную систему. Скорее всего, вы не сможете войти в систему, но, как отмечает [Гийом], перезаписав приложение с липкими клавишами (sethc.exe) с помощью cmd.exe, вы можете получить доступ к командной строке, просто нажав пять раз клавишу Shift. Хорошие времена!

Если вам действительно нужна поддержка TPM для более старой системы, чтобы установить Windows 11 (если это действительно необходимо), вы всегда можете создать свою собственную. Кроме того, поскольку интерфейс LPC имеется на многих материнских платах, почему бы не использовать его для подвешивания адаптера шины ISA для подключения той старой классической карты Soundblaster, которую вы не могли выбросить?

ДЕЛИТЬСЯ