署名付きブートローダーを悪用してUEFIセキュアブートを回避する方法

2026/02/08 23:40

署名付きブートローダーを悪用してUEFIセキュアブートを回避する方法

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

主旨
現代のPCはUEFI Secure Bootを利用して署名されていないコードの実行をブロックしますが、特別に設計された2つの起動ディスクによってこれらの制限を回避し、Secure Boot を有効にしたまま任意のEFIバイナリを実行できます。

仕組み
Super UEFIinSecureBoot は署名済みのshimローダー、署名チェックを無効化する改変PreLoader、およびカスタムGRUB2を組み合わせています。初回起動時にユーザーはMokManager経由で証明書を選択し、その後ディスクはSecure Boot が無効になったシステムと同様に振る舞い、任意の署名されていない .efi やカーネルをロードできるようになります。
Silent UEFIinSecureBoot は Kaspersky Rescue Disk 18 をベースにしており、署名済みのKasperskyローダーがモジュールをメモリ上で自己ロードし、UEFI LoadImage/StartImage を回避して GRUB が信頼できないコードを静かに実行できるようにします。

背景:Secure Boot は 2013 年に導入されました。ほとんどのマザーボードは Microsoft キーのみを信用するため、ベンダーは Microsoft に署名されたブートローダーを取得しなければなりません。Linux ディストリビューションは shim + PreLoader を使用しますが、GRUB は GPLv3 の下で署名できないためです。Red Hat は危険な機能をブロックしつつ shim で検証されたファイルのみを許可するよう GRUB2 をパッチしました。

影響:これらのディスクは救援ユーティリティやマルチブートオプションなど合法的なメンテナンスツールを提供しますが、起動キットの可能性などセキュリティリスクも伴います。記事では Microsoft が Windows Update を通じて Kaspersky 証明書を取り消すことができると指摘しており、その場合は静かなブート方式に影響が出ます。ユーザーや企業はこれらの機能を認識し、失効リストを監視する必要があります。

本文

読み込み時間 6 分
リーチと読者数 53K
この記事のロシア語版。


現代PCマザーボードのファームウェアは2010年以降UEFI仕様に準拠しています。

2013年には「Secure Boot」と呼ばれる新技術が登場し、ブートキット(起動時に侵入して実行される悪意あるコード)のインストールと実行を防ぐことを目的としていました。Secure Bootは署名されていないまたは信頼できないプログラムコード(.efi プログラム、オペレーティングシステムのブートローダー、ビデオカードやネットワークアダプタのOPROM など)を実行しないようにします。

Secure Boot は任意のリテールマザーボードで無効化できますが、その状態を変更するにはユーザーが物理的にコンピュータにいることが必須です。UEFI 設定は起動時に入力されるため、初めて Secure Boot の設定を変える場合も同様です。

ほとんどのマザーボードは Microsoft キーのみを信頼対象としており、その結果ブート可能ソフトウェアベンダーは自社のブートローダーに Microsoft 署名を求める必要があります。このプロセスにはコード監査手順と、グローバルに信頼されたキーで署名する正当性の説明が含まれます。ディスクや USB フラッシュドライブを Secure Boot モードで動作させたい場合、各コンピュータに手動でキーを追加しない限り、Microsoft から署名を受ける必要があります。

Linux ディストリビューション、ハイパーバイザー、アンチウイルス起動ディスク、コンピュータ回復ソフトウェアの作者も全て Microsoft にブートローダーを署名してもらう必要があります。


Secure Boot で動作する USB 起動ドライブを作る

署名されたブートローダー

Secure Boot が有効な状態で Linux を起動するには、署名済みのブートローダーが必要です。Microsoft は tivoization 制限により GPLv3 ライセンス付きソフトウェアの署名を禁止しているため、GRUB は署名できません。

この問題に対処するため Linux Foundation は PreLoader をリリースし、Matthew Garrett は shim(小型ブートローダー)を開発しました。これらは単一ファイルの署名またはハッシュを検証して実行します。PreLoader と shim は UEFI の db 証明書ストアを使用せず、許可されたハッシュ(PreLoader)や証明書(shim)のデータベースを実行可能ファイル内に組み込みます。

両プログラムは信頼できるファイルを自動的に実行し、Secure Boot モードで以前は不審だったプログラムを起動できますが、ユーザーの物理的存在が必要です。初回実行時には GUI インタフェースから証明書またはハッシュ化対象ファイルを選択し、そのデータはマザーボード上の特別な NVRAM 変数に追加されます。この変数はロードされた OS からアクセスできません。ファイルは PreLoader / shim のみで信頼され、一般的な Secure Boot ではなく、PreLoader や shim が無ければ起動できません。

shim を使った不審ソフトウェアの最初のブート

すべての主要 Linux ディストリビューションは証明書サポートがあるため shim を採用しており、ユーザーの介入なしにメインブートローダー(GRUB2)を更新できます。shim は主に GRUB2 を実行するために使われます。

Red Hat が GRUB2 に適用したパッチ

悪意ある目的で署名済みブートローダーを乱用されないよう、Red Hat は Secure Boot 有効時に「危険な」機能をブロックするパッチを GRUB2 に導入しました。

  • insmod
    /
    rmmod
  • appleloader
  • linux
    linuxefi
    に置き換え)
  • multiboot
  • xnu
  • memrw
  • iorw

chainloader
モジュールは任意の .efi ファイルをロードするために独自の内部 PE ローダーを導入し、UEFI の
LoadImage/StartImage
関数を使わず shim で検証します。これにより UEFI の観点では信頼されていないが shim によって許可されたファイルはロード可能です。この方法の利点は不明ですが、UEFI は検証関数をフックできるため PreLoader と同様の仕組みであり、shim の機能も存在しますがデフォルトでは無効化されています。

署名済み GRUB を使うだけでは要件を満たせません。すべての実行ファイルにキーを追加せずに動作する汎用 USB 起動ドライブを作るには、次の二つの方法があります。

  1. デジタル署名検証やモジュール制限なしで内部 EFI ローダーを持つ改造 GRUB を使用。
  2. UEFI ファイル検証関数(
    EFI_SECURITY_ARCH_PROTOCOL.FileAuthenticationState
    EFI_SECURITY2_ARCH_PROTOCOL.FileAuthentication
    )をフックするカスタムプリローダーを使用。

後者の方法が好ましいです。実行されるソフトウェアは他のプログラムをロード・起動できるため、UEFI シェルでも任意のプログラムを実行できます。一方前者では GRUB のみが任意ファイルを実行可能です。そのため PreLoader を不要な機能削除と検証コードパッチで修正し、すべてを許可する形にします。


ディスクアーキテクチャ

   ______            ______                ______
  ╱│     │          ╱│     │              ╱│     │
 /_│     │    →    /_│     │      →      /_│     │
 │       │    →    │       │      →      │       │
 │  EFI  │    →    │  EFI  │      →      │  EFI  │
 │_______│         │_______│             │_______│

BOOTX64.efi        grubx64.efi        grubx64_real.efi
 (shim)            (FileAuthentication override)

起動フローは次の通りです。

  • MokManager.efi
    (キー登録ツール)が初回起動時に自動で呼び出され、証明書を選択します。
  • その後 Secure Boot が無効化されたかのように機能し、GRUB は任意の unsigned .efi ファイルや Linux カーネルをロードできます。実行中の EFI プログラムは他の不審な実行ファイルやドライバも自由にロードできます。

ディスクには次が含まれます。

  • Super Grub Disk(ブートローダーが壊れていても OS を検索・起動するスクリプト)
  • GRUB Live ISO Multiboot(ISO から直接 Linux ライブディストリビューションをロードするスクリプト)
  • One File Linux(カーネル+initrd が一つのファイルにまとめられたシステム復旧用)
  • 複数の UEFI ユーティリティ

UEFI で Secure Boot を無効化した状態でも、また BIOS の古い PC でも動作します。


初回起動時のキー登録をバイパスする方法

shim を通じて初回起動時のキー登録を迂回できるか疑問に思いました。実際に期待以上に柔軟なローダーが存在します。その一例として Kaspersky Rescue Disk 18(アンチウイルス起動ディスク)があります。GRUB は

insmod
でモジュールをロードできますが、GRUB のモジュールは実行可能コードです。ディスク上のプリローダーはカスタムです。

単に GRUB を使って不審なコードをロードすることはできません。GRUB が UEFI の

LoadImage/StartImage
を使用しないように改造し、.efi ファイルをメモリへ自前でロードし、PE ヘッダー解析・再配置・エントリポイントへのジャンプを行う必要があります。このコードは Red Hat の GRUB Secure Boot リポジトリにほぼ揃っており、PE ヘッダーパーサだけが欠けています。GRUB は shim や PreLoader を介してヘッダー解析を実装できます。

この方法で Silent UEFIinSecureBoot Disk が作成されました。最終的なディスクアーキテクチャは次の通りです。

   ______            ______                ______
  ╱│     │          ╱│     │              ╱│     │
 /_│     │         /_│     │      →      /_│     │
 │       │         │       │      →      │       │
 │  EFI  │         │  EFI  │      →      │  EFI  │
 │_______│         │_______│             │_______│

BOOTX64.efi        grubx64.efi        grubx64_real.efi
 (Kaspersky Loader) (FileAuthentication override)

fde_ld.efi + custom chain.mod
(Kaspersky GRUB2)。


結論

Microsoft キーで署名された信頼できるブートローダーが十分にないことを実証しました。署名済み Kaspersky Rescue Disk のファイルを使用することで、Secure Boot が有効な状態でも任意の不審 .efi ファイルをサイレント起動できます。これは UEFI db や shim MOK に証明書を追加せずに実現されます。

これらのファイルは USB フラッシュドライブから安全に起動するためにも、また悪意あるブートキットを所有者の同意なしにインストールするためにも利用可能です。Kaspersky のブートローダー署名は長く存続しない可能性が高く、Windows 10 の Windows Update を通じて UEFI 証明書失効リストに追加されると Kaspersky Rescue Disk 18 と Silent UEFIinSecureBoot Disk は動作しなくなります。


ZeroNet について

ZeroNet は分散型・分散型ダイナミックウェブサイトとサービスの強力なシステムです。ユーザーは訪問時にウェブサイトデータをダウンロードし、シーディングします(BitTorrent の原理)。他の類似システムとは異なり、ZeroNet はコメント付きブログ、フォーラム、ビデオホスティング、ウィキ、チャット、メール、Git などフル機能を持つサイトを作成できます。

ZeroNet はデータとコードを分離し、.json ファイルに保存されたデータを SQLite データベースへ統合します。これにより開いている全ウェブサイトをミリ秒単位でローカル検索でき、リアルタイム RSS ライクな更新ストリームも可能です。OAuth 類似の標準化認証、NAT および Tor サポートを備え、速く使いやすく、すべてのサイトに対してグローバルな昼夜テーマ切替機能付きモダン UI を提供します。

ZeroNet は過小評価されていると考えており、サイレント版ディスクを ZeroNet Git にアップロードしたのは新規ユーザー獲得のためです。

同じ日のほかのニュース

一覧に戻る →

2026/02/08 12:09

ご協力いただけるとのこと、ありがとうございます! 整えたいテキストをお送りください。すぐに丁寧に仕上げさせていただきます。

## Japanese Translation: ``` ## Summary Vouch は、貢献者がコードベースの設定可能な部分と対話する前に「証明(vouch)」される必要がある軽量なコミュニティトラスト管理システムです。また、明示的に「非承認(denounce)」を行うことでそのような対話をブロックできます。信頼関係は単一のフラット `.td` ファイル(Trustdown フォーマット)に保存されます。このファイルでは各行が1つのハンドルを保持し、オプションでプラットフォーム接頭辞(`platform:username`)と先頭マイナス記号が付けられたユーザーは非承認者として扱われ、その後に任意の理由が続きます。GitHub Actions は標準搭載の統合を提供します: - `check-pr` は `pull_request_target` で実行され、PR 作成者のステータスを検証し、未承認または非承認のプルリクエストを自動的に閉じることができます。 - `manage-by-discussion` と `manage-by-issue` は協力者がディスカッションやイシューコメントを通じて証明または非承認を行えるようにします。 Nushell CLI モジュールにより手動制御も可能です:`vouch add <user>`、`vouch denounce <user> [--reason] --write`、`vouch gh-check-pr <pr_id> --repo owner/repo`(ドライランまたは自動閉鎖)、および `vouch gh-manage-by-issue <pr_id> <comment_id> --repo owner/repo` などのコマンドがあります。ステータスチェックは終了コードを返します(`0 = vouched`、`1 = denounced`、`2 = unknown`)。 Vouch は任意のコードフォージで動作するよう設計されていますが、GitHub 統合がすぐに使用できる状態で提供されます。現在は実験段階であり、Ghostty プロジェクトによってテスト中です。このプロジェクトはコミュニティからのフィードバックをもとに機能を洗練しています。今後の計画としては、リポジトリ間で信頼リストをリンクし信頼ネットワークを構築すること、プラットフォームサポートの拡張、および自動化機能の強化が挙げられます。 *検証された参加を強制することで、Vouch は悪意ある貢献を減らし、コードレビューのワークフローを合理化し、安全なコラボレーションをオープンソースメンテナ、企業チーム、および広範なソフトウェア開発エコシステムに奨励することを目指します。``` ```

2026/02/09 6:52

米国におけるソーシャルメディア利用の変化 2020–2024:減少・断片化・極化 (2025)

## Japanese Translation: ## Summary: 本研究は、米国におけるソーシャルメディアの利用が縮小し、より断片化していることを示し、残存する活動の中で政治的に極端なユーザーが支配していると結論付けている。2020–2024年の全国代表データを分析した結果、プラットフォーム全体の利用率は減少し、対象者はやや高齢化し教育レベルも上昇しており、投稿活動が共和党ユーザーへと明確にシフトしている—特にTwitter/Xで顕著だ。既存研究では若年層と高齢層の両方で減少傾向が指摘されていたが、本稿は新しいデータを用いてそれらの発見を更新し、TikTokやRedditはわずかに成長しているものの、Facebook、YouTube、Xは市場シェアを失っていることを示唆している。予測される動向として、オンライン公共圏はより小規模で鋭く、極端な意見が支配するようになるとされ、一般ユーザーは離脱しつつも党派的声は依然として高いままである。この結果は、デジタル環境のさらなる分極化を招き、プラットフォームに広範なオーディエンスを維持する課題を投げかけるとともに、広告主や政治戦略家、民主的議論に関心を寄せる政策立案者にも影響を与える可能性がある。 ## Summary Skeleton **What the text is mainly trying to say (main message)** 本研究は、米国におけるソーシャルメディアの利用が縮小し、より断片化していることを示し、残存する活動の中で政治的に極端なユーザーが支配していると結論付けている。 **Evidence / reasoning (why this is said)** 全国代表性のある2020–2024年のANESデータは、全体的なプラットフォーム利用率の低下、やや高齢化し教育レベルが上昇したオーディエンス、および投稿活動が共和党ユーザーへとシフトしている—特にTwitter/Xで顕著だという事実を示している。 **Related cases / background (context, past events, surrounding info)** 以前の分析では若年層と高齢層の両方で利用減少が報告されており、本稿は新しいデータでそれらの発見を更新し、TikTokやRedditはわずかに成長している一方でFacebook、YouTube、Xは市場シェアを失っていることを指摘している。 **What may happen next (future developments / projections written in the text)** オンライン公共圏は小規模で鋭く、よりイデオロギー的に極端になると予測されており、カジュアルユーザーは離脱しつつも党派的声は依然として発言力を保っている。 **What impacts this could have (users / companies / industry)** ユーザーはより分極化したデジタル環境に直面し、プラットフォームは広範なオーディエンスの維持に課題を抱えることになる。トレンドは広告主や政治戦略家、民主的議論に関心を寄せる政策立案者にも影響を与える可能性がある。

2026/02/09 7:25

SGI O2 のプロンプトを逆解析する (原文: “Reverse Engineering the Prompt for the SGI O2”)

## Japanese Translation: > 著者は **`ip32prom-decompiler`** を開発しました。このツールは、SGI O2 マシンで使用されている 512 KiB の IP32 PROM を *ビット単位で同一* な MIPS アセンブリ (.S) ファイルに逆アセンブルし、ラベル、コメント、および関数境界を完全に含みます。 > > 各「SHDR」セクション(長さ・名前・バージョン・タイプフラグ(コード/メタデータ)・任意のメタデータ・2 つのチェックサム)を解析することで、ツールはファームウェアの 3 つのサブセクションを再構築します:`.text` は `0x81000000` に、`.rodata` は `0x81048e70` に、そして `.data` は `0x81054100` に配置されます。チェックサムアルゴリズムは 32‑ビット語全体の 2 の補数和であり、セクションデータと SHDR 自体の両方に適用されます。 > > 到達可能なコードを幅優先探索し、相対/絶対分岐、ジャンプテーブル、および構築されたアドレスに特別な処理を行うことで、バイナリ命令の約 **90 %** を回復します。可視化(XPM 画像)はコード、ヘッダー/チェックサム、ASCII データ、アクセス済みメモリ、nop パディング、および未知のバイトを色分けし、手動解析を支援します。また、コンパイラ遅延スロットによって導入された到達不能またはデッドコードが検出され、注釈付きで記録されます。 > > 逆アセンブルされたアセンブリは同一の ROM イメージに再構成でき、PROM 構造を完全に理解していることを確認します。ファームウェアがこれからゼロから再構築可能になったため、将来の CPU アップグレード(例:新しいプロセッサの導入)は SGI のサポートに依存せずに実行できるようになり、O2 の PROM が変更不可能であるという長年の制約を克服します。この成果は、ホビイストやレトロコンピューティング愛好者に対しても、レガシーファームウェアのリバースエンジニアリング手法として信頼性の高い方法を提供します。 *この改訂版サマリーは、リストからすべての主要ポイントを取り入れつつ、曖昧または推測的な表現を排除して明確に保っています。*