Русская Википедия: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].

Примечания

Шаблон:Примечания

Литература

Шаблон:Изолированная статья


en:Intel vPro#Intel Boot Guard