Мегаобучалка Главная | О нас | Обратная связь


Об аппаратной защите BIOS и ее эффективности



2020-03-17 184 Обсуждений (0)
Об аппаратной защите BIOS и ее эффективности 0.00 из 5.00 0 оценок




Введение

 

Споры о том, насколько реально физическое разрушение тех или иных узлов компьютера и возможностей создания каналов несанкционированного доступа к информации с использованием уязвимостей чипсета в результате действия вредоносных программ, начались задолго до появления "Персональных компьютеров", видимо сразу, после того как возникли понятия "процессор" и "программа". Вместе с тем и сегодня, когда мир уже многократно переживал атаку вирусов, разрушающих содержимое ROM BIOS, встречаются люди, заявляющие о принципиальной невозможности такого сценария. Существует и противоположная крайность - описание картин дыма и огня, вырывающихся из системного блока, якобы в результате запуска таинственного фрагмента машинного кода размером несколько десятков байт.

 


Проникновение в BIOS ROM

 

Как известно, авторы вирусов начали использовать эту уязвимость еще около 10 лет назад, практически сразу после того, как в качестве носителя BIOS стали применяться микросхемы электрически перепрограммируемых ПЗУ (Flash ROM). В сложившейся ситуации, минимизация угрозы стала заботой не только авторов антивирусных программ, но и разработчиков аппаратного обеспечения, в частности, материнских плат. Отметим, что полностью исключить опасность несанкционированной модификации BIOS невозможно, так как для этого пришлось бы отказаться от "законной" возможности его обновления.

В качестве примера рассмотрим платформу на чипсете Intel 815, , использующую микросхему BIOS SST 49LF004A. Перечислим все действия программы, выполняемые при стирании сектора и записи данных в микросхему Flash ROM для такой платформы. Протокол доступа к микросхеме Flash ROM, описанный ниже, используется как программами обновления BIOS, так и вредоносными программами, цель которых - искажение или стирание содержимого микросхемы BIOS.

) Микросхема BIOS подключена к "южному мосту" чипсета посредством интерфейса LPC (Low Pin Count). Для доступа к содержимому BIOS на предмет чтения и записи, а также передачи управляющих команд и контроля текущего состояния микросхемы Flash ROM, используется 16-мегабайтный диапазон FF000000h-FFFFFFFFh в адресном пространстве памяти. Чтобы программные обращения к указанному диапазону транслировались в физические циклы чтения и записи на интерфейсе LPC, конфигурационные регистры "южного моста" чипсета должны быть установлены следующим образом.

В 16-битном регистре BIOS_CNTL (его координаты в конфигурационном пространстве Bus=0, Device=1Fh, Function=0, Register=4Eh-4Fh) бит 0 нужно установить в "1". Это снимает блокировку циклов записи и разрешает их трансляцию на интерфейс LPC.

В 8-битном регистре FWH Decode Enable 1 (его координаты в конфигурационном пространстве Bus=0, Device=1Fh, Function=0, Register=E3h) биты 7-0 нужно установить в "1". Это обеспечивает трансляцию циклов чтения и записи на интерфейс LPC для всех адресных диапазонов, используемых при взаимодействии с микросхемой BIOS.

) Микросхема SST 49LF004A, используемая в качестве носителя BIOS, имеет объем 512 Кбайт и разделена на 8 блоков по 64 Кбайт. Каждый блок имеет свой регистр защиты записи (Block Locking Register). Например, для блока 0, расположенного по адресам FFF80000h-FFF8FFFFh, адрес регистра Block Locking Register равен FFB80002h. Для разрешения стирания и записи блока, бит 0 этого регистра должен быть установлен в "0". Манипуляции с регистрами микросхемы Flash ROM, расположенными в пространстве памяти, выполняются с помощью стандартных инструкций архитектуры x86, обеспечивающих чтение и запись ячеек памяти, например MOV.

) Для запуска операции стирания блока или сектора требуется выполнить последовательность из шести циклов записи заданных байтов по заданным адресам. Использование многоцикловых последовательностей для запуска операций стирания и записи, снижает вероятность случайного искажения содержимого Flash в результате программного сбоя.

) Для запуска операции записи байта требуется выполнить последовательность из четырех циклов записи заданных байтов по заданным адресам. Отметим, что перед выполнением записи, для сектора, в который выполняется запись, необходимо выполнить стирание.


Об аппаратной защите BIOS и ее эффективности

 

Как было показано выше, для перезаписи содержимого Flash ROM, программа должна выполнить три действия: перенастроить чипсет для обеспечения доступа к микросхеме BIOS, перенастроить регистры блокировки записи, входящие в состав самой микросхемы BIOS и, наконец, передать приказ записи или стирания. На каждом из этих трех этапов действуют механизмы защиты BIOS от несанкционированной модификации. Рассмотрим подробнее эти механизмы, а также причины, по которым они в ряде случаев оказываются неэффективными. Приведенная информация поможет выработать методику, позволяющую исследовать заданную материнскую плату на предмет наличия рассматриваемой уязвимости.

) Регистр BIOS_CNTL, рассмотренный выше входит в состав "южного моста" чипсета, его бит 0 управляет блокировкой циклов записи, адресованных микросхеме BIOS. Бит 1 того же регистра (это бит BLE, BIOS Lock Enable) позволяет установить режим, при котором попытка снять защиту записи будет перехватываться BIOS, а точнее, при попытке установить бит 0 в "1" будет генерироваться прерывание SMI (System Management Interrupt) с передачей управления специальной процедуре, входящей в состав BIOS. Причем, если BIOS при старте установит такой режим перехвата, программно выключить его чипсет не позволяет, этот режим будет выключен только после аппаратного сброса (по сигналу RESET).

К сожалению, разработчики BIOS обычно не используют этот механизм, предоставляемый чипсетом. Во всех материнских платах, исследованных автором, бит BLE (бит 1 регистра BIOS_CNTL) установлен в "0", поэтому, попытки снятия защиты записи не перехватываются.

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

) Регистры защиты записи Block Locking Register, также рассмотренные выше, входят в состав микросхемы Flash ROM SST 49LF004A. Здесь также предусмотрен бит защиты записи (бит 0) и бит, установка которого в "1" позволяет запретить снятие защиты записи (бит 1). Если биты 0 и 1 установлены в "1", микросхему BIOS программно вывести из состояния защиты записи невозможно, это произойдет только при аппаратном сбросе (по сигналу RESET).

К сожалению, и этот механизм обычно не используется разработчиками BIOS, а ведь его применение могло бы существенно улучшить защищенность. Во всех платах, исследованных автором, бит 1 в регистрах защиты блоков микросхем Flash ROM установлен в "0", то есть снятие защиты записи разрешено.

) Третий уровень защиты, состоит в том, что для запуска операций стирания и перезаписи микросхемы BIOS, требуется своеобразный пароль, а именно, передача многоцикловых "ключевых" последовательностей со строго определенными адресами и данными. Так как у всех микросхем одного типа пароль одинаковый и его можно узнать из документации на микросхему, такая мера может защитить только от случайного искажения содержимого BIOS при программном сбое и записи беспорядочных данных. Вредоносная программа, прочитав идентификаторы ROM Vendor ID и ROM Device ID, может распознать тип микросхемы BIOS и сформировать требуемые ключевые последовательности в соответствии с документацией на данную микросхему.

) Большинство микросхем Flash ROM, используемых в качестве носителей BIOS, имеют специальные входы, для подачи сигналов управления защитой записи. У рассматриваемой микросхемы SST 49LF004A это сигналы WP# (Write Protect) и TBL# (Top Block Lock). Для варианта исполнения микросхемы в 32-контактном корпусе PLCC, это контакты с номерами 7 и 8 соответственно.

Сигнал WP# управляет защитой записи основного блока (первые 448 килобайт): 0=запись запрещена, 1=разрешена.

Сигнал TBL# управляет защитой записи Boot блока (старшие 64 килобайта): 0=запись запрещена, 1=разрешена.

С точки зрения использования этих сигналов, материнские платы бывают трех видов:

Первый вариант - сигналы защиты записи не используются, на линии WP# и TBL# постоянно подается уровень логической "1", разрешающий запись. Защиты нет.

Второй вариант - сигналы защиты записи формируются с помощью "перемычек" (jumpers), переключаемых пользователем. Здесь установкой и снятием защиты записи можно управлять вручную. Такая мера достаточно эффективна, так как при логическом нуле на линиях WP# и TBL#, программно исказить содержимое микросхемы BIOS невозможно. Неудобство в том, что на время выполнения операции обновления BIOS, а также при перезаписи блоков параметров, связанной с изменением конфигурации, запись требуется разрешать вручную.

Третий вариант - сигналы защиты записи формируются с помощью программно-доступного регистра, состоянием которого управляет BIOS. При этом пользователю не нужно переключать "перемычки", но защищенность будет хуже, так как в отличие от второго варианта, здесь есть возможность программного выключения защиты. Вместе с тем, это неплохой компромисс. Так как указанный программно-доступный регистр обычно реализуется специфическими ресурсами платы, "вирусописатель", располагая информацией только на чипсет и микросхему BIOS, но, не имея принципиальной электрической схемы материнской платы, не узнает о том, что и в какой регистр надо записать для снятия защиты на данной материнской плате.




2020-03-17 184 Обсуждений (0)
Об аппаратной защите BIOS и ее эффективности 0.00 из 5.00 0 оценок









Обсуждение в статье: Об аппаратной защите BIOS и ее эффективности

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...
Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение...
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (184)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)