Предлагаю окунуться в дебри компьютерной микроархитектуры и понять, как работает одна из самых распространенных технологий обеспечения целостности загрузки аппаратного BIOS — Intel Boot Guard. В статье выделены предпосылки появления технологии, перечислены все режимы работы, а также описан алгоритм работы каждого из них.
Перво-наперво.
История и предпосылки создания
Процесс загрузки компьютера представляет собой цепочку событий, в которой управление исполнительным оборудованием передается от звена к звену, начиная с нажатия пользователем кнопки питания и заканчивая работой приложения.Проблема в том, что каждая из этих ссылок может быть взломана злоумышленником.
При этом чем раньше компонент подвергается атаке, тем большую свободу действий получает нарушитель.
Известны случаи атак, при которых злоумышленник подменял BIOS или загрузчик на свои, уязвимые и фактически превращал компьютер в «кирпич» (поэтому данный тип атаки называется Bricking).
Многие программные инструменты проверки целостности были созданы в попытке защитить процесс загрузки компьютера.
Однако любая программа может быть успешно заменена нарушителем, поэтому полагаться на нее на все сто процентов нельзя.
Следовательно, необходимо создать более надежную аппаратную технологию обеспечения целостности загрузки.
В качестве варианта обеспечения аппаратной защиты при загрузке компьютера Intel в 2013 году интегрировала технологию Boot Guard в новую микроархитектуру Haswell. В процесс загрузки был добавлен аппаратный модуль кода аутентификации (ACM), и производителям оборудования пришлось расширить BIOS, включив в него начальный загрузочный блок (IBB).
С тех пор в цепочку загрузки компьютера входит ACM, с помощью которого проверяется IBB, после чего управление передается в BIOS и так далее.
Схема процесса загрузки компьютера с помощью Intel Boot Guard
Режимы работы
Важным компонентом технологии Boot Guard является настройка ее работы.Производитель оборудования должен выбрать, какой режим работы включить и какие действия предпринять в случае ошибки в ACM или IBB. Вся эта информация содержится в политиках загрузки, встроенных в оборудование.
Режимы работы Boot Guard можно классифицировать по корню доверия:
- Мерный ботинок опирается на дополнительное устройство, встроенное производителем оборудования.
Одним из возможных вариантов устройства является TPM (Trusted Platform Module) — криптопроцессор, в котором предустановлены генератор случайных чисел, генератор ключей RSA, хэш-устройство и устройство RSA.
- Проверенная загрузка полагается на программируемые предохранители, которые являются частью аппаратного обеспечения компьютера.
По своей сути программируемый предохранитель представляет собой элемент, который может находиться в двух состояниях: сгоревший или не сгоревший.
После сгорания клетка не может вернуться в исходное состояние.
Таким образом информация может быть закодирована.
Измеренная нагрузка
В памяти криптопроцессора TPM хранится стандарт хеш-функции начального загрузочного блока (IBB), который используется для проверки подлинности IBB. Алгоритм работы Boot Guard в режиме мерной нагрузки следующий:- Начальный загрузочный блок записывается в память криптопроцессора TPM.
- Устройство хеширования криптопроцессора загружает IBB, хранящийся в памяти.
- Устройство хеширования вычисляет хеш IBB
- Хэш IBB записывается в память криптопроцессора.
- Проводится сравнение текущего хэша IBB и его эталонного значения.
- При наличии совпадения система помечается как надежная, в противном случае – как ненадежная.
TPM, когда Boot Guard работает в режиме дозированной нагрузки
Подтвержденная загрузка
Принцип работы Boot Guard в режиме дозированной загрузки несколько сложнее, поскольку помимо начального загрузочного блока (IBB) и программируемых фьюзов он включает в себя две дополнительные структуры: манифест IBB (IBBM) и манифест ключа.Манифест IBB включает номер версии безопасности, хэш IBB, открытый ключ RSA, подпись RSA номера версии и хеш IBB. Манифест ключа включает номер версии безопасности, хэш открытого ключа RSA манифеста IBB, открытый ключ RSA производителя оборудования, подпись RSA номера версии и хэш открытого ключа RSA манифеста IBB. Программируемые предохранители записывают хэш открытого ключа RSA производителя и указывают номера версий безопасности.
Все расчеты и сравнения выполняются с использованием модуля аутентифицированного кода (ACM).
Алгоритм работы Boot Guard в проверенном режиме загрузки следующий:
- В ACM загружается хэш открытого ключа RSA производителя и номера версий безопасности манифестов из программируемых предохранителей.
- Проверяются номера версий безопасности манифестов.
Если хотя бы одно из чисел меньше, то проверка завершается в соответствии с политиками загрузки.
Если хотя бы одно из чисел больше, соответствующее значение будет обновлено в программируемых предохранителях в конце теста.
- Хэш открытого ключа RSA производителя рассчитывается и сравнивается с соответствующим значением из программируемых предохранителей.
При наличии несоответствия проверка завершается согласно политикам загрузки.
- Подпись RSA в манифесте ключа проверена.
При наличии несоответствия проверка завершается согласно политикам загрузки.
- Хэш открытого ключа RSA манифеста IBB рассчитывается и сравнивается с соответствующим значением из манифеста ключа.
При наличии несоответствия проверка завершается согласно политикам загрузки.
- Подпись RSA в манифесте IBB проверена.
При наличии несоответствия проверка завершается согласно политикам загрузки.
- Хэш IBB рассчитывается и сравнивается с соответствующим значением из IBMM. При наличии несоответствия проверка завершается согласно политикам загрузки.
- При необходимости номера версий манифеста безопасности обновляются в программируемых фьюзах путем сжигания дополнительных фьюзов.
- Исходный блок нагрузки успешно проверяется и на него передается управление.
Как работает Boot Guard в проверенном режиме загрузки
Заключение
В заключение хотелось бы добавить, что несмотря на всю красоту и надежность Boot Guard, важно понимать, что настройка этой технологии доверена производителю оборудования.В 2017 году было обнаружено шесть моделей материнских плат, в которых Boot Guard был настроен неправильно и позволял обойти проверку целостности BIOS. Берегите свои компьютеры и выбирайте надежного производителя оборудования! При написании статьи использовалась следующая литература:
- Руан Х.
– стр.
263 – ISBN 978-1-4302-6572-6
-
Пользователи Устали От Социальных Сетей
19 Oct, 24