Какая технология позволяет обойти ограничения bios

Обновлено: 07.07.2024

Компания Intel представила проект с открытым кодом под названием Slim Bootloader (Slimbootloader, или SBL), предназначенный для оперативной защищенной инициализации аппаратной платформы с последующей загрузкой операционной системы.

Интерфейс Slim Bootloader, представленный компанией в рамках конференции European Open-Source Firmware Conference в Энлангене, Германия, действует по аналогии с традиционным интерфейсом BIOS, или ее наследником – технологией UEFI (Unified Extensible Firmware Interface), но отличается от них более компактным кодом и более высокой скоростью работы.

В дополнение, Slim Bootloader обладает расширенными возможностями защиты, легко оптимизируется и дополняется, а также, по аналогии с UEFI, может использоваться для загрузки нескольких операционных систем.

Особенности проекта Slim Bootloader

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

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

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

Полная последовательность вызова функций в коде Slim Bootloader – от вектора сброса до запуска операционной системы, представлен на графике ниже.

lake_2.jpg

В пакете документации для разработчиков подчеркивается, что основной акцент при разработке Slim Bootloader делался на очень быструю загрузку. Такое требование является обязательным для ряда вычислительных систем – например, для оперативной инициализации камеры заднего вида при запуске бортовой системы автомобиля.

Оптимизация скорости загрузки рассчитана на каждом этапе работы Slim Bootloader, однако в документации отмечается ряд требований для оптимизации времени загрузки – например, тип загрузочного носителя (носитель eMMC – пример быстрого носителя), скорость работы функций безопасности (алгоритмы подписи или хеширования, использование аппаратного ускорения), конфигурация аппаратной платформы (частота процессора, размер памяти и т. д.), алгоритм сжатия и другие «тормозящие» функции (экран заставки, количество параметров загрузки и пр.).

Защита является интегрированной функцией SBL и представлена модулями Boot Guard, Verified Boot, Measured Boot, Firmware Update и Triggering Firmware Update.

Проект Slim Bootloader является реализацией интерфейса UEFI на базе Open Source проекта Coreboot и доступен по лицензии BSD. В настоящее время интерфейс Slim Bootloader с открытым исходным кодом уже выполняет роль UEFI на платформе Intel с кодовым названием Apollo Lake.

lake_3.jpg

Линейка процессоров этой платформы включает чипы Intel Pentium J4205, Pentium N4200, Celeron J3455, Celeron J3355, Celeron N3350, Celeron N3450, Atom x7-E3950, Atom x5-E3940 и Atom x5-E3930, с TDP в пределах 6-12 Вт.

Разделяй и зарабатывай: сегментация сети создает новые источники дохода


В отличие от ближайшего «родственника», платформы Kaby Lake, процессоры которой вставляются в материнские платы с разъемом LGA1151, чипы Apollo Lake поставляются в корпусировке FCBGA (в большинстве случаев FCBGA1296) для непосредственной запайки в системную плату, при этом оптовая цена указывается сразу на распаянный комплект.

Доступные версии платформы Apollo Lake, поддерживаемые Slim Bootloader, включают плату разработчика UP Squared, референсную плату Intel Leaf Hill и вычислительный модуль MinnowBoard.

lake_1.jpg

В дополнение, Slim Bootloader также можно использовать совместно с программой QEMU с открытым исходным кодом для эмуляции аппаратного обеспечения различных платформ (Syllable, FreeBSD, OpenBSD, FreeDOS, Linux, Windows 9x, Windows 2000, Mac OS X, QNX, Android и других), с поддержкой аппаратной виртуализации.

Перспективы проекта

По данным разработчиков, Slim Bootloader может масштабироваться на широкий спектр аппаратных платформ – от устройств интернета вещей и ПК до серверов, при этом поддерживается совместимость с большим списком операционных систем.

По данным Intel, Slim Bootloader уже настроен на загрузку различных операционных систем, включая Windows, может проверять ПО на работоспособность и целостность, поддерживает проверку модулей по цифровой подписи. В Slim Bootloader имеется режим командной строки для диагностики и настройки, а также режим обновления прошивки.

Тем не менее, доступность SBL только для платформы Apollo Lake вводит определенные ограничения для его использования – главным образом, для рынка встраиваемых вычислительных систем.

По данным немецкого портала Golem.de, представители Intel не раскрыли каких-либо определенных планов по дальнейшему использованию Slim Bootloader, его позиционированию в качестве открытой альтернативы UEFI или переносу на другие аппаратные платформы.

Поскольку Slim Bootloader является проектом с открытым исходным кодом, создание прошивок UEFI на его основе для других аппаратных платформ при наличии заинтересованности – лишь дело времени.

Вы здесь: Главная Накопители на жёстких дисках Характеристики накопителей на жестких дисках Ограничения BIOS

Архитектура ЭВМ

Компоненты ПК

Интерфейсы

Мини блог

Самое читаемое

  • Арифметико логическое устройство (АЛУ)
  • Страничный механизм в процессорах 386+. Механизм трансляции страниц
  • Организация разделов на диске
  • Диск Picture CD
  • White Book/Super Video CD
  • Прямой доступ к памяти, эмуляция ISA DMA (PC/PCI, DDMA)
  • Карты PCMCIA: интерфейсы PC Card, CardBus
  • Таблица дескрипторов прерываний
  • Разъемы процессоров
  • Интерфейс Slot A

Ограничения BIOS

Системы, изначально имеющие жесткий диск объемом до 8 Гбайт, далеко не всегда позволяют работать с накопителями большей емкости без соответствующего обновления системной BIOS. Это связано с тем, что BIOS ранних версий (т.е. до 1998 года) не могут обслуживать накопители, емкость которых выше ограничения в 8,4 Гбайт. Не забывайте также о существующем ограничении в 137 Гбайт, которое относится к жестким дискам, выпущенным до 2002 года. Жесткие диски ATA обычно поставляются в комплекте с инсталляционным диском, содержащим программное обеспечение для замены BIOS, например Disk Manager от компании Ontrack или EZ-Drive от Phoenix Technologies (компания StorageSoft, разработавшая программу EZ-Drive, была приобретена компанией Phoenix в январе 2002 года). Тем не менее я не рекомендую практиковать программное обновление BIOS. Это связано с тем, что использование подобных программных продуктов ОЕМ (Drive Guide, MAXBlast, Data Lifeguard и пр.) может привести к различным проблемам при необходимости загрузки с дискеты/компакт-диска или при исправлении нестандартной главной загрузочной записи.

При установке жесткого диска большой емкости в систему, использующую системную BIOS, созданную до 1998 года и имеющую ограничение в 8,4 Гбайт, или BIOS, датированную 2002 годом и имеющую ограничение емкости в 137 Гбайт, следует, в первую очередь, обратиться к производителю системной платы (или компьютера) для получения обновленной версии BIOS. Практически все системные платы включают в себя флэш-память, которая позволяет устанавливать обновленные версии BIOS с помощью соответствующих служебных программ.

Такую поддержку реализуют следующие операционные системы:

  • Windows Vista;
  • Windows XP SP1 и более поздние;
  • Windows 2000 SP4 и более поздние;
  • Windows 98/98SE/Me или Windows NT 4.0 с загруженным акселератором IAA; этот вариант реализуем, только если набор микросхем системной логики материнской платы поддерживает IAA .

Если и ОС, и BIOS поддерживают LBA, можно установить и использовать высокоемкий внутренний накопитель, как любой другой. В то же время, если поддержка LBA реализована только на уровне ОС, часть диска, находящаяся за пределами 137 Гбайт, станет доступной только после загрузки операционной системы. Это значит, что, если новая операционная система устанавливается на чистый жесткий диск и при этом загрузка выполняется с компактдиска Windows XP, выпущенного до выхода пакета обновлений SP1, во время инсталляции будет возможна разметка только первых 137 Гбайт пространства диска. После полной установки самой ОС и ее пакетов обновления станет доступной и остальная часть диска, которую нужно разметить с помощью либо встроенной консоли управления дисками Windows XP, либо сторонней программы, такой как PartitionMagic или Partition Commander.

Если загрузка выполняется с компакт-диска Windows XP SP1 или более позднего, уже во время установки операционной системы можно распознать весь диск и даже разметить его в виде единого тома.

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

Жесткие диски SCSI с самого начала отличались более высокими характеристиками, чем накопители ATA. Благодаря этому диски SCSI чаще всего используются в высокопроизводительных файловых серверах, рабочих станциях и других компьютерных системах. Несмотря на то что накопители SCSI создавались еще до появления жестких дисков ATA, их разработчики предусмотрительно позаботились о возможности жестких дисков SCSI адресовать до 2,2 Тбайт (терабайт, или триллион байтов), что составило 232 сектора. В 2001 году набор команд SCSI был расширен, что позволяет поддерживать накопители емкостью 9,44 Збайт, т.е. 264 сектора. Высокая производительность и отсутствие критических ограничений на максимальный объем данных, содержащихся на жестких дисках SCSI, стали причиной того, что изготовители почти всегда выпускают накопители, имеющие наибольшую емкость, вначале в SCSI-версиях. С выходом стандарта SATA, однако, все изменилось.

Изменения, внесенные в конструкции накопителей ATA и SCSI в 2001 году, позволяют говорить о том, что пройдет еще немало времени, прежде чем ограничения емкости жестких дисков станут проблемой для интерфейса того или другого типа.

image

Новые компьютеры используют прошивку UEFI вместо традиционного BIOS. Обе эти программы – примеры ПО низкого уровня, запускающегося при старте компьютера перед тем, как загрузится операционная система. UEFI – более новое решение, он поддерживает жёсткие диски большего объёма, быстрее грузится, более безопасен – и, что очень удобно, обладает графическим интерфейсом и поддерживает мышь.

Некоторые новые компьютеры, поставляемые с UEFI, по-прежнему называют его «BIOS», чтобы не запутать пользователя, привычного к традиционным PC BIOS. Но, даже встретив его упоминание, знайте, что ваш новый компьютер, скорее всего, будет оснащён UEFI, а не BIOS.

Что такое BIOS?


BIOS — это Basic Input-Output system, базовая система ввода-вывода. Это программа низкого уровня, хранящаяся на чипе материнской платы вашего компьютера. BIOS загружается при включении компьютера и отвечает за пробуждение его аппаратных компонентов, убеждается в том, что они правильно работают, а потом запускает программу-загрузчик, запускающую операционную систему Windows или любую другую, установленную у вас.

На экране настройки BIOS вы можете изменять множество параметров. Аппаратная конфигурация компьютера, системное время, порядок загрузки. Этот экран можно вызвать в начале загрузки компьютера по нажатию определённой клавиши – на разных компьютерах она разная, но часто используются клавиши Esc, F2, F10, Delete. Сохраняя настройку, вы сохраняете её в памяти материнской платы. При загрузке компьютера BIOS настроит его так, как указано в сохранённых настройках.

При загрузке компьютера по окончанию POST BIOS ищет Master Boot Record, или MBR — главную загрузочную запись. Она хранится на загрузочном устройстве и используется для запуска загрузчика ОС.

Вы также могли видеть аббревиатуру CMOS, что расшифровывается, как Complementary Metal-Oxide-Semiconductor — комплементарная структура металл-оксид-полупроводник. Она относится к памяти, в которой BIOS хранит различные настройки. Использование её устарело, поскольку такой метод уже заменили флэш-памятью (также её называют EEPROM).

Почему BIOS устарел?

BIOS существует уже давно и эволюционировал мало. Даже у компьютеров с ОС MS-DOS, выпущенных в 1980-х, был BIOS.

Конечно, со временем BIOS всё-таки менялся и улучшался. Разрабатывались его расширения, в частности, ACPI, Advanced Configuration and Power Interface (усовершенствованный интерфейс управления конфигурацией и питанием). Это позволяло BIOS проще настраивать устройства и более продвинуто управлять питанием, например, уходить в спящий режим. Но BIOS развился вовсе не так сильно, как другие компьютерные технологии со времён MS-DOS.

У традиционного BIOS до сих пор есть серьёзные ограничения. Он может загружаться только с жёстких дисков объёмом не более 2,1 Тб. Сейчас уже повсеместно встречаются диски на 3 Тб, и с них компьютер с BIOS не загрузится. Это ограничение BIOS MBR.

BIOS должен работать в 16-битном режиме процессора и ему доступен всего 1 Мб памяти. У него проблемы с одновременной инициализацией нескольких устройств, что ведёт к замедлению процесса загрузки, во время которого инициализируются все аппаратные интерфейсы и устройства.

BIOS давно пора было заменить. Intel начала работу над Extensible Firmware Interface (EFI) ещё в 1998 году. Apple выбрала EFI, перейдя на архитектуру Intel на своих Маках в 2006-м, но другие производители не пошли за ней.

В 2007 Intel, AMD, Microsoft и производители PC договорились о новой спецификации Unified Extensible Firmware Interface (UEFI), унифицированный интерфейс расширяемой прошивки. Это индустриальный стандарт, обслуживаемый форумом UEFI и он зависит не только от Intel. Поддержка UEFI в ОС Windows появилась с выходом Windows Vista Service Pack 1 и Windows 7. Большая часть компьютеров, которые вы можете купить сегодня, используют UEFI вместо BIOS.

Как UEFI заменяет и улучшает BIOS


UEFI заменяет традиционный BIOS на PC. На существующем PC никак нельзя поменять BIOS на UEFI. Нужно покупать аппаратное обеспечение, поддерживающее UEFI. Большинство версий UEFI поддерживают эмуляцию BIOS, чтобы вы могли установить и работать с устаревшей ОС, ожидающей наличия BIOS вместо UEFI – так что обратная совместимость у них есть.

Новый стандарт обходит ограничения BIOS. Прошивка UEFI может грузиться с дисков объёмом более 2,2 Тб – теоретический предел для них составляет 9,4 зеттабайт. Это примерно в три раза больше всех данных, содержащихся в сегодняшнем Интернете. UEFI поддерживает такие объёмы из-за использования разбивки на разделы GPT вместо MBR. Также у неё стандартизирован процесс загрузки, и она запускает исполняемые программы EFI вместо кода, расположенного в MBR.

UEFI может работать в 32-битном или 64-битном режимах и её адресное пространство больше, чем у BIOS – а значит, быстрее загрузка. Также это значит, что экраны настройки UEFI можно сделать красивее, чем у BIOS, включить туда графику и поддержку мыши. Но это не обязательно. Многие компьютеры по сию пору работают с UEFI с текстовым режимом, которые выглядят и работают так же, как старые экраны BIOS.

В UEFI встроено множество других функций. Она поддерживает безопасный запуск Secure Boot, в котором можно проверить, что загрузку ОС не изменила никакая вредоносная программа. Она может поддерживать работу по сети, что позволяет проводить удалённую настройку и отладку. В случае с традиционным BIOS для настройки компьютера необходимо было сидеть прямо перед ним.

И это не просто замена BIOS. UEFI – это небольшая операционная система, работающая над прошивкой PC, поэтому она способна на гораздо большее, чем BIOS. Её можно хранить в флэш-памяти на материнской плате или загружать с жёсткого диска или с сети.

У разных компьютеров бывает разный интерфейс и свойства UEFI. Всё зависит от производителя компьютера, но основные возможности одинаковы у всех.

Как получить доступ к настройкам UEFI на современном ПК

Если вы обычный пользователь, перехода на компьютер с UEFI вы и не заметите. Загружаться и выключаться компьютер будет быстрее, а также вам будут доступны диски размером более 2,2 Тб.

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


UEFI – это большое обновление, но произошло оно незаметно. Большинство пользователей ПК не заметят его, и им не нужно беспокоиться по поводу того, что их новый компьютер использует UEFI вместо обычного BIOS. ПК просто будут лучше работать и поддерживать больше современного аппаратного обеспечения и возможностей.

Более подробное объяснение отличий в загрузочном процессе UEFI можно почитать в статье Адама Уильямсона из Red Hat, и в официальном вопроснике UEFI FAQ.

Повсеместно распространена практика сокрытия различных функций, параметров, используемых на этапах разработки и тестирования. Вместе с тем производится и сегрегация плат на уровне БИОС. Как результат, пользователь лишается доступа к фактически прописанным и реализованным возможностям.

реклама

Естественно, пытливого юзера не может устраивать такое злодейское ограничение пользовательской свободы. В связи с чем предлагаю рассмотреть способы обхода этих искусственных препон. Рассматривать будем на примере плат Intel 100-300 чипсетов. Аспекты работы с AMIBCP общеприменимы.


MSI RTX 3070 сливают дешевле любой другой, это за копейки Дешевая 3070 Gigabyte Gaming - успей пока не началось

Способ 1. Простой
требуется: программа AMIBCP и навык прошивки МП

Качаем подходящую версию AMIBCP. В нашем случае v5.02.

реклама

var firedYa28 = false; window.addEventListener('load', () => < if(navigator.userAgent.indexOf("Chrome-Lighthouse") < window.yaContextCb.push(()=>< Ya.Context.AdvManager.render(< renderTo: 'yandex_rtb_R-A-630193-28', blockId: 'R-A-630193-28' >) >) >, 3000); > > >);

File → Open… (файл_биос)

Слева представлено структурное меню БИОС. Сопоставляя названия с фактически наблюдаемыми при входе в БИОС, определяем главный блок.


Именно в этом блоке в соответствующих меню и подменю находятся все доступные настройки. Иерархия та же, что и в БИОС. Наряду со знакомыми наблюдаем и совершенно новые отдельные параметры и даже целые разделы!

реклама

Для открытия элемента достаточно поменять значение в колонке Access/Use на USER:


Обратите внимание, на разделы, описанные как бы наравне с главным, есть ссылки в теле главного блока. Т.е. доступ к ним получить можно. Например, по пути Setup → Advanced → System Agent (SA) Configuration → Memory Configuration большой раздел с настройками памяти.

реклама


Помимо открытия доступа к настройкам, AMIBCP позволяет изменить значения настроек по умолчанию, переименовать параметры и разделы.

Этим способом можно открыть только те настройки, которые непосредственно прописаны в главном блоке.

Способ 2. Сложный (для разделов)
то же + UEFITool, IFR-Extractor и HEX-редактор

Попытаемся разблокировать тот же раздел с настройками памяти на Gigabyte. Организация БИОС здесь другая, упоминаний нужного раздела в главном блоке нет.


Подменим доступный раздел скрытым. «Пожертвуем», к примеру, подменю USB Configuration (Setup → Peripherals).

Определились с тем, что хотим открыть, определились, что хотим закрыть. К делу!

UEFITool

Ищем модуль по сигнатуре $SPF: *Ctrl+F* → Text


Извлекаем и сохраняем модуль: *ПКМ* → Extract Body (to SPF.bin)


GUID модуля может отличаться, в этом случае вести поиск по сигнатуре Setup.

Модуль → PE32 Image Section → *ПКМ* → Extract Body (to Setup.bin)


IFR-Extractor

*открыть* → Setup.bin → Extract (to Setup IFR.txt)


Открываем Setup IFR.txt в блокноте.

Нас интересует FormId.

Теперь определим FormId раздела «Memory Configuration»:
0x3B628 Form: Memory Configuration, FormId: 0x2738

Открываем SPF.bin в HEX-редакторе.

Ищем HEX-последовательность, соответствующую FormID раздела Memory Configuration:
*Ctrl+F* → Hex Values (3827)


Нас интересует page_id через 4 позиции – 0060 (последовательность 6000)

Аналогично ищем page_id для Usb Configuration. Сразу за page_id 005D следует parent_id 0019.


Parent_id – это page_id родительского раздела, в нашем случае раздела Peripherals.

Ищем обратную последовательность parent_id+page_id (19005D00). Это форма вызова раздела USB Configuration.
Заменяем page_id USB Configuration на page_id Memory Configuration. Вместо 19005D00 получаем соответственно 19006000:


Остается только заменить исходный SPF модуль на модифицированный в UEFITool:
*ПКМ* → Replace Body…

Сохраняем: File → Save image file. Прошиваем.

Теперь вместо раздела USB Configuration будет вызываться раздел с настройками памяти.

При желании можно изменить имя раздела в AMIBCP.

Если AMIBCP не работает

С новыми материнками все чаще AMIBCP работать отказывается.


В этом случае остается лишь использовать 2 способ.

О прошивке

Реверс малвари

В августе 2017 года, на конференции Black Hat USA 2017, специалист компании Cylance Алекс Матросов (Alex Matrosov) представил доклад, посвященный уязвимостям, которые он обнаружил в имплементациях Intel UEFI BIOS ряда производителей материнских плат. Тогда исследователь рассказал, что найденные им баги позволяют обойти защитные механизмы BIOS, в том числе Intel Boot Guard и Intel BIOS Guard, а также изменить или подменить сам UEFI BIOS, к примеру, внедрив в него руткит.

Протестированные исследователем устройства базировались на популярной среди OEM-производителей AMI Aptio UEFI BIOS (используют Gigabyte, MSI, Asus, Acer, Dell, HP, ASRock и другие). Тогда Матросов рассказал о шести уязвимостях в четырех материнских платах:

  • ASUS Vivo Mini: CVE-2017-11315;
  • Lenovo ThinkCentre systems: CVE-2017-3753;
  • MSI Cubi2: CVE-2017-11312 и CVE-2017-11316;
  • Gigabyte серия BRIX: CVE-2017-11313 и CVE-2017-11314.

Исследователь сетовал, что производители материнских плат не используют аппаратные защитные механизмы, в том числе представленные Intel много лет назад, такие как защитные биты для SMM и SPI (BLE, BWE, PRx). А так как активной защиты памяти на аппаратном уровне нет, устройства этих производителей в теории становятся легкими мишенями для атакующих.

Теперь исследование Матросова продолжил специалист компании Embedi Александр Ермолов. Эксперт обошел защиту Intel Boot Guard на материнский плате Gigabyte GA-H170-D3H, и в процессе выяснил, что проблема, скорее всего, распространяется даже дальше, чем предполагалось изначально.

Ермолов связался с представителями AMI, чтобы уведомить их о проблеме, но ему сообщили, что уязвимости уже были устранены и последняя версия AMI BIOS, доступная для производителей, уже лишена таких недостатков. Когда исследователь решил проверить работу патча, оказалось, что исправление, по сути, лишь ухудшило и без того скверную ситуацию. С полным описанием проблемы можно ознакомиться в блоге Embedi.

Читайте также: