
Super UEFIinSecureBoot Disk: Загрузите любую ОС или .efi файл без отключения UEFI Secure Boot
Super UEFIinSecureBoot Disk — это загрузочный образ с загрузчиком GRUB2, созданный в качестве доказательства концепции (не активно поддерживается и не дорабатывается), предназначенный для использования в качестве основы для USB-флешек восстановления.
Ключевая особенность: диск полностью функционален с включенным режимом Secure Boot UEFI. Он может запускать любую операционную систему или .efi файл, даже с непроверенной, недействительной или отсутствующей подписью.
Secure Boot — это функция прошивки UEFI, предназначенная для защиты процесса загрузки путём предотвращения загрузки драйверов или загрузчиков ОС, не подписанных приемлемой цифровой подписью.
Большинство современных компьютеров поставляются с включённым Secure Boot по умолчанию, что является требованием для сертификации Windows 10. Хотя его можно отключить на всех типичных материнских платах в меню настройки UEFI, иногда это нелегко сделать, например, из-за пароля на настройку UEFI в корпоративном ноутбуке, который пользователь не знает.
Этот диск, после установки на USB-флешку и загрузки с неё, эффективно отключает защитные функции Secure Boot и временно позволяет выполнять практически все действия с ПК так, как если бы Secure Boot был отключён. Это может быть полезно для восстановления данных, переустановки ОС или просто для загрузки с USB без лишних действий.
Скачайте образ файла со страницы релизов, запишите его на USB-флешку с помощью одной из следующих программ:
ПРЕДУПРЕЖДЕНИЕ: все данные на вашей USB-флешке будут удалены.
Образ содержит один раздел FAT32 объёмом 500 МиБ. Используйте gparted или аналогичный инструмент для изменения его размера, чтобы получить полное пространство USB-диска.
При первой загрузке на ПК с Secure Boot появится окно сообщения Access Violation. Нажмите OK и выберите пункт меню «Enroll cert from file». Выберите ENROLL_THIS_KEY_IN_MOKMANAGER.cer и подтвердите регистрацию сертификата.
Компьютеры без Secure Boot загрузятся в GRUB без ручного вмешательства.
Работает ли этот диск в режиме Secure Boot?
Да, работает. Он загружает любые неподписанные или недоверенные ядра Linux, .efi файлы или драйверы после ручной регистрации ключа при первой загрузке с помощью MokManager. Вам не нужно отключать Secure Boot для выполнения первоначальной регистрации ключа.
Работает ли этот диск на компьютерах на базе UEFI без Secure Boot или с отключённым Secure Boot?
Да, он будет работать как стандартный GRUB2.
Работает ли этот диск на старых компьютерах с BIOS?
Да, он работает как любой другой загрузчик GRUB2.
Можно ли использовать этот диск для обхода Secure Boot в UEFI-бутките/вирусе?
Нет, не совсем. Этот диск требует ручного вмешательства физического пользователя при первой загрузке, что исключает цель буткита быть скрытым.
Могу ли я заменить GRUB на другой EFI-загрузчик (rEFInd, syslinux, systemd-boot)?
Да, замените grubx64_real.efi/grubia32_real.efi на свои файлы. Загрузчику не требуется быть подписанным, и он также должен запускать любые .efi файлы благодаря политике безопасности, установленной grubx64.efi/grubia32.efi (PreLoader), точно так же, как и GRUB2, включённый в диск.
Процесс загрузки UEFI этого диска выполняется в 3 этапа.
bootx64.efi (shim) → grubx64.efi (preloader) → grubx64_real.efi (grub2) → EFI файл/ОС
Этап 1: материнская плата загружает shim. Shim — это специальный загрузчик, который просто загружает следующий исполняемый файл, в нашем случае grubx64.efi (preloader). Shim подписан ключом Microsoft, что позволяет запускать его в режиме Secure Boot на всех стандартных материнских платах ПК.
Shim содержит встроенный сертификат Fedora (поскольку он извлечён из репозитория Fedora). Если Secure Boot включён, а grubx64.efi не подписан встроенным сертификатом Fedora, shim загружает другой исполняемый файл — MokManager.efi, который является специальным программным обеспечением для управления ключами shim. MokManager запрашивает у пользователя подтверждение процесса регистрации ключа или хеша.
Новые версии shim устанавливают хуки для функций UEFI LoadImage, StartImage, ExitBootServices и Exit для «Усиления защиты от неучаствующих загрузчиков», которые необходимо обойти для данного варианта использования диска. Shim из Fedora не устанавливает собственные политики безопасности UEFI, поэтому невозможно загрузить самоподписанные .efi файлы из загрузчика второго этапа, даже если добавить их хеши или сертификаты с помощью MokManager.
Этап 2: preloader — это программное обеспечение, аналогичное shim. Оно также выполняет проверку исполняемых файлов и загружает следующий .efi файл. Preloader, включённый в этот диск, представляет собой урезанную версию, которая выполняет только одну функцию: установку политики безопасности UEFI «разрешить всё». Это позволяет загружать произвольные .efi исполняемые файлы с помощью функций UEFI LoadImage/StartImage даже вне GRUB (например, в UEFI Shell) и обходит усиление защиты shim.
Этап 3: GRUB2 — это общеизвестный универсальный загрузчик. Он был модифицирован для загрузки ядра Linux без дополнительной проверки (команды linux/linuxefi), загрузки .efi бинарных файлов в память и перехода к их точке входа (команда chainloader), а также для имитации «участвующего загрузчика» для shim.
Прочтите мою статью на эту тему: Exploiting signed bootloaders to circumvent UEFI Secure Boot (также доступна на русском)
Super UEFIinSecureBoot Disk GRUB2 устанавливает переменную suisbd=1. Она может использоваться для обнаружения модифицированного GRUB2 диска в grub.conf, общем для нескольких загрузчиков.
Начиная с версии 3, GRUB использует стандартный загрузчик .efi файлов UEFI, так как есть некоторые проблемы с реализацией внутреннего загрузчика. Чтобы использовать внутренний загрузчик, добавьте set efi_internal_loader=1 в конфигурационный файл GRUB. Оба метода могут загружать недоверенные .efi файлы.