Обновить
6.65

UEFI *

Unified Extensible Firmware Interface

Сначала показывать
Порог рейтинга
Уровень сложности

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Время на прочтение6 мин
Количество просмотров591K

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →

Используем Secure Boot в Linux на всю катушку

Время на прочтение17 мин
Количество просмотров124K


Технология Secure Boot нацелена на предотвращение исполнения недоверенного кода при загрузке операционной системы, то есть защиту от буткитов и атак типа Evil Maid. Устройства с Secure Boot содержат в энергонезависимой памяти базу данных открытых ключей, которыми проверяются подписи загружаемых UEFI-приложений вроде загрузчиков ОС и драйверов. Приложения, подписанные доверенным ключом и с правильной контрольной суммой, допускаются к загрузке, остальные блокируются.


Более подробно о Secure Boot можно узнать из цикла статей от CodeRush.



Чтобы Secure Boot обеспечивал безопасность, подписываемые приложения должны соблюдать некоторый «кодекс чести»: не иметь в себе лазеек для неограниченного доступа к системе и параметрам Secure Boot, а также требовать того же от загружаемых ими приложений. Если подписанное приложение предоставляет возможность недобросовестного использования напрямую или путём загрузки других приложений, оно становится угрозой безопасности всех пользователей, доверяющих этому приложению. Такую угрозу представляют загрузчик shim, подписываемый Microsoft, и загружаемый им GRUB.


Чтобы от этого защититься, мы установим Ubuntu с шифрованием всего диска на базе LUKS и LVM, защитим initramfs от изменений, объединив его с ядром в одно UEFI-приложение, и подпишем его собственными ключами.

Читать дальше →

Обновление UEFI/BIOS в Linux

Время на прочтение4 мин
Количество просмотров54K

Не секрет, что производители материнских плат и ноутбуков не всегда дают возможность пользователям Linux обновить UEFI/BIOS прошивку так же ненавязчиво, как это делают пользователи Windows. Тем не менее для HP EliteBook 840G1, которым я пользуюсь, сделать это немногим сложнее.



Для этого дела понадобятся следующие артефакты:


  • FAT32 EFI System Partition (ESP)
  • WINE
  • Переменный электрический ток
Читать дальше →

Настройка UEFI Dual Boot системы, приправленной rEFInd

Время на прочтение12 мин
Количество просмотров252K

КДПВ. Бут-менеджер rEFInd с темой оформления Regular.

На сегодняшний день практически все уже слышали про технологию UEFI. Говорить о том, что это такое и зачем оно нужно, я не собираюсь. Сегодня я бы хотел описать простейший сценарий установки Dual Boot системы с полной поддержкой UEFI, а также рассмотреть отдельно установку и настройку бут-менеджера rEFInd. Возможно вы уже видели подобные мануалы и гайды, но я постараюсь донести весьма доходчиво суть того, что мы будем делать и зачем. В других мануалах вы лишь смотрите за «магией» картежника и пытаетесь её повторить, делая, зачастую, элементарные ошибки. Кому эта тема интересна — прошу под кат.
Читать дальше →

Устройство NVRAM в UEFI-совместимых прошивках, часть четвертая

Время на прочтение6 мин
Количество просмотров14K
И снова здравствуйте, уважаемые читатели.
Начатый в предыдущих трех частях разговор о форматах хранилищ NVRAM, используемых различными реализациями UEFI, подходит к своему логическому концу. Нерассмотренным остался только один формат — NVAR, который используется в прошивках на основе кодовой базы AMI Aptio. Компания AMI в свое время смогла «оседлать» практически весь рынок прошивок для десктопных и серверных материнских плат, поэтому формат NVAR оказался чуть ли не распространённее, чем оригинальный и «стандартный» VSS.
Если вам интересно, чем хорош и чем плох формат хранилища NVRAM от AMI — добро пожаловать под кат.
Here be dragons

Устройство NVRAM в UEFI-совместимых прошивках, часть третья

Время на прочтение7 мин
Количество просмотров17K
Перед вами третья часть моего повествования о форматах NVRAM, используемых UEFI-совместимыми прошивками различных производителей. В первой части я рассказывал об NVRAM вообще и о «стандартном» формате VSS, во второй — об интересных блоках, которые можно найти рядом с NVRAM в этом формате, а в этой речь пойдет о целой россыпи различных форматов, используемых в прошивках на платформе Phoenix SCT: FlashMap, EVSA, Intel uCode, CMDB, SLIC pubkey и SLIC marker.
Если вам интересно, что умудрились напридумывать на замену VSS разработчики из Phoenix — добро пожаловать под кат, только предупреждаю сразу, статья получилась достаточно длинной.
Phoenix SCT во все поля!

Устройство NVRAM в UEFI-совместимых прошивках, часть вторая

Время на прочтение8 мин
Количество просмотров16K
Продолжаем разговор о форматах NVRAM в UEFI-совместимых прошивках, начатый в первой части. На этот раз на повестке дня форматы блока Fsys из прошивок компании Apple, блока FTW из прошивок, следующих заветам проекта TianoCore, и блока FDC, который можно найти в прошивках, основанных на кодовой базе компании Insyde.
Если вам интересно, зачем нужны и как выглядят не-NVRAM данные, которые можно обнаружить рядом с NVRAM в прошивках различных производителей — добро пожаловать под кат.
В этот раз у нас не NVRAM, господа.

Устройство NVRAM в UEFI-совместимых прошивках, часть первая

Время на прочтение9 мин
Количество просмотров52K
Здравствуйте, уважаемые читатели. Когда-то очень давно, почти 3 года назад, я написал пару статей о форматах данных, используемых в UEFI-совместимых прошивках. С тех пор в этих форматах мало что изменилось, поэтому писать про них снова я не буду. Тем не менее, в тех статьях был достаточно серьезный пробел — отсутствовали какие-либо упоминания об NVRAM и используемых для её хранения форматах, т.к. тогда разбор NVRAM мне был попросту неинтересен, ибо те же данные можно получить из UEFI Shell на работающей системе буквально одной командой dmpstore.
По прошествии трех лет выяснилось, что хранилище NVRAM умеет разваливаться по различным причинам, и чаще всего это событие приводит к «кирпичу», т.е. воспользоваться вышеупомянутой командой уже не получится, а данные (или то, что от них осталось) надо доставать. Собрав пару развалившихся NVRAM'ов вручную в Hex-редакторе, я сказал "хватит это терпеть!", добавил поддержку разбора форматов NVRAM в UEFITool NE, и решил написать цикл статей об этих форматах по горячим следам и свежей памяти.
В первой части поговорим о том, что вообще такое этот NVRAM, и рассмотрим формат VSS и его вариации. Если интересно — добро пожаловать под кат.
NVRAM - наш рулевой!

Миграция Windows между BIOS <-> UEFI

Время на прочтение2 мин
Количество просмотров87K
Появляется такая задача не часто, но все-же, нужно преобразовать уже установленную систему, загружаемую в BIOS (или UEFI режиме) в UEFI режим (в BIOS соответственно).
Кому интересно, читаем далее:
Читать дальше →

Пишем DXE-драйвер для снятия скриншотов с BIOS Setup и других UEFI-приложений

Время на прочтение18 мин
Количество просмотров37K
В прошлой статье про SecureBoot мне очень не хватало возможности сделать снимок экрана при настройке UEFI через BIOS Setup, но тогда выручило перенаправление текстовой консоли в последовательный порт. Это отличное решение, но доступно оно на немногих серверных материнских платах, и через него можно получить только псевдографику, а хотелось бы получить настоящую — она и выглядит приятнее, и вырезать ее каждый раз из окна терминала не надо.
Вот именно этим мы и займемся в этой статье, а заодно я расскажу, что такое DXE-драйвер и как написать, собрать и протестировать такой самостоятельно, как работают ввод с клавиатуры и вывод на экран в UEFI, как найти среди подключенных устройств хранения такое, на которое можно записывать файлы, как сохранить что-нибудь в файл из UEFI и как адаптировать какой-то внешний код на С для работы в составе прошивки.
Если вам все еще интересно — жду вас под катом.
Драйверов богу драйверов! Скриншотов к трону скриншотов!

Укрощаем UEFI SecureBoot

Время на прочтение11 мин
Количество просмотров190K
Данные обещания надо выполнять, тем более, если они сделаны сначала в заключительной части опуса о безопасности UEFI, а потом повторены со сцены ZeroNights 2015, поэтому сегодня поговорим о том, как заставить UEFI SecureBoot работать не на благо Microsoft, как это чаще всего настроено по умолчанию, а на благо нас с вами.
Если вам интересно, как сгенерировать свои собственные ключи для SecureBoot, как установить их вместо стандартных (или вместе с ними), как подписать ваш любимый EFI-загрузчик, как запретить загрузку неподписанного или подписанного чужими ключами кода, как выглядит интерфейс для настройки SecureBoot у AMI, Insyde и Phoenix и почему это, по большому счету, совершенно не важно — добро пожаловать под кат, но опасайтесь большого количества картинок и длинных консольных команд.
Войти в клетку

Возможна ли мультипроцессорная обработка в UEFI?

Время на прочтение3 мин
Количество просмотров8.9K
Согласно спецификации Unified Extensible Firmware Interface программная среда, обеспечивающая выполнение инициализационных процедур до загрузки операционной системы, не поддерживает многопотоковую обработку. Основная причина – однопотоковая идеология UEFI и, как следствие, нереентерабельность сервисных процедур UEFI API. Вместе с тем, ряд задач не связанных с вызовом сервисных функций (например, тестирование оперативной памяти) не только допускают параллельное выполнение несколькими программными потоками, но и получают от такого похода прибавку производительности.
Читать дальше →

О безопасности UEFI, часть заключительная

Время на прочтение6 мин
Количество просмотров46K
Вот и подошел к концу мой опус о безопасности UEFI. В этой заключительной части осталось поговорить о перспективных технологиях и планах на будущее, да пообщаться с читателями в комментариях.

Если вам интересно, чем безопасности прошивки могут помочь STM, SGX и PSP — жду вас под катом.

Желая показать бунтарский дух и наплевательство на традиции, ссылки на предыдущие части не даю — сами ищите их там.
Читать дальше →

Ближайшие события

О безопасности UEFI, часть шестая

Время на прочтение5 мин
Количество просмотров20K
Все хорошее и не очень хорошее когда-нибудь заканчивается, пришла пора понемногу заканчивать и этот цикл статей.
В этой предпоследней части речь пойдет о людях, пашущих на ниве безопасности UEFI с обеих сторон, о полезном в этом деле софте и его авторах и об источниках информации по теме для тех, кому она нужна. Заранее прошу прощения, если забуду упомянуть кого-то важного, поправьте меня в комментариях в таком случае.
Как всегда, ссылки на предыдущие части опуса для тех, кто их пропустил, остальных прошу под кат.
Читать дальше →

О безопасности UEFI, часть пятая

Время на прочтение7 мин
Количество просмотров59K
После небольшого перерыва продолжаем разговор о безопасности UEFI. В этот раз речь пойдет о технологии SecureBoot, ее преимуществах и недостатках, об атаках на нее и защите от них.

Впервые о SecureBoot речь зашла в стандарте UEFI 2.2 в 2011 году, но окончательно все аспекты были реализованы в версии 2.3.1C в начале 2012 года. Основным разработчиком технологии была Microsoft, которая сразу же заявила, что для получения сертификата Windows 8 Ready для своей еще не выпущенной новой ОС требуется реализация и включение SecureBoot по умолчанию на всех новых ПК. Это заявление вызвало волну резкой критики со стороны сторонников свободного ПО, которая успешно докатилась и до Хабра.
Если вам интересно, чем именно закончилось противостояние MS и сообщества, как SecureBoot выглядит после почти 4 лет взросления, и какие атаки на него все еще возможны — добро пожаловать под кат.

Стоп, чуть не забыл: по доброй традиции, набор ссылок на предыдущие части, для тех, кто умудрился их пропустить.
Читать дальше →

О безопасности UEFI, часть четвертая

Время на прочтение6 мин
Количество просмотров34K
Продолжаем говорить о безопасности UEFI, на этот раз речь пойдет об атаках на NVRAM и защите от них.
Неплохая, казалось бы, идея о том, что на микросхеме SPI можно хранить настройки практически вечно, не полагаясь на ненадежную и зависящую от батарейного питания CMOS SRAM, сыграла с разработчиками UEFI весьма злую шутку, теперь NVRAM с каждой новой версией стандарта обрастает все большим количеством костылей и подпорок, и конца этому процессу не видно. Если вам интересно, что именно пытаются подпереть костылем — эта статья для вас.
По традиции, всех, кто еще по каким-то причинам не читал первые три части — рекомендую начать с них, остальных с нетерпением жду под катом.
Читать дальше →

О безопасности UEFI, часть третья

Время на прочтение8 мин
Количество просмотров43K
Продолжаем разговор о безопасности UEFI.
На этот раз речь пойдет об опубликованной в конце 2014 года серьезной уязвимости в реализации ACPI S3 (Sleep Mode), ее эксплуатации и последствиях. Основная «фишка» этой уязвимости в том, что она вскрыла целый класс проблем безопасности UEFI, вообще не считавшихся до этого проблемами, и потому и заслуживает отдельной статьи.
Тем, кто не читал предыдущие статьи цикла — раз и два, предлагаю прочесть сначала их, остальных жду под катом.
Читать дальше →

О безопасности UEFI, часть вторая

Время на прочтение9 мин
Количество просмотров44K
Продолжаем начатый в прошлом посте разговор о безопасности UEFI, об угрозах и имеющихся защитах от них.
В этот раз речь пойдет об SMM, о том, как он устроен и работает, и почему является желанной целью для атаки.
Пропустившим нулевую и первую части сего опуса — рекомендую прочесть сначала их, остальных покорно прошу под кат.
Читать дальше →

О безопасности UEFI, части нулевая и первая

Время на прочтение9 мин
Количество просмотров90K
Когда-то давно, в начале 2014 года, я назвал состояние безопасности большинства реализаций UEFI "полумифическим". С тех пор минуло полтора года, дело осторожно двигается с мертвой точки, но до сих пор очень многие производители ПК для конечного пользователя не обращают на эту самую безопасность почти никакого внимания — «пипл хавает».
В этой статье речь пойдет о модели угроз и векторах атаки на UEFI, а также о защитах от перезаписи содержимого микросхемы BIOS — самой разрушительной по возможным последствиям атаки.
Если вам интересно, как устроена защита UEFI и какие именно уязвимости в ней так и остаются неисправленными на большинстве современных систем — добро пожаловать под кат.
Читать дальше →

Что новые версии UEFI-стандартов нам готовят, часть третья, UEFI 2.5

Время на прочтение6 мин
Количество просмотров24K
В последней части цикла я постараюсь рассказать о новшествах стандарта UEFI 2.5, первые реализации которого должны появиться примерно через полгода на новых платах с процессорами Intel Skylake и AMD R-Series. В первой и второй частях речь шла о более низкоуровневых (и потому менее интересных неспециалистам) стандартах PI 1.4 и ACPI 6.0, здесь же поговорим об изменениях, напрямую влияющих на работу ОС и возможности загрузки по сети. Если вы хотите узнать, что нового в UEFI 2.5, почему PXE уходит в прошлое и зачем UEFI поддержка WiFi и Bluetooth — искренне прошу под кат.
Читать дальше →