Некоторые предпосылки для уязвимости UEFI

Некоторые предпосылки для уязвимости UEFI

События, связанные с анализом зло­вред­но­го ПО под наз­ва­ни­ем Lo­Jax, да­ли по­вод го­во­рить о не­го­тов­нос­ти ан­ти­ви­рус­ных про­дук­тов к мак­си­маль­но бы­ст­рой ре­ак­ции на вы­зо­вы ха­ке­ров, на­прав­лен­ные на вне­дре­ние в код UEFI. В пресс-ре­ли­зе ESET, по­свя­щен­ном уяз­ви­мос­ти Lo­Jax пер­во­на­чаль­но пре­у­мень­ша­лась сте­пень уг­ро­зы: на пу­ти вре­до­нос­ных свойств ви­ру­са, яко­бы, сте­ной вста­ла фун­к­ци­о­наль­ность Se­cu­re Bo­ot. Но по­сле из­вест­но­го за­яв­ле­ния ком­па­нии Pho­e­nix Tech­no­lo­gi­es все ста­ло на свои мес­та: Se­cu­re Bo­ot — не пре­пят­ст­вие для ви­ру­са Lo­Jax.

Проанализируем два основных механизма, используемых для противодействия не санкционированному доступу к со­дер­жи­мо­му Flash ROM — программе начальных пусков персональной платформы, за которой закрепилось со­вре­мен­ное название UEFI BIOS.

Некоторые особенности защиты SPI flash

Полное описание защитных механизмов, занимающее сотни страниц технической документации, выходит за рамки ста­тьи. При­ве­дем два небольших примера, демонстрирующих разделение ответственности между разработчиками аппаратного и встроенного программного обеспечения. Рассмотрим аппаратную защиту содержимого SPI ROM, ос­но­ван­ную на при­ме­не­нии сигнала WP (Write Protect).

8-контактный корпус микросхемы SPI ROM (на примере Winbond W25Q128FV) — контакт №3 используется для аппаратной защиты записи

Как следует из описания, линия WP не блокирует запись в запоминающую матрицу микросхемы. Вместо этого, за­щи­ща­е­мым объектом является статусный регистр, содержимое которого, в свою очередь, управляет защитой со­дер­жи­мо­го ми­кро­схе­мы с дифференцированием по регионам запоминающего устройства.

Статусный регистр микросхемы SPI ROM (на примере Winbond W25Q128FV)

Практика показала, что сценарии инициализации платформы, при которых статусный регистр аппаратно защищен от модификации, но его содержимое предписывает разрешить перезапись запоминающей матрицы, не являются ред­ко­стью. Что это, банальный недосмотр или попытка упростить коммуникацию между приложением, осу­ще­ст­вля­ю­щим за­кон­ное обновление «прошивки» и UEFI платформы? Ответить на этот вопрос трудно, тем не менее, уязвимость име­ет место.

Некоторые особенности защиты PCH

Для технологий блокировки записи, которыми располагает системная логика (например, микросхемы Intel Platform Con­t­rol­ler Hub), наличие аппаратно реализованной функциональности является необходимым, но недостаточным ус­ло­ви­ем ее использования. Здесь, как и в предыдущем примере, требуется внимание со стороны разработчиков UEFI и плат­фор­мы.

Фрагмент описания регистра управления BIOS Control, входящего в состав микросхем Intel PCH: биты 0 и 1 определяют опции защиты содержимого системного ROM

Бит LE (Lock Enable) предписывает генерацию системного прерывания SMI при попытке изменения статуса за­щи­ты за­пи­си, определяемого другим битом WPD (Write Protect Disable). Важным фактором безопасности является не­воз­мож­ность про­грам­мно­го обнуления бита LE после его установки, возврат в состояние логического «0» возможен толь­ко при ап­па­рат­ном сбросе платформы.

От разработчиков стартового кода UEFI требуется установить бит LE а также подготовить процедуру обработки SMI, располагающую полномочиями System Management Mode и активируемую при попытках перезаписи firmware, а также попытках изменения ранее установленного статуса защиты записи. Если функциональность управляется средствами CMOS Setup, желательно обеспечить ее включение по умолчанию.

Увы, далеко не на всех этапах дизайна персональной платформы действует столь же высокая технологическая куль­ту­ра, как при разработке микросхем системной логики.