Анализ возможностей создания каналов несанкционированного доступа к информации с использованием уязвимостей чипсета

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

OM (используя команду Read ID) и активировать процедуру записи, которая также должна быть своя для каждого Flash ROM. Как видим, процедура реализуема, а потому, угроза реальна.

Если это уже случилось, симптомы зависят от характера искажения. Обычно, если Video BIOS просто вытерт, либо вместо него записан блок данных, не имеющий сигнатуры Additional BIOS (два первых байта не 055h, 0AAh), либо некорректна контрольная сумма, признаки будут такие же, как при отсутствии видео адаптера - нет вывода на экран и специфический звуковой сигнал. Реакция материнской платы на отсутствие видео адаптера зависит от того, как написан BIOS материнской платы и установки опций Setup. Иногда звуковой сигнал не подается. Будет ли выполнен останов процедуры POST из-за отсутствия видео адаптера или BIOS приступит к загрузке ОС, несмотря на данную неисправность (это будет заметно по обращению к жесткому диску), также зависит от модели материнской платы. Если вы хотите заранее знать, какова будет реакция заданной материнской платы на данную неисправность видео адаптера, включите ее без видео адаптера.

 

Искажение содержимого DIMM SPD ROM

 

Детектирование объема, типа и параметров модулей оперативной памяти (DIMM) основано на использовании протокола SPD (Serial Presence Detect). На каждом модуле устанавливается микросхема Flash ROM с последовательным доступом, объемом 256 байт, используется микросхема 24C02 фирмы Atmel, или ее функциональные аналоги. BIOS на одном из этапов выполнения процедуры POST, считывает информацию из микросхем SPD и использует ее при инициализации контроллера памяти. Для доступа к SPD используется шина SMB (System Management Bus), функционирующая на базе протокола I2C, предложенного фирмой Philips, Шина SMB. Контроллер шины SMB обычно находится в составе "южного моста" чипсета. Шина SMB также используется для доступа к регистрам тактового генератора и некоторых модификаций схем аппаратного мониторинга.

В чем, собственно, угроза? Микросхема SPD, как и любой Flash ROM, поддерживает не только считывание, но и запись. Контроллер SMB позволяет выполнить эту операцию. Таким образом, существует возможность программного искажения содержимого SPD. Отметим, что работа вирусописателя здесь осложнена тем, что на программную модель контроллера SMB не существует общего стандарта и в различных чипсетах он реализован по-разному. Существует и аппаратная защита - у микросхемы 24C02 есть вход WP (Write Protect), это 7-ой контакт 8-контактного корпуса микросхемы. Подача уровня логической "1" на этот вход запрещает запись. Если разработчики DIMM подключили WP=1, а также, если вместо 24C02 применена микросхема, не поддерживающая перезапись, возможность программного изменения содержимого SPD отсутствует.

Если SPD искажено, симптомы зависят от характера искажения и от типа материнской платы. Отметим, что во времена PC66/PC100/PC133 SDRAM протокол SPD уже применялся, но большинство плат могли работать при неисправном SPD, детектируя память по-старому, путем записей и контрольных считываний по специальному алгоритму. Платы, использующие DDR/DDR2/DDR3 обычно, не стартуют при некорректном содержимом SPD, процедура POST останавливается на детектировании памяти.

Как восстановить модуль с искаженным SPD? Во-первых, нужна информация, которую будем записывать в Flash ROM, а если конкретнее - 256-байтный двоичный файл образа SPD. Как правило, производители DIMM не предоставляют подобные файлы на своих сайтах. Составить содержимое SPD самостоятельно - достаточно интересная и познавательная задача, но это потребует больших затрат времени. Простейший путь - скопировать образ SPD из аналогичного модуля DIMM, если таковой имеется. Заметим, что DIMM должен быть строго точно такой же, того же производителя и модели. Если таковой недоступен, экспериментировать с похожими модулями есть смысл если совпадает объем, количество микросхем, частотная спецификация, и, разумеется, тип памяти (SDR/DDR/DDR2/DDR3). Можно взять за основу образ SPD от похожего модуля и редактировать параметры вручную, не забывая корректировать контрольную сумму. Для чтения и записи микросхем 24C02 можно использовать соответствующий программатор или программу, выполняющую эту операцию непосредственно на материнской плате.

 

Перекрытие адресных диапазонов

 

На материнской плате есть много интерфейсов, использующих классический принцип "общей шины", например ISA и PCI. Напомним, что все адресуемые устройства на таких шинах подключены параллельно и каждому назначен свой диапазон адресов. При выполнении цикла обращения к заданному устройству, на шину выставляется его адрес. Устройство, опознавшее свой адрес, выдает (если это цикл чтения) или принимает (если это цикл записи) данные. В каждый момент времени на шине взаимодействуют два устройства - инициатор шинного цикла и исполнитель, опознавший свой адрес. Все остальные устройства отключены от шины и удерживают свои интерфейсные цепи в высокоомном состоянии. Также напомним, что стандарт Plug-and-Play, определяет механизмы, позволяющие автоматически назначать диапазоны адресов каждому устройству на шине. Для этого, каждое адресуемое устройство имеет конфигурационные регистры, от содержимого которых зависит, какой диапазон адресов присвоен данному устройству. То есть адреса программируемые.

И где же среди вышеизложенных банальностей притаилась опасность? Допустим, некоторый адрес (например, в пространстве портов ввода-вывода) назначен одновременно нескольким устройствам. Для этого достаточно некорректно запрограммировать конфигурационные регистры (ошибочно или злонамеренно). ?/p>