
Super UEFIinSecureBoot Disk: UEFI Secure Bootを無効にせずに任意のOSや.efiファイルを起動
Super UEFIinSecureBoot Disk は、概念実証(積極的にメンテナンスや機能拡張は行われていません) の起動可能なイメージであり、GRUB2 ブートローダーを搭載し、リカバリ USB フラッシュドライブのベースとして使用することを目的としています。
主な特徴: このディスクは UEFI Secure Boot モードが有効な状態でも完全に機能します。信頼できない署名、無効な署名、または署名がない場合でも、任意のオペレーティングシステムや .efi ファイルを起動できます。
Secure Boot は UEFI ファームウェアの機能であり、許容可能なデジタル署名で署名されていないドライバーや OS ローダーのロードを防止することで、起動プロセスを保護するように設計されています。
最近のコンピュータのほとんどは Secure Boot がデフォルトで有効になって出荷されており、これは Windows 10 の認定プロセスにおける要件です。通常のマザーボードでは UEFI セットアップメニューで無効にできますが、ユーザーが知らない企業のラップトップなどで UEFI セットアップパスワードが設定されている場合など、簡単に無効にできない場合があります。
このディスクを USB フラッシュドライブにインストールして起動すると、Secure Boot の保護機能が効果的に無効化され、Secure Boot が無効になっている場合とほぼ同様の操作を PC で一時的に実行できるようになります。これは、データリカバリ、OS の再インストール、または追加の手順を考えずに USB から起動する場合に役立ちます。
リリースページからイメージファイルをダウンロードし、以下のプログラムのいずれかを使用して USB フラッシュに書き込みます:
警告: USB フラッシュのデータはすべて削除されます。
イメージには、単一の FAT32 500MiB パーティションが含まれています。gparted または同様のツールを使用してパーティションをリサイズし、USB ドライブの全容量を使用できるようにしてください。
Secure Boot が有効な PC で初回起動時に、Access Violation メッセージボックスが表示されます。OK を押し、「Enroll cert from file」メニューオプションを選択します。ENROLL_THIS_KEY_IN_MOKMANAGER.cer を選択し、証明書の登録を確認します。
Secure Boot がないコンピュータでは、手動操作なしで GRUB が起動します。
このディスクは Secure Boot で動作しますか?
はい、動作します。初回起動時に MokManager ソフトウェアを使用して手動でキーを登録した後、署名なしまたは信頼できない Linux カーネルや .efi ファイル、ドライバをロードできます。初回のキー登録のために Secure Boot を無効にする必要はありません。
このディスクは Secure Boot がない、または無効になっている UEFI ベースのコンピュータで動作しますか?
はい、標準の GRUB2 と同様に動作します。
このディスクは BIOS 搭載の古いコンピュータで動作しますか?
はい、他の GRUB2 ブートローダーと同様に動作します。
このディスクを使用して UEFI ブートキット/ウイルスによる Secure Boot のバイパスが可能ですか?
いいえ、実際にはできません。この ディスクでは初回起動時に物理的なユーザーによる手動操作が必要であり、ブートキットのステルス性が損なわれます。
GRUB を別の EFI ブートローダー (rEFInd、syslinux、systemd-boot) に置き換えてもよいですか?
はい、grubx64_real.efi/grubia32_real.efi を任意のファイルに置き換えてください。ブートローダーは署名されている必要はなく、grubx64.efi/grubia32.efi (PreLoader) によってインストールされたセキュリティポリシーのおかげで、ディスクに含まれる GRUB2 と同様に任意の .efi ファイルを起動できるはずです。
このディスクの UEFI ブートプロセスは 3 段階で実行されます。
bootx64.efi (shim) → grubx64.efi (preloader) → grubx64_real.efi (grub2) → EFI file/OS
Stage 1: マザーボードが shim をロードします。shim は特別なローダーであり、次の実行ファイル(この場合は grubx64.efi (preloader))をロードするだけです。shim は Microsoft キーで署名されているため、すべての標準的な PC マザーボードで Secure Boot モードで起動できます。
shim には組み込みの Fedora 証明書が含まれています(Fedora リポジトリから抽出されたため)。Secure Boot が有効な場合、grubx64.efi は組み込みの Fedora 証明書で署名されていないため、shim は別の実行ファイル MokManager.efi を起動します。これは shim のキー管理ソフトウェアです。MokManager はユーザーにキーまたはハッシュの登録処理を進めるように求めます。
新しいバージョンの shim は、「非参加ブートローダーに対する堅牢化」のために UEFI LoadImage、StartImage、ExitBootServices、Exit 関数のフックをインストールしますが、これはこのディスクのユースケースではバイパスする必要があります。Fedora の shim はカスタム UEFI セキュリティポリシーをインストールしないため、MokManager を使用してハッシュや証明書を追加したとしても、第 2 段階のブートローダーから自己署名の efi ファイルをロードすることはできません。
Stage 2: preloader は shim と同様のソフトウェアです。これも実行可能ファイルの検証を行い、次の efi ファイルをロードします。このディスクに含まれる preloader は、1 つの機能のみを実行するように削減されたバージョンです。つまり、すべて許可する UEFI セキュリティポリシーをインストールすることです。これにより、GRUB の外部(たとえば UEFI Shell)でも LoadImage/StartImage UEFI 関数を使用して任意の efi 実行ファイルをロードできるようになり、shim の堅牢化をバイパスできます。
Stage 3: GRUB2 はよく知られた汎用ブートローダーです。追加の検証なしで Linux カーネルをロードする (linux/linuxefi コマンド)、.efi バイナリをメモリにロードしてそのエントリポイントにジャンプする (chainloader コマンド)、および shim に対して「参加ブートローダー」を模倣するようにパッチが適用されています。
このトピックに関する私の記事: Exploiting signed bootloaders to circumvent UEFI Secure Boot(ロシア語版もあります)
Super UEFIinSecureBoot Disk GRUB2 は suisbd=1 変数を設定します。これは、複数のブートローダー間で共有される grub.conf 内で、ディスクのパッチ適用済み GRUB2 を検出するために使用できます。
バージョン 3 以降、GRUB は標準の UEFI .efi ファイルローダーを使用します(内部ローダーの実装にいくつかの問題があるため)。内部ローダーを使用するには、GRUB 設定ファイルに set efi_internal_loader=1 を追加してください。どちらの方法でも信頼できない .efi ファイルをロードできます。