Intel Boot Guard

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Intel Boot Guard (Intel BG) — технология, которая обеспечивает аппаратную защиту целостности загрузки BIOS, отслеживает несанкционированные блоки загрузки и запрещает их исполнение[1].

Для поддержки технологии BG Intel выпустила модуль аутентифицированного кода (ACM, Authenticated Code Module). Подписанный цифровой подписью Intel, ACM хранится внутри флеш-памяти вместе с BIOS и другими компонентами прошивки компьютера. С помощью ACM производитель оборудования (OEM, Original Equipment Manufacturer) настраивает BG[2].

Для реализации BG OEM включает новый компонент прошивки компьютера — начальный блок загрузки (IBB, Initial Boot Block), который загружается перед BIOS. В процесс загрузки компьютера добавляется этап проверки IBB. Начальный блок загрузки отвечает за проверку целостности BIOS, инициализацию памяти и загрузку BIOS в подсистему памяти. Так же, как и ACM, начальный блок загрузки хранится внутри флеш-памяти компьютера[2].

История создания[править | править код]

В 2003 году Intel, AMD, HP, IBM и Microsoft создали Группу Доверенных Вычислений (TCG, Trusted Computing Group) — организацию, целью которой является разработка стандарта для производителей оборудования (OEM, Original Equipment Manufacturer), позволяющего обеспечить защиту системы от исполнения несанкционированного программного обеспечения. В рамках этой организации был разработан TPM (Trusted Platform Module)[3].

В 2013 году Intel выпустила микроархитектуру Haswell, одной из новшеств которой по сравнению с предыдущими поколениями является технология Boot Guard (BG), созданная в рамках TCG[1]. Технология BG также является частью архитектуры последующих поколений процессоров Intel Core[4].

Режимы работы и конфигурация[править | править код]

Технология Boot Guard (BG) поддерживает 3 режима работы:

  • Измеренная загрузка. Проверка целостности начального блока загрузки (IBB, Initial Boot Block) с использованием хеша, вычисляемого в криптопроцессоре TPM (Trusted Platform Module)[1].
  • Проверенная загрузка. Проверка целостности IBB с использованием схемы цифровой подписи[1]. В данном режиме работы не используется криптопроцессор TPM, что снижает стоимость реализации[5].
  • Измеренная и проверенная загрузка. Проверка целостности IBB с использованием хеша, вычисляемого в криптопроцессоре TPM, а также с использованием схемы цифровой подписи[2].

Конфигурации BG, устанавливаемые производителями оборудования (OEM, Original Equipment Manufacturer), варьируются в зависимости от продукта[6]. В первую очередь OEM отвечает за встраивание хеша своего публичного ключа для поддержки проверенной загрузки и настройку политик загрузки посредством системы безопасности и управления (ME, Management Engine)[2]. Политики загрузки хранятся в программируемых предохранителях. Они определяют, какой режим защиты активирован и какие действия предпринимать в случае ошибки в модуле аутентифицированного кода (ACM, Authenticated Code Module) или в IBB[6].

Измеренная загрузка[править | править код]

Механизм измеренной загрузки реализован с использованием криптопроцессора TPM (Trusted Platform Module). Хеш начального блока загрузки (IBB, Initial Boot Block) вычисляется и хранится в TPM. Программы, исполняемые на процессоре, не имеют доступа к TPM, и как следствие, к хешу IBB[7].

В ходе измеренной загрузки производится точное сравнение между текущим состоянием системы и известными эталонами компонент процесса загрузки. Измерения хранятся в TPM и доступны для локального и удаленного подтверждения. Если измерения соответствуют эталонам, то система помечается как надежная, иначе — как ненадежная и начинает следовать политикам загрузки для отступления[2][7].

Проверенная загрузка[править | править код]

Механизм проверенной загрузки предлагает альтернативный принцип работы, не полагающийся на криптопроцессор TPM (Trusted Platform Module) или другие устройства. В ходе работы проверенной загрузки этапы загрузки выстраиваются в цепочку доверия, окончательным звеном которой являются программируемые предохранители — часть аппаратуры компьютера. Такой подход к проверке системы является более надежным по сравнению с программными решениями[2].

Манифесты[править | править код]

Манифест начального блока загрузки[править | править код]

Начальный блок загрузки (IBB, Initial Boot Block) ассоциирован с манифестом (IBBM, Initial Boot Block Manifest), состоящим из следующих полей:

  1. Номер версии безопасности
  2. Хеш SHA-256 начального блока загрузки
  3. Подпись RSA (1) и (2)
  4. Открытый ключ RSA IBBM, используемый для проверки (3)

Единственным назначением 2048-битной пары ключей RSA IBBM, устанавливаемых производителем оборудования (OEM, Original Equipment Manufacturer), является подпись (1) и (2). Закрытый ключ защищен OEM, а хеш открытого ключа хранится в программируемых предохранителях[2].

Манифест ключа[править | править код]

IBBM в свою очередь ассоциирован с манифестом ключа, состоящим из следующих полей:

  1. Номер версии безопасности
  2. Хеш SHA-256 открытого ключа RSA IBBM
  3. Подпись RSA (1) и (2)
  4. Открытый ключ RSA OEM, используемый для проверки (3)

Единственным назначением 2048-битной пары ключей RSA OEM является подпись (1) и (2). Закрытый ключ защищен OEM, а хеш открытого ключа хранится в программируемых предохранителях[2].

Номер версии безопасности манифеста ключа позволяет OEM аннулировать пару ключей RSA IBBM в случае его взлома. При необходимости заменить пару ключей RSA IBBM, производитель оборудования сгенерирует новую пару ключей и поместит хеш открытого ключа в новый манифест ключа, одновременно увеличив номер версии безопасности. Номер версии безопасности IBBM покрывает начальный блок загрузки и позволяет производителю оборудования отменить и исправить его в случае уязвимости. При выпуске нового начального блока загрузки номер версии безопасности IBBM увеличивается[2].

Оба номера проверяются системой безопасности и управления (ME, Management Engine) во время проверенной загрузки. В случаях, когда номер версии загружаемого манифеста больше, чем соответствующее значение, записанное в программируемых предохранителях, то программируется определённое количество предохранителей, чтобы отразить больший номер версии. Случаи, когда номер версии меньше соответствующего значения в предохранителях, являются индикатором атаки, при которой злоумышленник имеет доступ к флеш-памяти и заменяет более позднюю версию манифеста уязвимой более старой. В таких ситуациях ME реагирует в соответствии с политиками загрузки, настраиваемыми OEM[2].

Процесс проверки[править | править код]

Проверка начального блока загрузки (IBB, Initial Boot Block) — это совместная работа модуля аутентифицированного кода (ACM, Authenticated Code Module) и системы безопасности и управления (ME, Management Engine). ACM загружает прошивку начального блока загрузки и манифесты ключа и IBB из флеш-памяти, получает от ME хеш открытого ключа RSA производителя оборудования (OEM, Original Equipment Manufacturer), политики загрузки, собственный номер версии безопасности и номера версий безопасности двух манифестов и проверяет целостность IBB c помощью хеша открытого ключа RSA OEM. При необходимости ACM оповещает ME об обновлении номеров версии безопасности и применяет политики загрузки в случае ошибки или разрыве связи с ME. ME читает хеш открытого ключа RSA OEM, политики загрузки, номера версий безопасности ACM и манифестов из программируемых предохранителей и отправляет эту информацию ACM. При необходимости ME увеличивает номера версий безопасности ACM и манифестов в программируемых предохранителях и применяет политики загрузки в случае ошибки, разрыве связи с ACM или сбое проверки[2].

Обнаруженные уязвимости[править | править код]

В 2017 году в шести материнских платах компаний Asus, Lenovo, MSI и Gigabyte были обнаружены уязвимости, позволяющие обойти защитные механизмы BIOS, в частности Boot Guard[8]. В октябре того же года Intel представила патчи, исправляющие некоторые из обнаруженных уязвимостей защитных механизмов BIOS[9].

Примечания[править | править код]

  1. 1 2 3 4 New Microarchitecture for 4th Gen Intel Core Processor Platforms : [англ.] : [арх. 29 ноября 2020].
  2. 1 2 3 4 5 6 7 8 9 10 11 Platform Embedded Security Technology Revealed : Chapter 6. Boot with integrity, or Don't Boot : [англ.] : [арх. 28 августа 2020]. — Apres, 2014. — 263 p.
  3. Brian Berger. Trusted computing group history : [англ.] // Elsevier. — 2005. — Vol. 10. — P. 59—62.
  4. Premium Performance and Powerful Possibilities with 5th Generation Intel Core Processor Platforms : [англ.] : [арх. 30 августа 2017].
  5. Intel Hardware-based Security Technologies for Intelligent Retail Devices : [англ.].
  6. 1 2 Intel Cyber-Resiliency in Chipset and BIOS : [англ.] : [арх. 1 января 2021].
  7. 1 2 Patrick Georgi. Intel Boot Guard : [англ.] : [арх. 8 ноября 2020] // 1. — 2015.
  8. Betraying the BIOS: where the guardians of the BIOS are failing : [англ.] : [арх. 29 ноября 2020].
  9. Intel NUC BIOS Security Updates : [англ.] : [арх. 12 сентября 2020].

Литература[править | править код]