Fail count bios что это
Одно из направлений моей компании — продажа технологических решений в области виртуализации. По долгу службы, приходится делать пилотные проекты или устраивать тестовые стенды. Недавно, компания Citrix выпустила новый продукт под название XenClient XT, который по сути является клиентским гипервизором первого уровня, то есть работает на чистом железе. Основной идеей клиентского гипервизора является создание виртуальных машин на собственном ноутбуке. Где и как это применимо — опустим.
Все современные процессоры Intel и AMD поддерживают технологию аппаратной виртулизации.
И так, в моем распоряжении был ноутбук с H77 чипсетом и Intel Core i7-3820QM процессором. Согласно спецификации от производителя, мой процессор поддерживал Intel Virtualization Technology (VT-x) и Intel Virtualization Technology for Directed I/O (VT-d) технологии. Если первая имеется почти на всех новых ноутбуках, то вторая технология встречается только на топовых моделях. Но она дает много преимуществ, как например прямой проброс GDU в виртуальную среду, соответственно клиентская машина получает полную поддержку 3D. Но давайте не будем углубляться в технологии, отличные от тематики данной статьи.
В моем биосе была возможность включения VT-x, но вот управление технологией VT-d не было предусмотрено изначально.
В расстроенных чувствах, я стал бродить по разным ресурсам в интернете и наткнулся на два очень интересных ресурса: mydigitallife и bios-mods.
Оказалось, что большая часть настроек биоса скрыта от обычного пользователя. Причина понятно — не давать пользователям ковыряться в настройках инициализации железа, дабы не создавать очереди у сервисных центров из армии любопытных «бородатых» субъектов с «кирпичами» в руках.
Первоначальное знакомство с технологией повергло меня в некоторое замешательство. Куча незнакомых мне утилит, новые термины, непонятные трактовки… Я решил не мучиться и написал на обоих ресурсах, что готов заплатить тому, кто мне поможет открыть скрытые от меня меню. Для этого было необходимо покопаться в ассемблерном коде, убрать несколько проверок, прошить патченный биос и у вас полное меню вашего биоса.
Так я прождал неделю, а заработать никто не захотел… ну или не смог.
Взяв себя в руки, я решил сам разобраться как этот биос работает и сделать патч самому. Спустя две недели и с помощью русского сообщества IXBT я написал свой первый патч к биосу моего тестового ноутбука. Скрестив пальцы на руках и с замиранием сердца я прошил свой ноутбук…
Вы помните в лохматые годы мы прошивали свои системные блоки новыми биосами для материнских плат? Тогда на экране красовалась надпись, мол ни в коем случае не выключайте компьютер до окончания прошивания? Были случаи, когда по странному стечению обстоятельств именно в тот момент отключалось электричество… В итоге получали большой не функциональный ящик. Что делалось дальше — история умалчивает.
Мой ноутбук не включился. Перебои с электричеством с батарейкой ему не страшны. Но вот я что-то сделал не правильно. Душевному расстройству не было предела. К моей большой радости оказалось, что биос имеет функцию recovery и путем нехитрых комбинаций клавиш и заранее подготовленной флешки ноутбук можно оживить.
Я пошел другим путем: пропатчил те места, которые ну ни как не могли повлиять на функционал биоса, а точнее заменил логотип. Снова прошил и снова получил кирпич. Размышляя и советуясь с опытными дельцами в этом деле мы пришли к выводу, что современные UEFI биосы имеют вторичную проверку на контрольную сумму образа прошивки. Первая проверка происходит когда вы пытаетесь прошить, а вторая когда биос запускается. Если в первом случае я также пропатчил прошивальщик, чтобы он не проверял контрольную сумму, то вторую проверку мне не преодолеть, так как она зашита в самом железе.
На данный момент имеем следующее: Можно патчить EFI биосы и не можем UEFI. Мой, конечно же, второй случай. Опять долгие поиски в интернете и натыкаюсь на статью Enable VT on InsydeH2O based Sony Vaio laptops, the EFI way.
Суть метода проста: вы загружаетесь в EFI режим с помощью специального загрузчика и получаете доступ к VSS памяти, где настройки вашего биоса и хранятся. Я протестировал что на моем ноутбуке это работает, снова открыл прекрассный дизассемблер IDA, скачал последние спецификации и в полном вооружении начал потрошить свой биос.
Успешным результатом двухнедельной работы стало выпотрошенное меню
Я успешно загрузился в загрузчик с доступом к VSS памяти, прописал нужные мне переменные и включил или выключил чего мне не хватало или мешало в моей работе.
Ну а теперь о том как это сделать вам.
Подготовка инструментария
1. Необходимо скачать PhoenixTool с этого форума, где постоянно выкладывается текущая версия. Он вам будет нужен, чтобы разложить файл прошивки на его составляющие.
2. Вам нужен perl. Если у вас есть UNIX система, то все просто, если нет, то ActivePerl или Cygwin под Windows.
3. Вам нужен последний биос от вашего производителя.
4. Любой архиватор.
Получение образа прошивки
1. Откройте архиватором exe файл вашей прошивки, найдите там файл с расширением bin или fd и распакуйте в удобное для вас место. Лучше в отдельную папку.
2. Запустите PhoenixTool и попробуйте открыть файл прошивки.
3. Если при попытке открыть вы видите такое окно
то скорее всего ваш образ от производителя зашифрован. Decrypt метод пока не придумали, но это только дело времени. Если это ваш случай, то переходите к следующему шагу, если нет, то пропускаем и переходим к пункту 8.
4. Распакуйте программу прошивания в удобную для вас папку и запустите обновление вашего биос до последней версии.
5. После того как ваш ноутбук перезагрузится, снова зайдите в эту папку и найдите там файл platform.ini
6. Откройте текстовым редактором и сделайте слеующие изменения:
Это позволит вам прошить еще раз ваш биос, но при этом будет создана резервная копия текущего биоса.
7. После перезагрузки откройте полученную резервную копию с помощью PhoenixTool
8. Через пару секунд вы должны будете увидеть окошко похожее на это:
9. Теперь можете закрыть окошко.
10. В папке, где у вас лежал образ появится папка DUMP, а в ней множество файлов. Нас интересует, который начинается на FE3542FE и имеет самый большой размер:
11. Теперь скачиваем исходный код моего
Подготовка загрузочной дискеты
1. Берем флешку, размер не важен.
2. Форматируем ее в FAT32
3. Создаем структуру каталогов EFI\Boot
4. Скачиваем BOOTX64.EFI
5. Кладем в папку Boot
6. Перегружаемся в BIOS, включаем Legacy и отключаем Secure Boot.
7. Сохраняемся и загружаемся через флешку.
8. После загрузки вы должны увидеть желтый текст на черном экране
9. К модификации настройки биоса все готово.
Изменение параметров
Для изменений используются поля VarStore и Value. Value в логе в десятичном варианте, при изменении необходимо указывать шестнадцатиричное значение.
1. Допустим вам надо изменить режим работы диска с IDE на AHCI. Кому-то это надо для хакинтошей, а кто-то купил себе твердотельный жесткий диск, а ноутбук его не видит. Ищем в лог файле что что касается сабжа и находим следующие строки:
Для того чтобы вам изменить настройку, необходимо сперва дать команду setup_var 0x39 .
Результатом данной команды будет текущее значение данной переменной. Чтобы ее изменить и поставить в AHCI, надо дать команду setup_var 0x39 0x1 . Учтите, что если у вас стоит Windows, то потребуется его переустановка, так как однажды настроенный Windows на IDE не сможет понять, что теперь ему надо работать с AHCI. Как вариант — предварительно загрузившись в безопасный режим подредактировать реестр, тогда переустанавливать ничего не придется.
2. Например вам надо запретить дискретный видеоадаптер. За этот пункт отвечает следующие строки:
Команда setup_var 0x1e6 0x0 отключит дискретный и будет работать только встроенный.
3. Хотим чтобы Numlock не включался
Команда setup_var 0x08 0x0 отключит его при загрузке.
Эпилог
Данное руководство составлено как оно есть и так как я делаю это на практике. Я не несу ответственности за испорченные материнские платы или утерянную информацию. Все что мы можете сделать — вы делаете на свой страх и риск.
Если что-то пошло не так, то первым спасательным кругом может быть извлечение батарейки биоса для стирания VSS памяти. Если не помогает, то вам нужно искать способ recovery для вашего биоса. В случае HP инструкцию можно посмотреть здесь. Для других вендоров там же, но я не искал.
Моя тема, где я нет, нет помогаю страждущим находится здесь. Благодарности от пользователей в доказательство тому, что это все работает.
И последнее, не пытайтесь отключить оборудование, которое у вас имеется или включить то, которого у вас нет, иначе сбой инициализации оборудования приведет к полном краху и невозможности восстановления материнской платы.
И самое последнее, мой вам совет: прежде чем начинать экспериментировать с оверклокингом и тюнингом биоса, проверьте, что для вашего ноутбука работает способ восстановления биоса в случае его краха. Пока таких случаев не было, но мало ли.
Эй хеллоу! Например вы решили разогнать свой комп. Похвально. Но если комп не хочет запускаться на повышенной частоте, то технология Boot Failure Guard (B.F.G) предложит вам безопасный запуск и выдаст экран настроек.
Технология есть на материнках AsRock, может и на других также присутствует. И вроде как технология включена по умолчанию для всех плат AsRock.
Я написал о технологии, скорее всего пункт в биосе имеет такое же значение.
Есть еще настройка Boot Failure Guard Count — позволяет задать количество попыток загрузиться после изменения настроек для разгона. Например можно указать значение 2 — это означает, что если материнка 2 раза пыталась загрузиться и ничего не получилось, то она сбивает настройки биоса и загружается уже с безопасными настройками. Как по мне — полезная функция.
На заметку. Boot Failure Guard Count переводится — подсчет очков сбоев при загрузке (дословно). Boot Failure Guard — защита от сбоев при загрузке
- По умолчанию Boot Failure Guard Count может быть или отключен или указано 3 попытки.
- Чтобы выключить совсем — выставите в Boot Failure Guard значение Disabled.
- Опции обычно находятся в разделе Boot.
Мой вывод об использовании Boot Failure Guard:
- Boot Failure Guard стоит включать если вы занимаетесь разгоном. Если система не заведется после ваших настроек, то функция откроет биос с оптимальными настройками (либо выдаст запрос на их применение).
- Boot Failure Guard Count — лучше не ставить больше двух, чтобы не испытывать железо. Если система не заводится с первого раза — мое мнение что настройки небезопасны, то есть вряд ли с такими настройками железо будет работать стабильно. Синие экраны, зависания, BSOD — все это спокойно может быть. Не стоит ставить настройки так бы сказать на пределе.
- При увеличении частоты не забывайте что устройство будет работать выше нормы. Греться будет также выше нормы. Поэтому вопрос об охлаждении нужно заранее продумать.
При возникновении проблем, если что-то настроили и забыли что, если система сбоит, зависает и есть подозрение что все это из-за настроек биоса — сбросьте настройки при помощи Load Optimal Defaults. Пункт обычно находится в разделе Exit (выход).
On-Demand Clock Modulation что это?
On-Demand Clock Modulation (ODCM) — устаревшая технология модуляции тактовой частоты процессора по запросу. Простыми словами — снижение частоты при перегреве, то есть что-то вроде троттлинга. Если процессор перегревается, то снижение частоты приведет к снижению температуры.
- Опция может быть расположена в разделе Advanced > CPU Configuration. Значения могут быть Auto, Enabled, Disabled, 12.5% On, 25.0% On, 37.5% On, 50.0% On, 62.5% On, 75.0% On и 87.5% On. По умолчанию должно стоять Auto.
- Опция была актуальна во времена Pentium 4. Тогда была проблема с процессорами, когда производительность падала, и решение оказывалось в отключении On-Demand Clock Modulation.
- Предположительно другое название функции — Clock Modulation.
- При разгоне вроде как нужно отключать (впрочем советую отключать и энергосберегательные технологии).
Я нашел информацию в одном журнале. Толком что имеется ввиду — не знаю. Похоже на принудительный пропуск тактов. Но опять же — я не могу точно понять. А не могу, потому что инфа была на английском, я перевел на русский.. и вот перевод:
Еще из-за включенной функции могут быть ошибки в старых играх. Например есть какая-то ошибка 200 в игре Jazz Rabbit 1994 и причина именно в On-Demand Clock Modulation. Странно, но вроде бы это относится и к игре Dota 2 — могут быть глюки при включенной функции.
Технологией On-Demand Clock Modulation можно как-то управлять. Умеют это делать например программы OverSoft CPU Informer, RightMark CPU Clock Utility.
Опция в биосе и программы OverSoft CPU Informer и RightMark CPU Clock Utility
Intel SpeedStep что это?
Enhanced Intel SpeedStep Technology (EIST) — технология энергосбережения процессоров. Принцип работы — изменение частоты и напряжения. Изменять частоту, при включенной опции Intel SpeedStep, можно из под Windows — при помощи той или иной программы, или используя инструменты самой операционки (в дополнительных параметрах питания можно ограничить максимальную частоту).
Коротко о важном:
- Зачем нужно? Оптимизация работы процессора — в простое частота сбрасывается до минимума, при нагрузке — наоборот. В результате, если на компьютере ничего не делать — процессор мало греется и мало использует энергии (актуально для ноутов и может даже для планшетов на Windows).
- Включать или нет? Мой ответ — да. Intel SpeedStep помогает продлить срок службы процессора — меньше нагрев. В ноутбуках включать особенно нужно — больше батарея прослужит.
- При разгоне есть мнение, что Intel SpeedStep нужно отключать — так как мешает разгону. Но некоторые юзеры утверждают что можно и не отключать.
- Тоже самое касается и игр — некоторые утверждают что при включенной технологии есть едва заметная просадка FPS.
Intel SpeedStep это от Intel, не знаю когда появилась, но в Pentium 4 она уже была. У AMD есть тоже своя технология — Cool-n-Quiet (переводится как Прохлада и тишина), впервые появилась в Athlon 64.
А если не включать? Тогда.. в общем смотрите:
- Процессор даже в простое будет греться также как и при полной нагрузке. Мягко говоря не совсем логично.
- При автоматической регулировке оборотов вентилятора будет повышенный шум, так как для охлаждения при полной нагрузке нужны повышенные обороты кулера. Это касается как ПК, так и ноутбуков.
- В ноутбуке будет быстрее садиться батарея.
- Маловероятно, но все же — при длительной работе процессора без сброса частоты будут ухудшаться свойства термопасты на крышке процессора, как и термоинтерфейса между крышкой и кристалом (то есть уже внутри, то что заменить просто так не получится). Относится как к ПК, так и к ноутам.
При включенной технологии Intel SpeedStep ограничить частоту процессора в Windows можно этой настройкой:
Значения опции — Disabled (Отключено), Enabled (Включено) и Auto.
Intel SpeedStep в биосе
Фух, вот мы и разобрались с некоторыми опциями. Желаю вам удачи и не хулиганьте там в биосе)) До новых встреч!
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
кранты озу?
uнал озу до 3200,
оставлял тайминги, вольтаж на авто.
озу пока работает, но не знаю гнать её или нет.
"Primary master hard disk fail". Что с жестким диском?!
Добрый вечер. Такая проблема: подсоединяю жесткий Western Digital (WD800) диск IDE, в Биосе.
Передать в метод "что-то", что бы метод мог в это "что-то" записать матрицу неизвестной размерности
Опишу суть проблемы подробнее. Есть метод, который умножает две матрицы, мне бы хотелось, что бы.
Что это за глюк? If (Worksheets("B&S").Columns("A").Rows(65536).End(xl Up).Row.
Что это может быть такое? Sheet полностью пуст, а вот такая ерунда. Почему False.
Цель с предикатом "Fail" и оператором "Или"
Здравствуйте! Выполняя очередное задание на Прологе (Пролог 7.5) столкнулась с следующей.
alexeyk3k, телепаты в отпуске. Мы не знаем что за ОЗУ, что за конфиг, куда разгон и зачем, почему памяти "кранты" по вашему мнению и так далее.
"171 AB Program Fail Count (для SSD) Число попыток, когда запись во флэш-память не удалась. RAW-значение показывает фактическое количество отказов. Процесс записи технически называется «программирование флэш-памяти», отсюда и название атрибута. Когда флэш-память изношена, она больше не может быть записана и становится доступной только для чтения."Примерно так.
alexeyk3k, для начала - проверьте версию биоса. Для этой матери она не должна быть выше версии 1.40. Если у вас она выше - убирайте.
у меня версия bios 1.60, это будет "обновлением" или откатом биос. не подскажите гайд/видос.
и возможно уже другая проблема или так же в биосе.
проблема : не работает xmp профиль, комп включается, (спикер издаёт 3 сигнала
при включении xmp профиля спикер издаёт 3 сигнала и вырубается.
ещё в bios напряжение 1.350 почему то помечается красным цветом.
комп включается, комп включается, спикер издаёт 3 сигнала и выключается и так 3 раза. потом видимо сбрасывает все настройки и нормально включается с 1 коротким сигналом.
железо:
мать
ASRock AB350M Pro4 R2.0
версия биоса 1.60
*ASRock do NOT recommend updating this BIOS if Pinnacle, Raven, Summit or Bristol Ridge CPU is being used on your system.
можно сразу на версию 1.40 , последовательно не надо обновлять биос
Добавлено через 8 минут
можно сразу на версию переходить 1.40 ? последовательно биос не надо обновлять?*
alexeyk3k, можно
Добавлено через 1 минуту
alexeyk3k, Но если вы сами этого никогда не делали - лучше поспрашивайте среди знакомых. кто в теме, чтобы помогли.
Добавлено через 33 минуты
гуглить?
Добавлено через 22 минуты
попытался установить написало "сбой при проверке безопасного перепрограммирования" и комп перезагрузился
Добавлено через 1 минуту
попытался установить, комп завиис и потом когда отвис написало "сбой при проверке безопасного перепрограммирования" и комп перезагрузился*
попытался установить, комп завиис и потом когда отвис написало "сбой при проверке безопасного перепрограммирования" и комп перезагрузился*
получилось, обновил.
попробовал с другой флешкой, хотя эту уже в другой слот пихал, они там никак не помечены по особому, только usb 2.0 и обычные.
память пока в xmp не ставил, сейчас попробую.
Добавлено через 31 минуту
Я без понятия в чём была проблема, но похоже что не надо было обновлять биос.
Перед тем как переставить, тоже поставил xmp профиль и так же комп ушёл в перезагрузку с 3 сигналами.
Я переставил плашки в слоты 2 и 4 , и всё заработало.
alexeyk3k, биос обновлять (на самом деле даунгрейдить) было надо, поверьте. я вам с сайта асрока даже скрин показал.
Правильно, что "%" это "деление по модулю"?
Правильно, что "%" это "деление по модулю"?
Что означает "as count"?
select count (*) as count from student where extract (year from date_mat)=(select extract(year.
Система "видит" больше оперативке че есть в наличии
У меня на компе стояло 2 гига оперативки. В какой-то момент я запустил диспетчер задач ( стоит.
Everest пишет, что "Обнаружено вскрытие корпуса", что это означает?
В программе Everest пишет что ОБНАРУЖЕНО ВСКРЫТИЕ КОРПУСА что это означает.
Как видите ошибся в материнке. Взял не z170. На этом перечеркнул возможность разгона 6600k процессора, а также частота озу 2133MHz вместо 2400 MHz.
Есть ли сейчас смысл менять материнку? Ну, скажем, хотя бы на эту Asus Prime Z270-P? Даст ли это прирост в играх?
Потому что у меня постоянно ощущение, что эта сборка работает не на всю мощь.
БП убил мат. плату?
Здравствуйте. Такая проблема: сначала один комп не включался по нажатию кнопки включения, но после.
Какую мат.плату выбрать
Какая версия данной материнской платы ASUS M5A97 нужна для стабильной работы процессора FX-6300 и.
Нужно заменить мат. плату
Имеется: мат. плата Asus M2N с сокетом AM2, 3 гигабйта памяти ddr2, видеокарта GeForce GT730.
Вывод сигнала на мат. плату
Мат плата H110M-S2V. После включения с кнопки сигнала на монитор нет. POS проходит нормально, все.
DeathBringer, Спасибо, пакет вроде тот.
Вот что пропую из под dos:
fpt -d dump.bin
Пишет найден флеш - девайс. А дальше красным:
Error 26: The host CPU does not have read access to the target flash area. To en
able read access for this operation you must modify the descriptor settings to g
ive host access to this region.
Aplikman
Это защита срабатывает. Скорее всего из ME-региона.
Лечится замыканием ног (1 и 5) аудиочипа при включении либо прошивкой программатором.
Программатора нет. Аудиочип? Попробовать можно.
А почему у меня не получилось прошить через dos и afudos ? То видео, что я скидывал.
Там же залилась 0906, я точно видел версию, проходил пост, прошивка работала. Просто из-за Ez Flash я ничего не мог выбрать. Это что защита или где-то хранится информация, о том, что я понизил прошивку?
Aplikman
Afudos фактически работает только с BIOS-регионом, не трогая ME. Поэтому и шьет.
Я не знаю, может ли Ez Flash прошивать полную прошивку с понижением версии ME. Вероятно, что нет.
Добавлено через 1 минуту
Насчет аудиочипа: нужно закоротить 1 и 5 его ножки скрепкой или пинцетом в выключенном состоянии, включить, дождаться прохождения POST и убрать скрепку. Тогда до перезагрузки должна сняться защита.
DeathBringer, Спасибо, сделал как вы написали.
Чип очень маленький, ножки стоят близко к друг другу. Вдруг кто будет читать, на этой материнке чип перевернут. Поэтому 1 и 5 ножки это сверху справа, т.е. верхняя правая это первая ножка и дальше налево. Закоротил их щупами от тестера. В итоге удачно выполнил команду:
fpt -d dump.bin
Создал бекап текущего биоса.
Далее пытаюсь залить подготовленный 0906 bios (систему не перезагружал):
fpt -f bios_0906.rom
В итоге получаю ошибку
Error 368: Failed to disable write protection for the BIOS space
Так что побороть ее не смог.
ps. Также прочел, что можно понизить прошивку через afudos, при этом изменив системное время на пару дней вперед после выхода прошивки. Попробовал так сделать - не получилось. Ez flash требует указать CAP файл, 0609 не принимает, скормил ему обратно 3805
- Берем флешку, размер не важен.
- Форматируем ее в FAT32
- Создаем структуру каталогов EFI\Boot
- Скачиваем и распаковываем BOOTX64.EFI
- Кладем его в папку Boot
- Перегружаемся в BIOS, включаем Legacy и отключаем Secure Boot.
- Сохраняемся и загружаемся через флешку
Удостоверяемся, что прочитано значение 0x1. Если так, то выполняем:
setup_var 0x8A7 0x0
В результате значение должно стать 0x0. Это означает, что BIOS Lock отключен.
После этого снова делаете трюк со скрепкой и прошиваете 0906 при помощи FPT.
P.S. 0x8A7 - эта величина достоверно подходит только для текущей 3805 версии BIOS.
Да. Скачал H170-PRO-ASUS-0906.cap , с помощью UEFITool.exe конвертировал в .rom , верно? Да, получилось ровно 16 777 216 байт
Попробую сделать флешку и прошить еще раз как вы написали
DeathBringer,
поставил везде Legacy. Удалил ключи - Security boot state стал Disabled
С флешки загрузился. Применил setup_var 0x8A7 0x0 , потом проверил setup_var 0x8A7, стоит 0x0.
Выключил комп, замкнул контакты. Создал бэкап биоса fpt -d bios.bin, успешно. Пытаюсь прошить fpt -f 0906.rom опять та же ошибка Error 368: Failed to disable write protection for the BIOS space
Добавлено через 13 минут
DeathBringer, вот видимо в чем дело. Слетает setup_var 0x8A7 0x0
Я перепроверил команду setup_var 0x8A7, значение 0x1. Опять ввел setup_var 0x8A7 0x0, снова setup_var 0x8A7 значение 0x0
Перезагружаю систему, ввожу setup_var 0x8A7 значение 0x1 . То есть после перезагрузки системы значение слетает на дефолтный 0х1. Что я не так делаю?
Предлагаю окунуться в дебри микроархитектуры компьютера и разобраться с тем, как работает одна из наиболее распространенных технологий обеспечения аппаратной целостности загрузки BIOS — Intel Boot Guard. В статье освещены предпосылки появления технологии, перечислены все режимы работы, а так же описан алгоритм каждого из них. Обо всем по порядку.
История и предпосылки создания
Процесс загрузки компьютера представляет собой цепочку событий, в которой управление исполнительной аппаратурой передается от звена к звену, начиная с нажатия пользователем кнопки включения и заканчивая работой приложения. Проблема заключается в том, что каждое из этих звеньев может быть взломано злоумышленником. Причем чем более ранний компонент подвергается атаке, тем большую свободу действий получает правонарушитель. Известны случаи атак, при которых злоумышленник заменял BIOS или Boot loader на собственные, уязвимые и, по сути, превращал компьютер в "кирпич" (именно поэтому такой тип атак называется Bricking). В попытках защитить процесс загрузки компьютера были созданы многие программные средства проверки целостностности. Однако любая программа может быть успешно заменена правонарушителем, поэтому на нее невозможно полагаться на сто процентов. Отсюда и возникла необходимость создания более надежной, аппаратной технологии обеспечения целостности загрузки.
В качестве своего варианта обеспечения аппаратной защиты загрузки компьютера Intel в 2013 году встроила в новую микроархитектуру Haswell технологию Boot Guard. В процесс загрузки был добавлен аппаратный модуль аутентифицированного кода (ACM, Authenticated code module), а производителям оборудования пришлось расширить BIOS, добавив в него начальный блок загрузки (IBB, Initial boot block). С тех пор цепочка загрузки компьютера включает в себя ACM, с помощью которого проверяется IBB, после чего управление передается BIOS и так далее.
Схема процесса загрузки компьютера с Intel Boot Guard
Режимы работы
Важной составляющей технологии Boot Guard является настройка ее работы. Производитель оборудования должен выбрать, какой режим работы активирован и какие действия стоит предпринимать в случае ошибки в ACM или IBB. Вся эта информация содержится в политиках загрузки, которые "зашиты" в аппаратуре.
Режимы работы Boot Guard можно классифицировать по корню доверия:
Измеренная загрузка (Measured boot) полагается на дополнительное устройство, встраиваемое производителем оборудования. Одним из возможных вариантов устройства является TPM (Trusted platform module) — криптопроцессор, в который предустановлены генератор случайных чисел, генератор ключей RSA, устройство хеширования и устройство RSA.
Проверенная загрузка (Verified boot) полагается на программируемые предохранители, которые являются частью аппаратуры компьютера. По своей сущности программируемый предохранитель — это ячейка, которая может находиться в двух состояниях: сожжена или не сожжена. Будучи сожженной, ячейка не может вернуться в исходное состояние. Таким образом можно кодировать информацию.
Измеренная загрузка
В памяти криптопроцессора TPM хранится эталон хеша начального блока загрузки (IBB), с помощью которого и производится проверка подлинности IBB. Алгоритм работы Boot Guard в режиме измеренной загрузки следующий:
Начальный блок загрузки записывается в память криптопроцессора TPM
Устройство хеширования криптопроцессора загружает записанный в памяти IBB
Устройство хеширования вычисляет хеш IBB
Хеш IBB записывается в память криптопроцессора
Производится сравнение между текущим хешем IBB и его эталоном
В случае совпадения состема помечается как надежная, иначе — как ненадежная
Проверенная загрузка
Схема работы Boot Guard в режиме измеренной загрузки выглядит несколько сложнее, поскольку помимо начального блока загрузки (IBB) и программируемых предохранителей в нее входят две дополнительные структуры: манифест IBB (IBBM) и манифест ключа. Манифест IBB включает в себя номер версии безопасности, хеш IBB, открытый ключ RSA, подпись RSA номера версии и хеша IBB. Манифест ключа включает в себя номер версии безопасности, хеш открытого ключа RSA манифеста IBB, открытый ключ RSA производителя оборудования, подпись RSA номера версии и хеша открытого ключа RSA манифеста IBB. В программируемых предохранителях записаны хеш открытого ключа RSA производителя и номера версий безопасности манифестов. Все вычисления и сравнения выполняются с помощью модуля аутентифицированного кода (ACM). Алгоритм работы Boot Guard в режиме проверенной загрузки следующий:
В ACM загружаются хеш открытого ключа RSA производителя и номера версий безопасности манифестов из программируемых предохранителей.
Проверяются номера версий безопасности манифестов. Если хотя бы один из номеров оказался меньше, то проверка завершается в соответствии с политиками загрузки. Если хотя бы один из номеров оказался больше, то соответствующее значение будет обновлено в программируемых предохранителях в конце проверки.
Вычисляется хеш открытого ключа RSA производителя и производится сравнение с соответствующим значением из программируемых предохранителей. В случае несовпадения проверка завершается в соответствии с политиками загрузки.
Проверяется подпись RSA в манифесте ключа. В случае несоответствия проверка завершается в соответствии с политиками загрузки.
Вычисляется хеш открытого ключа RSA манифеста IBB и производится сравнение с соответствующим значением из манифеста ключа. В случае несовпадения проверка завершается в соответствии с политиками загрузки.
Проверяется подпись RSA в манифесте IBB. В случае несоответствия проверка завершается в соответствии с политиками загрузки.
Вычисляется хеш IBB и производится сравнение с соответствующим значением из IBBM. В случае несовпадения проверка завершается в соответствии с политиками загрузки.
В случае необходимости номера версий безопасности манифестов обновляются в программируемых предохранителях путем сжигания дополнительного числа предохранителей.
Начальный блок загрузки успешно проверен и ему передается управление.
Заключение
В заключение хотелось бы добавить, что несмотря на всю прелесть и надежность Boot Guard, важно понимать, что настройка этой технологии доверена производителю оборудования. В 2017 году были обнаружены шесть моделей материнских плат, в которых Boot Guard была настроена некорректно и позволяла обойти проверку целостности BIOS. Берегите свои компьютеры и выбирайте надежного производителя оборудования!
При написании статьи была использована литература:
Читайте также: