Основы и защита компьютера от Trojan.Bioskit.1

iskander-k

Ассоциация VN/VIP
VIP
Сообщения
3,620
Реакции
2,140
"Вирус в BIOS-е" или "BIOS-вирус") - вирус, который располагается в микросхеме Flash/EEPROM. Т.е. принципиальным отличием его есть тот факт, что он находится в постоянной памяти компьютера и удалить его без перешивки (обновления прошивки BIOS) нельзя. В дополнение ещё и то, что и обнаружить его тоже крайне сложно вплоть до вообще невозможно. В остальном (зловредные действия) бирусы ни чем не отличаются от различных вирусных программ типа троянов.

Получив управление, бирус внедряется в BIOS (например, считав текущую прошивку и добавив в неё свой код) и перезагружает компьютер (либо пассивно ждёт, пока сам пользователь её осуществит). После очередной загрузки зловредный код становится совершенно невидим для любой работающей в операционной системе программы. Кроме того его код получает возможность одинаково работать в любой операционной системе – Windows, Linux, MAC OS и т.д.

Что может BIOS-вирус?

Он может заразить (получить управление и/или выполнить другие зловредные действия) любое приложение для любой операционной системы.
Он может быть совершенно невидим - запретив возможность своего обнаружения.
Он может быть совершенно неудаляем – запретив возможность обновления BIOS.
Он может осуществлять зловредные действия в любое время и абсолютно прозрачно (т.е. его процесс активности нельзя заметить и остановить) в процессе работы компьютера.
Он имеет доступ ко всем устройствам компьютера, обладая всеми возможностями ОС и даже больше.

Можно ли защититься от заражения бирусом?
Можно. Но сначала перечислим, что ему не помешает:

Установки любых паролей в BIOS никак не защитит от бируса.
Прошивка нового BIOS «на самом компьютере» - может не помочь избавиться от бируса. Это верно для перешивки как под DOS, так и под Windows (или другой OS).

Реально защититься от биос-вируса можно лишь на старых компьютерах, у которых есть перемычка для защиты BIOS от перешивки. Обычно это компьютеры Pentium II и старше. :)
Где доказательства, что бирусы вообще есть?
Доказательства известны и работают ещё с 2002-года, они доступны для скачивания на главной странице www.ROM.by. Называется этот биос-вирус – BIOS Patcher. Характерный классический полуавтоматический представитель - это когда процесс прошивки происходит самим пользователем. Плюс, конечно, вместо зловредных он обладает исключительно полезными свойствами. Однако это не отменяет его природу. И тот факт, что вот уже столько лет он благополучно работает даже на самых ультрасовременных системах, которых близко не было при его разработке – ещё один показательный пример потенциала биос-вирусов.

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

Если в настройках есть функция защиты от записи BIOS (BIOS protect), обязательно включите ее.


Микросхемы SPI Flash ROM, в частности микросхема SST 25VF080B, используемая в рассматриваемой платформе поддерживают сигнал защиты записи WP# (Write Protect). В отличие от одноименного сигнала микросхем LPC Flash, для SPI Flash этот сигнал не управляет непосредственно разрешением записи информации, а действует в сочетании с битами BP0-BP3 (Block Protect) и BPL (Block Protect Lock) регистра статуса. Четыре бита в регистре статуса BP0-BP3 выбирают один из 16 вариантов защиты микросхемы BIOS, среди этих вариантов – полный запрет записи по всем адресам, разрешение записи по всем адресам, а также варианты, обеспечивающие избирательную защиту блоков. Разумеется, сама по себе такая защита не эффективна, поскольку программа может изменить содержимое битов BP0-BP3 и разрешить запись. Чтобы этого не произошло, используется бит BPL и внешний сигнал защиты записи WP#. Установка бита BPL=1 делает биты BPL и BP0-BP3 недоступными для перезаписи. Данная защита действует только при наличии сигнала логического "0" на вход WP#, а при наличии логической "1" на входе WP#, биты BPL и BP0-BP3 доступны для перезаписи независимо от состояния бита BPL.

Таким образом, защитой содержимого микросхемы BIOS можно программно управлять посредством регистра статуса, а объектом аппаратной защиты, реализуемой сигналом WP#, является содержимое регистра статуса, а не записанная информация. Подробности в [5].

Для активации данного механизма защиты, BIOS при старте платформы должен записать значение битов BP0-BP3 в соответствии с требуемым режимом защиты, а также установить бит BPL=1 для предотвращения последующей модификации битов BP0-BP3 и BPL. Затем требуется обеспечить подачу логического "0" на вход WP#. Желательно, чтобы метод программного управления сигналом WP# был уникален для каждой модели материнской платы, это осложнит работу "вирусописателей".

К сожалению, и этот механизм защиты, поддерживаемый микросхемами SPI Flash, реально не используется разработчиками BIOS и материнских плат. Во всех платформах, исследованных автором, в регистре статуса Flash, бит BPL=0, то есть защита не используется и статусный регистр доступен для перезаписи.

Эта статья продолжает тему, связанную с угрозой искажения BIOS материнской платы вредоносными программами. В ранее опубликованном материале "Проникновение в BIOS ROM" N1 и N2 был приведен пример программы, выполняющей запись в микросхему BIOS, рассмотрены механизмы защиты, используемые производителями материнских плат и причины, по которым данные механизмы часто оказываются неэффективными. Напомним, что эта проблема возникла более 10 лет назад, когда в качестве носителя BIOS начали использовать микросхемы Flash ROM, допускающие перезапись содержимого без физического вмешательства в компьютер. Таким образом, возможность оперативной перезаписи (обновления) BIOS, привела к побочному эффекту – риску его случайного или преднамеренного искажения.

Казалось бы, сегодня на эту тему уже все сказано. Но время идет, появляются новые типы микросхем Flash ROM и интерфейсов для их подключения. Это сопровождается появлением новых методов защиты BIOS от несанкционированного искажения, и, конечно, новых уязвимостей. В ранее опубликованном материале, ссылка на который приведена в начале статьи, рассматриваемая тема раскрыта на примере платформы, использующей микросхему SST 49LF004A, подключенную к интерфейсу LPC (Low Pin Count). Сегодня, ему на смену пришел интерфейс SPI (Serial Peripheral Interface). Напомним, что для перезаписи содержимого микросхемы BIOS, программа должна взаимодействовать с двумя блоками регистров: регистры интерфейса Flash ROM, расположенные в составе "южного моста" чипсета и регистры, входящие в состав самой микросхемы Flash ROM. При переходе от интерфейса LPC к SPI, архитектура двух указанных блоков существенно изменилась. Поэтому есть смысл рассмотреть взаимодействие программ с микросхемой BIOS, механизмы защиты и их уязвимости применительно к современным платформам. Материал снабжен примерами на ассемблере. Для экспериментов использовалась материнская плата Gigabyte GA-965P-S3, построенная на чипсете Intel 965, описанном в [2-3]. В качестве носителя BIOS на данной плате используется микросхема SST 25VF080B, описанная в [5]. Эта микросхема имеет объем 8 Мегабит (1 Мегабайт) и подключается к интерфейсу SPI. Некоторые микросхемы других производителей, использующих тот же интерфейс, описаны в [4,6,7]. Описание интерфейса SPI приведено в [8,9]. При взаимодействии с контроллером SPI, нам потребуется использовать механизмы доступа к конфигурационному пространству, описанные в документах [10-12].
*********
Механизмы доступа к Flash ROM и защита записи

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

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

Рассмотрим подробнее эти процедуры, механизмы защиты, препятствующие их несанкционированному выполнению и, конечно, уязвимости этих механизмов.

Как было сказано выше, при выполнении операций записи и стирания, программный доступ к микросхеме SPI Flash осуществляется посредством регистров контроллера SPI, без использования диапазона адресов, в котором доступен образ микросхемы BIOS. Поэтому перенастройка чипсета для доступа к диапазону FFF00000h-FFFFFFFFh в данном примере не потребуется.

Защита записи, реализуемая "южным мостом" Intel ICH8 построена по такой же схеме, как и в платформах предыдущих поколений, отличаются только адреса регистров. Следовательно, процедура снятия этой защиты подобна процедуре рассмотренной в предыдущих публикациях. Доступом к микросхеме BIOS управляет 8-битный регистр BIOS_CNTL (его координаты в конфигурационном пространстве Bus=0, Device=1Fh, Function=0, Register=DCh). Бит 0 этого регистра (бит BIOSWE, BIOS Write Enable) управляет разрешением записи в микросхему BIOS, 0=запрещена, 1=разрешена. Бит 1 того же регистра (бит BLE, BIOS Lock Enable) обеспечивает перехват несанкционированного выключения защиты. Если бит BLE=1, то при попытке установить бит BIOSWE=1 будет генерироваться прерывание SMI (System Management Interrupt) с вызовом специальной процедуры, входящей в состав BIOS. Причем, если BIOS при старте установит бит BLE=1, программно обнулить его чипсет не позволяет, режим перехвата будет выключен только после аппаратного сброса (по сигналу RESET). Подробности в [3].

Практика показывает, что данный механизм "защиты от снятия защиты" обычно не активируется разработчиками BIOS. Во всех материнских платах, исследованных автором, бит BLE=0, поэтому для снятия защиты записи достаточно установить бит BIOSWE=1, эта операция не будет перехвачена.

Микросхема Intel ICH8 также поддерживает защиту содержимого микросхемы BIOS, путем задания адресных диапазонов, защищенных от чтения и (или) записи. Теоретически, на базе данного механизма можно реализовать эффективную защиту, так как запрет программно включается процедурами BIOS при старте платформы, и может быть снят только при аппаратном сбросе. Но и этот механизм обычно не активируется разработчиками BIOS.

Добавлено через 17 минут 11 секунд
Что такое BIOS

BIOS и CMOS RAM

Иногда пользователи путают BIOS и CMOS RAM системы. Причиной путаницы является то, что программа Setup BIOS используется для установки и хранения параметров конфигурации в CMOS RAM. Следует заметить, что это, фактически, совершенно разные компоненты. Обычно BIOS находится в отдельной микросхеме системной платы. Кроме того, на системной плате расположена так называемая микросхема RTC/NVRAM, содержащая в себе часы истинного времени и энергонезависимую память. По сути, эта микросхема представляет собой цифровой датчик времени с несколькими дополнительными байтами памяти. Обычно она называется CMOS-микросхемой, поскольку создана на основе комплементарных металло-оксидных полупроводников (complementary metal-oxide semiconductor — CMOS).

При загрузке программы BIOS Setup и последующем конфигурировании/сохранении параметров жесткого диска или других устройств, установочные параметры системы записываются в соответствующую область памяти RTC/NVRAM (или, говоря иначе, CMOS RAM). При каждой загрузке системы для определения ее конфигурации проводится считывание параметров, хранящихся в микросхеме CMOS RAM. Несмотря на существование определенной связи между базовой системой ввода-вывода (BIOS) и CMOS RAM, это абсолютно разные компоненты.
Системная BIOS

Во всех системных платах есть микросхема, в которой записано программное обеспечение, называемое BIOS или ROM BIOS. Эта микросхема содержит стартовые программы и драйверы, необходимые для запуска системы и функционирования основного аппаратного обеспечения. В ней также содержится процедура POST (самотестирование при включении питания) и данные системной конфигурации. Все эти параметры записаны в CMOS-память, которая питается от батарейки, установленной на системной плате. Эту CMOS-память часто называют NVRAM (Non-Volatile RAM).

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

POST — самотестирование при включении питания процессора, памяти, набора микросхем системной логики, видеоадаптера, контроллеров диска, дисковода, клавиатуры и других жизненно важных компонентов системы. Программа установки параметров BIOS (Setup BIOS) — конфигурирование параметров системы. Эта программа запускается при нажатии определенной клавиши (или комбинации клавиш) во время выполнения процедуры POST. В старых компьютерах на базе процессоров 286 и 386 для запуска этой программы необходима специальная дискета. Загрузчик операционной системы — подпрограмма, выполняющая поиск действующего основного загрузочного сектора на дисковых устройствах. При обнаружении сектора, соответствующего определенному минимальному критерию (его сигнатура должна заканчиваться байтами 55AAh), выполняется код начальной загрузки. Эта программа загружает загрузочный сектор операционной системы, который, в свою очередь, загружает файлы ядра операционной системы. BIOS — набор драйверов, предназначенных для взаимодействия операционной системы и аппаратного обеспечения при загрузке системы. При запуске DOS или Windows в режиме защиты от сбоев используются драйверы устройств только из BIOS.
Память EEPROM, или Flash ROM

Это более новый тип памяти ROM — электронно-стираемая программируемая постоянная память. Данные микросхемы также называются Flash ROM, и их можно перепрограммировать, не снимая с платы, на которую они установлены, без специального оборудования. Используя Flash ROM, можно стирать и перепрограммировать ROM непосредственно на системной плате, не удаляя микросхему из системы и даже не открывая системного блока! Для перепрограммирования не требуется устройство стирания ультрафиолетовым облучением или какое-либо иное программирующее устройство.

Использование Flash BIOS

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

Использование Flash ROM дает возможность загрузить новую версию BIOS из Internet или, имея ее на дискете, загрузить в микросхему Flash ROM на системной плате без удаления и замены микросхемы. Обычно эти обновления загружаются с Web-сервера изготовителя; затем используется прилагаемая программа для создания самозагружаемой дискеты с новым образом BIOS. Важно выполнить эту процедуру, воспользовавшись дискетой с программой начальной загрузки, так как никакое другое программное обеспечение или драйверы не должны мешать модификации. Этот метод обновления позволяет сэкономить время и деньги как изготовителя системы, так и конечного пользователя.

Иногда микросхема Flash ROM в системе защищена от записи; тогда, прежде чем приступить к модификации, вы должны отключить защиту. Обычно это делается с помощью переключателя, который управляет блокировкой модификации ROM. Без блокировки любая программа может перезаписывать ROM в вашей системе, а это опасно. Без защиты записи программы-вирусы могли бы записывать свои копии непосредственно в код ROM BIOS на вашем компьютере. Даже без физической защиты от записи современные BIOS в микросхемах Flash ROM имеют алгоритм защиты, который предотвращает несанкционированные модификации. Эту методику Intel использует на своих системных платах.

Запуск программы Setup BIOS

Для запуска этой программы необходимо во время загрузки системы нажать определенную клавишу или комбинацию клавиш. Ниже представлены клавиши запуска этой программы для BIOS различных производителей, которые необходимо нажимать во время выполнения процедуры POST.

AMI BIOS - "Delete". Phoenix BIOS — "F2". Award BIOS — "Delete" или комбинация клавиш "Ctrl+Alt+Esc". Microid Research BIOS — "Esc"

Если ни одна из этих клавиш не обеспечивает запуска программы Setup BIOS, посмотрите документацию к вашей системной плате или обратитесь к ее производителю.
 
Последнее редактирование:
Назад
Сверху Снизу