Защита от записи bios
Собственно, в самом BIOS такой настройки нет.
Как я понимаю, любой вирус может записать туда дерьмо и комп. включаться не будет. Собственно, так и произошло у жены, пришлось тратить время + $35 на ремонт. Причем вирус то еще может быть на диске, по этому сразу лучше переустановку Windows сделать?
Почему не сделали защиту?
Здравствуйте, Shmj, Вы писали:S>Почему не сделали защиту?
По-моему, делали раньше защиту какую-то. Типа резервной копии БИОСа.
А еще галочки какие-то были, запрещающие перезапись.
Или я фантазирую?
Здравствуйте, Mihas, Вы писали:
M>По-моему, делали раньше защиту какую-то. Типа резервной копии БИОСа.
Не знаю, у жены и батарейку на минуту доставал и на кнопку сброса 10 секунд жал несколько раз -- ничего не помогло.
Ремонтники сказали что выпаяли микросхему и перепрошили.
M>А еще галочки какие-то были, запрещающие перезапись.
Зависит от редакции. Вот у меня сейчас посмотрел в ноутбуке -- нету никакой защиты.
Здравствуйте, Shmj, Вы писали:
S>Собственно, в самом BIOS такой настройки нет.
S>Как я понимаю, любой вирус может записать туда дерьмо и комп. включаться не будет. Собственно, так и произошло у жены, пришлось тратить время + $35 на ремонт. Причем вирус то еще может быть на диске, по этому сразу лучше переустановку Windows сделать?
S>Почему не сделали защиту?
Стандартная фича и интеловских чипсетов, и AMDʼшных — на старте системы защиты нет, но перед загрузкой ОС ставится флажок в чипсете, который запрещает запись в BIOS, и этот флаг можно снять только выключением питания или аппаратным ресетом.
После этого "любой вирус" уже не проходит. Если этот флаг ставится — защита достаточна.
Видимо, авторы твоего лаптопа просто потеряли эту установку.
Здравствуйте, netch80, Вы писали:
N>Видимо, авторы твоего лаптопа просто потеряли эту установку.
А как же тогда перепрошить биос?
Здравствуйте, Shmj, Вы писали:
S>Здравствуйте, netch80, Вы писали:
N>>Видимо, авторы твоего лаптопа просто потеряли эту установку.
S>А как же тогда перепрошить биос?
Ну вирус же как-то прошил, по твоим словам? Значит, в BIOS нет включения защиты перед стартом ОС.
Здравствуйте, netch80, Вы писали:
N>Ну вирус же как-то прошил, по твоим словам? Значит, в BIOS нет включения защиты перед стартом ОС.
Вот когда вы скачиваете прошивку для BIOS с сайта производителя -- как вы ее устанавливаете? В Windows режиме?
У меня в Windows режиме через спец. прогу.
Вирус не в моем ноуте а у жены прошел. И не факт что вирус, просто как то биос ипоганился. Вряд ли сам.
S>Вирус не в моем ноуте а у жены прошел. И не факт что вирус, просто как то биос ипоганился. Вряд ли сам.вполне мог и сам
Здравствуйте, Shmj, Вы писали:
S>Собственно, в самом BIOS такой настройки нет.
S>Как я понимаю, любой вирус может записать туда дерьмо и комп. включаться не будет. Собственно, так и произошло у жены, пришлось тратить время + $35 на ремонт. Причем вирус то еще может быть на диске, по этому сразу лучше переустановку Windows сделать?
S>Почему не сделали защиту?
Здравствуйте, Shmj, Вы писали:
N>>Ну вирус же как-то прошил, по твоим словам? Значит, в BIOS нет включения защиты перед стартом ОС.
S>Вот когда вы скачиваете прошивку для BIOS с сайта производителя -- как вы ее устанавливаете? В Windows режиме?
S>У меня в Windows режиме через спец. прогу.
Последний раз, когда я это делал, был пункт в меню самого BIOS, который находил файл на воткнутой флэшке. Но это не лаптоп, а десктоп (материнку уже не помню, что-то из периода IvyBridge).
Спец. программа это для более ранних платформ.
S>Вирус не в моем ноуте а у жены прошел. И не факт что вирус, просто как то биос ипоганился. Вряд ли сам.
Вполне мог и сам.
Здравствуйте, Shmj, Вы писали:
S>А как же тогда перепрошить биос?
Как написал выше netch80, если в чипсете выставлен специальный флажок, то при попытке перезаписи образа BIOS генерируется специальное прерывание и процессор переключается в system management mode (SMM). Обработчик этого прерывания должен проверить аутентичность новой прошивки и разрешить запись в BIOS, если прошивка прошла проверку и запретить в противном случае (в случае вируса). Поэтому, если этот флажок выставлен вы можете обновить BIOS.
Здравствуйте, PM, Вы писали:
PM>Win.CIH проснулся
Ага, тоже его вспомнил. Но ни одной поврежденной им BIOS я не видел. Только диски.
Кстати, а как тогда с защитой BIOS решалось? Я слышал, на материнской плате перемычку ставили, и если нужно было перепрошить — снимали.
Здравствуйте, Privalov, Вы писали:
PM>>Win.CIH проснулся
P>Ага, тоже его вспомнил. Но ни одной поврежденной им BIOS я не видел. Только диски.
В основном ходили страшные истории, что 26-го апреля компьютер при включении превращается в груду железа. Один из однокурсников вроде бы пострадал, а может просто содержимое ПЗУ испортилось в апреле, как у топикстартера
P>Кстати, а как тогда с защитой BIOS решалось? Я слышал, на материнской плате перемычку ставили, и если нужно было перепрошить — снимали.
Да, кажется была перемычкам названием типа Flash write protect. Ещё сама микросхема BIOS обычно вставлялась в гнездо, так что её можно легко было вытащить для перепрошивки.
Здравствуйте, PM, Вы писали:
PM>В основном ходили страшные истории, что 26-го апреля компьютер при включении превращается в груду железа. Один из однокурсников вроде бы пострадал, а может просто содержимое ПЗУ испортилось в апреле, как у топикстартера
Битых ПЗУ и груд железа я не видел. А вот жесткие диски примерно в эти дни летели пачками.
На всех дисках, которые я видел, были убиты 2048 (или 4096? Вот же память стала. ) первых физических секторов.
PM>Да, кажется была перемычкам названием типа Flash write protect. Ещё сама микросхема BIOS обычно вставлялась в гнездо, так что её можно легко было вытащить для перепрошивки.
Да, тогда еще появилась куча рецептов для "горячей перепрошивки". Что-то типа: поддеть нитку под микросхему, загрузиться, вынуть ПЗУ, вставить другую. Или как-то так.
Здравствуйте, Privalov, Вы писали:
P>Да, тогда еще появилась куча рецептов для "горячей перепрошивки". Что-то типа: поддеть нитку под микросхему, загрузиться, вынуть ПЗУ, вставить другую. Или как-то так.
Собственноручно перепрошил одному страдальцу прошивку именно таким способом. Давно это было.
Здравствуйте, Eugene Radius, Вы писали:
S>>А как же тогда перепрошить биос?
ER>Как написал выше netch80, если в чипсете выставлен специальный флажок, то при попытке перезаписи образа BIOS генерируется специальное прерывание и процессор переключается в system management mode (SMM). Обработчик этого прерывания должен проверить аутентичность новой прошивки и разрешить запись в BIOS, если прошивка прошла проверку и запретить в противном случае (в случае вируса). Поэтому, если этот флажок выставлен вы можете обновить BIOS.
Когда семерку крякаешь, надо модифицированную прошивку залить с какими-то ключами. Скачиваешь оригинальную прошивку, тулзу, тулза эту прошивку модифицирует, потом минут 10 подбирает какую-то контрольную сумму и всё, биос её принимает как родную. Причём судя по инструкциям работает для 99% пользователей. Так что фикция все эти проверки.
Здравствуйте, vsb, Вы писали:
vsb>Когда семерку крякаешь, надо модифицированную прошивку залить с какими-то ключами. Скачиваешь оригинальную прошивку, тулзу, тулза эту прошивку модифицирует, потом минут 10 подбирает какую-то контрольную сумму и всё, биос её принимает как родную. Причём судя по инструкциям работает для 99% пользователей. Так что фикция все эти проверки.
К сожалению, и такое случается .. Выше описано как это должно работать в теории. На правктике это зачастую происходит иначе.
Опция BIOS Hard Disc Write Protect (Защита жесткого диска от записи) относится к категории опций, позволяющих пользователю осуществлять настройку параметров жестких дисков. Ее предназначение – аппаратное включение или выключение возможности записи информации на жесткий диск. Опция может принимать всего лишь два значения – Enabled (Включено) и Disabled (Выключено).
Принцип работы
Как, наверное, знают многие пользователи, очень часто накопители оснащаются средствами, позволяющими блокировать запись на них информации. На гибких дисках и многих картах памяти для этой цели предназначены специальные переключатели, расположенные на корпусе накопителя. Установка переключателя в определенное положение позволяет полностью блокировать добавление на эти носители какой-либо новой информации, а также изменение уже записанных файлов. При этом содержащаяся на накопителе информация остается полностью доступной для чтения. Подобная операция блокировки записи может быть полезна, например, в том случае, если в накопителе содержится крайне важная информация, которую вы опасаетесь случайно удалить или перезаписать.
Для большинства винчестеров подобная защита от записи недоступна. Однако некоторые BIOS все же содержат опцию, которая позволяет блокировать запись на жесткие диски, подключенные к системной плате компьютера.
В данной опции вариант Enabled позволяет включить защиту от записи на жесткие диски, а вариант Disabled – выключить защиту и сделать диски доступными для записи. Стоит помнить об этой особенности, поскольку, исходя из названия вариантов, можно случайно выбрать неправильное значение опции.
Стоит ли включать опцию?
В большинстве случаев опцию включать не имеет смысла. Дело в том, что включив защиту от записи, вы не сможете даже загрузить операционную систему, установленную на винчестере, поскольку практически все операционные системы должны записывать на диск различные служебные файлы. Об этом стоить помнить в том случае, если вы намереваетесь использовать данную опцию, например, в качестве защиты от изменения содержимого жесткого диска вредоносными программами.
Вообще говоря, на первый взгляд может показаться, что данная опция вообще не имеет никакого практического смысла, однако «если звезды зажигают, значит, это кому-то нужно». Можно вообразить, например, такую ситуацию, когда жесткий диск компьютера используется в качестве хранилища информации, представленной в виде файлов или базы данных, а операционная система компьютера загружается со сменного носителя или через сеть и хранится в его оперативной памяти. В таком случае запрет на запись позволяет уберечь важную информацию, записанную на жестком диске, от случайного (или предумышленного) уничтожения. Хотя в настоящее время подобные задачи могут решаться и с помощью операционных систем, а также специального ПО, тем не менее, встроенная в BIOS аппаратная защита жесткого диска от записи является более надежной. К тому же подобное решение позволяет работать со старыми операционными системами, не имеющими соответствующих средств для обеспечения безопасности.
В ранее опубликованной статье "Вирус
в Shadow RAM" были рассмотрены уязвимости, позволяющие программно
модифицировать выполняемый блок BIOS, находящийся в оперативной памяти.
Очевидно, это дает вредоносным программам широкие возможности, но не вызывает
повреждения оборудования, поскольку искажается не содержимое микросхемы BIOS, а
его копия, находящаяся в ОЗУ и обновляемая при каждом перезапуске компьютера.
Продолжая начатую тему, рассмотрим и более тяжелый случай – искажение
содержимого микросхемы BIOS. После такой атаки, материнская плата требует
ремонта, а точнее – восстановления содержимого микросхемы BIOS.
Как известно, авторы вирусов начали использовать эту уязвимость еще около 10
лет назад, практически сразу после того, как в качестве носителя BIOS стали
применяться микросхемы электрически перепрограммируемых ПЗУ (Flash ROM). В
сложившейся ситуации, минимизация угрозы стала заботой не только авторов
антивирусных программ, но и разработчиков аппаратного обеспечения, в частности,
материнских плат. Отметим, что полностью исключить опасность несанкционированной
модификации BIOS невозможно, так как для этого пришлось бы отказаться от
"законной" возможности его обновления.
В предлагаемом материале, на уровне ассемблера и программирования
конфигурационных регистров, рассматривается процесс программного доступа к
функциям микросхемы Flash ROM, а также системные ресурсы, управляющие таким
доступом и защищающие BIOS от несанкционированного искажения.
При таком глубоком исследовании, нам потребуется работать с регистрами,
которые в каждом чипсете реализованы по-разному. Разумеется, в одной статье
невозможно описать архитектуру всех чипсетов. Поэтому, для того, чтобы разговор
был предметным, остановимся на одном из вариантов: в качестве примера рассмотрим
платформу на чипсете Intel 815, детально описанном в 3, использующую
микросхему BIOS SST 49LF004A, детально описанную в [18]. Перечислим все действия
программы, выполняемые при стирании сектора и записи данных в микросхему Flash
ROM для такой платформы. Протокол доступа к микросхеме Flash ROM, описанный
ниже, используется как программами обновления BIOS, так и вредоносными
программами, цель которых – искажение или стирание содержимого микросхемы BIOS.
В приложении к статье содержатся исходные тексты программы, осуществляющей
доступ к функциям микросхемы Flash ROM.
Как это делается
1) Микросхема BIOS подключена к "южному мосту" чипсета посредством
интерфейса LPC (Low Pin Count), детально описанного в [1]. Для доступа к
содержимому BIOS на предмет чтения и записи, а также передачи управляющих команд
и контроля текущего состояния микросхемы Flash ROM, используется 16-мегабайтный
диапазон FF000000h-FFFFFFFFh в адресном пространстве памяти. Чтобы программные
обращения к указанному диапазону транслировались в физические циклы чтения и
записи на интерфейсе LPC, конфигурационные регистры "южного моста" чипсета
должны быть установлены следующим образом.
В 16-битном регистре BIOS_CNTL (его координаты в конфигурационном
пространстве Bus=0, Device=1Fh, Function=0, Register=4Eh-4Fh) бит 0 нужно
установить в "1". Это снимает блокировку циклов записи и разрешает их трансляцию
на интерфейс LPC.
2) Микросхема SST 49LF004A, используемая в качестве носителя BIOS,
имеет объем 512 Кбайт и разделена на 8 блоков по 64 Кбайт. Каждый блок имеет
свой регистр защиты записи (Block Locking Register). Например, для блока 0,
расположенного по адресам FFF80000h-FFF8FFFFh, адрес регистра Block Locking
Register равен FFB80002h. Для разрешения стирания и записи блока, бит 0 этого
регистра должен быть установлен в "0". Адреса регистров защиты записи для
каждого блока и другие подробности содержаться в [18]. Манипуляции с регистрами
микросхемы Flash ROM, расположенными в пространстве памяти, выполняются с
помощью стандартных инструкций архитектуры x86, обеспечивающих чтение и запись
ячеек памяти, например MOV. Вопросы организации регистров, отображенных на
память (Memory-mapped I/O) детально рассмотрены в ранее опубликованной статье
"Устройства системной поддержки. Исследовательская работа №
7,
8 и
9".
3) Для запуска операции стирания блока или сектора требуется выполнить
последовательность из шести циклов записи заданных байтов по заданным адресам.
Последовательности приведены в [18] а также в исходном тексте программы,
прилагаемом к статье. Использование многоцикловых последовательностей для
запуска операций стирания и записи, снижает вероятность случайного искажения
содержимого Flash в результате программного сбоя.
4) Для запуска операции записи байта требуется выполнить
последовательность из четырех циклов записи заданных байтов по заданным адресам.
Отметим, что перед выполнением записи, для сектора, в который выполняется
запись, необходимо выполнить стирание.
Об аппаратной защите BIOS и ее эффективности
Как было показано выше, для перезаписи содержимого Flash ROM, программа
должна выполнить три действия: перенастроить чипсет для обеспечения доступа к
микросхеме BIOS, перенастроить регистры блокировки записи, входящие в состав
самой микросхемы BIOS и, наконец, передать приказ записи или стирания. На каждом
из этих трех этапов действуют механизмы защиты BIOS от несанкционированной
модификации. Рассмотрим подробнее эти механизмы, а также причины, по которым они
в ряде случаев оказываются неэффективными. Приведенная информация поможет
выработать методику, позволяющую исследовать заданную материнскую плату на
предмет наличия рассматриваемой уязвимости.
1) Регистр BIOS_CNTL, рассмотренный выше входит в состав "южного
моста" чипсета, его бит 0 управляет блокировкой циклов записи, адресованных
микросхеме BIOS. Бит 1 того же регистра (это бит BLE, BIOS Lock Enable)
позволяет установить режим, при котором попытка снять защиту записи будет
перехватываться BIOS, а точнее, при попытке установить бит 0 в "1" будет
генерироваться прерывание SMI (System Management Interrupt) с передачей
управления специальной процедуре, входящей в состав BIOS. Причем, если BIOS при
старте установит такой режим перехвата, программно выключить его чипсет не
позволяет, этот режим будет выключен только после аппаратного сброса (по сигналу
RESET). Подробности в [3].
К сожалению, разработчики BIOS обычно не используют этот механизм,
предоставляемый чипсетом. Во всех материнских платах, исследованных автором, бит
BLE (бит 1 регистра BIOS_CNTL) установлен в "0", поэтому, попытки снятия защиты
записи не перехватываются.
Вместе с тем, работа "вирусописателей" несколько осложнена тем, что
архитектура регистров управления доступом к BIOS в каждом чипсете различна,
поэтому для снятия защиты, вирус должен распознавать чипсет и иметь модули
поддержки под каждый чипсет.
2) Регистры защиты записи Block Locking Register, также рассмотренные
выше, входят в состав микросхемы Flash ROM SST 49LF004A. Здесь также
предусмотрен бит защиты записи (бит 0) и бит, установка которого в "1" позволяет
запретить снятие защиты записи (бит 1). Если биты 0 и 1 установлены в "1",
микросхему BIOS программно вывести из состояния защиты записи невозможно, это
произойдет только при аппаратном сбросе (по сигналу RESET). Подробности в [18].
К сожалению, и этот механизм обычно не используется разработчиками BIOS, а
ведь его применение могло бы существенно улучшить защищенность. Во всех платах,
исследованных автором, бит 1 в регистрах защиты блоков микросхем Flash ROM
установлен в "0", то есть снятие защиты записи разрешено.
3) Третий уровень защиты, состоит в том, что для запуска операций
стирания и перезаписи микросхемы BIOS, требуется своеобразный пароль, а именно,
передача многоцикловых "ключевых" последовательностей со строго определенными
адресами и данными. Так как у всех микросхем одного типа пароль одинаковый и его
можно узнать из документации на микросхему, например 4, 17, такая мера
может защитить только от случайного искажения содержимого BIOS при программном
сбое и записи беспорядочных данных. Вредоносная программа, прочитав
идентификаторы ROM Vendor ID и ROM Device ID, может распознать тип микросхемы
BIOS и сформировать требуемые ключевые последовательности в соответствии с
документацией на данную микросхему.
С точки зрения использования этих сигналов, материнские платы бывают трех
видов:
Третий вариант - сигналы защиты записи формируются с помощью
программно-доступного регистра, состоянием которого управляет BIOS. При этом
пользователю не нужно переключать "перемычки", но защищенность будет хуже, так
как в отличие от второго варианта, здесь есть возможность программного
выключения защиты. Вместе с тем, это неплохой компромисс. Так как указанный
программно-доступный регистр обычно реализуется специфическими ресурсами платы,
"вирусописатель", располагая информацией только на чипсет и микросхему BIOS, но,
не имея принципиальной электрической схемы материнской платы, не узнает о том,
что и в какой регистр надо записать для снятия защиты на данной материнской
плате.
Источники информации
14) PCI BIOS Specification. Revision 2.1.
15) PCI Local Bus Specification. Revision 3.0.
16) PCI-to-PCI Bridge Architecture Specification. Revision 1.1.
17) 2 Megabit (256K x 8) Multi-Purpose Flash SST39SF020 Data Sheet.
18) 2 Mbit / 4 Mbit Firmware Hub SST49LF002A / SST49LF004A Data Sheet.
19) 2 Mbit LPC Flash SST49LF020 Data Sheet.
20) 1 Mbit SPI Serial Flash SST25VF010 Data Sheet.
21) 2 Mbit / 4 Mbit SPI Serial Flash SST25VF020 / SST25VF040 Data Sheet.
22) W49V002FA 256K x 8 CMOS Flash Memory with FWH Interface Data Sheet.
23) W49V002A 256K x 8 CMOS Flash Memory with LPC Interface Data Sheet.
24) MX28F1000P 1M-BIT [128K x 8] CMOS Flash Memory Data Sheet.
25) SPI EEPROM Interface Specification. Part Number 223-0017-004 Revision H.
26) SPI Interface Specification. Technical Note 15.
Книги
27) В.Л. Григорьев. Микропроцессор i486. Архитектура и программирование.
Москва ТОО “ГРАНАЛ” 1993.
28) 2B ProGroup: В.А. Вегнер, А.Ю. Крутяков, В.В. Серегин, В.А. Сидоров, А.В.
Спесивцев. Аппаратура персональных компьютеров и ее программирование. IBM PC/XT/AT
и PS/2. Москва “Радио и связь” 1995.
Ищем в сети драйвер GiveIO, ставим на ХР (или 2к, NT, и т.д.), и имеем возможность написать программу, которая посредством этого драйвера СМОЖЕТ обращаться к "железу" как угодно.
А помимо GiveIO в Сети есть еще куча других подобных драйверов, дающих прямой доступ к оборудованию. Так что при наличии правильно растущих рук -- NT не так уж и круто.
Ну и NTLOADER подменить еще можно, и, опять же, сделать всё, что угодно.
__________________Лечить и судить умеют и могут все, а вот рассчитать несущую балку?
Так что при наличии правильно растущих рук -- NT не так уж и круто.
Ну и NTLOADER подменить еще можно, и, опять же, сделать всё, что угодно.
при наличии правильно растущих рук - NTFS + грамотная настройка машины и ничего не подменишь. NTFS + грамотная настройка машины и ничего не подменишь Например? Зашифровать, что-ли? Так не загрузишься-ж.. Не думается мне, что оновной фишкой здесь была поддержка NTFS досом (точнее отсутсвие поддежки).. Предполагается, что пользователь - очень опытный, и будет использовать любые возможности чтобы снять защиту.Да не принимай на работу такого умника - делов то.
Достойная з/п сотрудникам решит быстрее проблему.
при наличии доступа к debug (локально, по сетке, по инету, . ) биос валится из-под ЛЮБОЙ винды NTFS + грамотная настройка машины и ничего не подменишь Чел имеет права админа, с этим ниче не поделаешь, сделать может что угодно, да еще и следы подтеретьЯ - админ, а не работодатель , принимать решение о приеме на работу не могу.
Проверить работает ли debug или нет не могу - ибо не знаю какими командами этот косяк производится.
Кстати, этот умник, опытный пользователь или как его там - "разогнал" монитор (выставил 120 герц хотя монитор больше 85 не держит), и теперь моник полетел - жутко дрожит даже в нормальных частотах.
Понятно, почему я так боюсь его экспериментов?
Белые волки рвутся в битву, Белые волки громят врага!
debug'ом можно записать любую информацию в перезаписываемую память любого устройства и исполнить некоторые команды типа формотнуть винт на низком уровне и ему по х** какая винда и какие права
сейчас найду и выложу команду по сбросу биоса (записывается любая неверная информация в биос, он проверяет и когда видит, что неправильно, то сам сбрасывается по дефолту), так что это самая мощная программа в виндузе, а если еще кривые руки подключить.
–D (dump) <adress> - просмотр
-d F000:E000 (информация о биос [фирма производитель, версия. ])
-d F000:EC6C (дата создания биос, чипсет. )
–E (enter) Addres <command list> - запись (уже интереснее), ввод команд
сброс биос
-0 70 17
-0 71 17
q
в nt иногда почему-то надо 2 раза (но редко, не знаю от чего зависит) вместо 17 можно любой мусор писать
Читайте также: