Windowsのセキュアブートをすり抜ける「UEFIブートキット」への一歩進んだ対策、施行フェーズに備えて現時点での副作用を知る検証! Microsoft & Windowsセキュリティ(1)

本連載では、主にMicrosoftの製品およびサービスに実装されたセキュリティ機能や、更新プログラムなどによって実施されたセキュリティ強化策について検証し、可能な場合は具体的な影響例を示します。第1回は、2023年5月のセキュリティ更新プログラムで初期展開フェーズが始まったセキュアブートに関わる脆弱性対策を解説します。

» 2023年06月14日 05時00分 公開
[山市良テクニカルライター]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「検証! Microsoft&Windowsセキュリティ」のインデックス

検証! Microsoft&Windowsセキュリティ

2023年5月のセキュリティ更新に含まれていた3つの重大な脆弱性への対応

 2023年5月のセキュリティ更新プログラムには、最大深刻度「重要」の以下の3つの脆弱(ぜいじゃく)性問題に対する修正が含まれています。


 (1)(2)は悪用の事実が確認されているゼロデイ攻撃の脆弱性であり、早急な適用を呼び掛ける記事を見た方も多いでしょう。これらの脆弱性は、広範囲のWindows OSに存在するもので、製品ライフサイクルサポート期間中の全てのWindowsに対し、累積的な更新プログラムに含める形で修正されました。おそらく、更新プログラムが提供されていない多くのレガシーなWindows OSにも、関連する機能(例えば「セキュアブート」など)を備えているのであれば、同じ脆弱性が存在し、そして放置されていることになります。

 また(2)の「セキュアブートの脆弱性」は、Linuxも影響を受けるものであり、Linuxを利用している場合はLinux側での対応が必要です(WindowsとLinuxのマルチブートは注意が必要です)。

セキュアブートの脆弱性への対応はまだ初期展開フェーズ、完全対策は先送り

 ゼロデイ脆弱性には、更新プログラムのインストールで対策されますが、それだけでは不十分なこともあります。例えば、Microsoftはこれまでも「セキュアブートのセキュリティ機能のバイパスの脆弱性」への対策として、「Windowsブートマネージャー(Bootmgr)」を更新してきました(「BlackLotus」UEFIブートキットとして知られるCVE-2022-21894などへの対応として)。

 しかし、影響を受けるバイナリ(有効な署名のある古いWindowsブートマネージャーのバイナリ)が「UEFI失効リスト」に追加されてこなかったため、対策済みのデバイスでもこの脆弱性を悪用できる場合があったようです。

 今回、2023年5月の「セキュアブートのセキュリティ機能のバイパスの脆弱性」への対策は、これまでとは少し異なります。2023年5月の更新プログラムのインストール直後時点では、まだこれまでの対策と同じように、Windowsブートマネージャーが更新されるだけです。これはまだ初期展開フェーズであり、CVE-2023-24932に対する保護は完全には有効にはなっていません(画面1)。

画面1 画面1 左は2023年3月の更新後のEFIシステムパーティション(ESP)内のブートマネージャー関連ファイル。右は2023年5月の更新後の関連ファイルで、ブートマネージャーが更新されている(実は、2023年4月にも更新されている)

 CVE-2023-24932に対する保護を完全にするには、「UEFI失効リスト」に基づいてWindowsブートマネージャーの古いバイナリを失効する必要があります。この保護の完全な実施には、信頼できないモジュールによる攻撃に対する軽減策も含まれます。

 2023年5月の更新プログラムには、失効に必要な「コード整合性ポリシー(SKUSiPolicy.p7b)」と「UEFI禁止リスト(DBX)」が含まれますが、まだ実施されていません。コード整合性ポリシーは、セキュアブートが有効なときに、信頼できないWindowsブートマネージャーがロードされるのをブロックするもので、UEFI禁止リストは、信頼できないモジュール(BlackLotus UEFIブートキットなど)のロードをブロックするために使用されます。

 現時点でも失効を手動で実施することは可能ですが、現時点で失効を実施した場合の影響範囲の大きさ、誤操作によるシステム破壊(起動不能になるなど)のリスクなどもあって、後2つのフェーズが用意されています。

 2番目のフェーズは2023年7月12日(日本時間)の累積的な更新プログラムで行われ、失効を簡単に実施できる機能の実装、失効の展開が成功したかどうかを報告する新しいイベントログの追加、「Windows回復環境(WinRE)」用の動的更新パッケージの提供が予定されています。

 最後の施行フェーズは2024年第1四半期に予定されており、失効の展開が強制されることになります。

 このような段階的な措置の場合、予定が先送りされることがよくありますが、Microsoftは今回の施行フェーズを可能な限り前倒ししたいようです。詳しくは、以下のドキュメントで説明されていますが、内容の変更が予告されているので、最新情報を確認してください。

今、古いバイナリの失効を実施すると……

 初期展開フェーズの現時点でも、古いバイナリの失効を展開することが可能です。失効を展開しても、通常の利用にはほとんど影響しないはずです。

 現時点で影響があるのは、失効デバイスを起動できるように更新されていない起動可能メディアや、更新されていないネットワークブート環境です。

 例えば、トラブルシューティングのための外部メディア(カスタムメディア、OEM提供のリカバリーツール、リカバリーパーティションなど)での起動や、ネットワーク経由でのOS展開作業に影響します。また、システムイメージのリストアにも影響することが分かっています。非対応のOS(未対策のLinuxを含む)とのマルチブート環境にも影響する可能性があります。詳しくは、前述したKB5025885のドキュメントを参照してください。

 どのような影響があるのか、その一部を仮想マシン環境で再現してみました。古いバイナリの失効を展開する手順についてここで詳しく説明するつもりはありませんが、現時点ではコマンドライン操作でコード整合性ポリシーをEFIシステムパーティションのしかるべき場所にコピーし、レジストリを操作してDBXの更新を有効にし、何度か再起動した後、イベントログでUEFI禁止リストの更新プログラムが適用されたことを確認します(画面2)。

画面2 画面2 コマンドライン操作でコード整合性ポリシーのコピーとUEFI禁止リストの有効化(画面左)、失効後、UEFI禁止リストの更新プログラムの適用を確認(画面右)

 詳しく説明しないのは、現時点ではこれから示すような影響があるため、今実施することをお勧めしないからです。また、2023年7月に予定されている2番目のフェーズで、より簡単な実施方法が提供されるだろうからです。今回の措置やセキュアブートの仕組みを理解しており、起動不能になっても自分で修復できるというのであれば、今すぐ失効を展開しても問題ないでしょう。

 今回問題となっているUEFIブートキットは販売されており、悪用が確認されています。特に、デバイスが悪意のある第三者に物理的にアクセス可能になるリスクがある場合は(モバイルPCの紛失、盗難など)、すぐにでも実施したいかもしれません。

失効の影響:リカバリードライブ、システム修復ディスクでは起動不能になる

 古いバイナリの失効を展開したデバイスでは、Windowsで作成したリカバリードライブやシステム修復ディスクからデバイスを起動することが現時点ではできなくなります(画面3)。

画面3 画面3 Windowsの作成ツールで作成したリカバリードライブ(USBメモリや外付けHDD)やシステム修復ディスク(CD/DVD)では、失効を展開したデバイスを起動できなくなる。起動可能メディア側の対応が必要

 これは、2023年5月の更新プログラムが適用されたWindowsに含まれる作成ツール(RecoveryDrive.exeやRecDisc.exe)で作成した新しいドライブやメディアでも変わりません。

 作成ツールでの対応は2023年5月の更新プログラムには含まれておらず、「リカバリードライブ作成ツール」(RecoveryDrive.exe)については今後のリリースで実装される予定です。「システム修復ディスク」(RecDisc.exe)の作成ツールについては言及がありません。

 「Windowsプレインストール環境(WinPE)」のカスタムメディアやOEM提供のリカバリーツール、OEMが準備したリカバリーパーティション内のツールの起動も同様の影響を受ける可能性があります。そのため、起動可能メディアの対応が進み、入手できるようになるまで、失効の展開は実施しないことをお勧めします。

 筆者が確認した限りでは、2023年5月の更新プログラムが適用されたWindowsで作成したリカバリードライブの適切な場所に、コード整合性ポリシーのファイルを配置することで、失効を展開済みのデバイスの起動ができるようになりました。

 なお、ローカルの回復パーティションやWindowsセットアップメディアからのWindows回復環境(WinRE)の起動と使用には影響はありませんでした。

失効の影響:2023年5月の更新プログラム適用前のバックアップは使えなくなる

 失効を展開済みのデバイスに対して、2023年5月の更新プログラム適用前に取得したシステムイメージのバックアップをリストアすると、リストア後、リストアされたOSは起動不能になります(画面4)。そのため、失効を展開する前に、2023年5月の更新プログラム適用後の安定稼働している状態のフルバックアップを取得して、バックアップをリフレッシュしておくことを強くお勧めします。

画面4 画面4 2023年5月の更新プログラム適用前に取得したシステムイメージのバックアップをリストアすると、リストア後のOSは起動不能になる

 フルバックアップをリストアすれば、ディスクの状態をバックアップ時点に完全に元に戻すことができるのに、なぜ起動不能になるのか不思議に思うかもしれませんが、これはセキュアブートのセキュリティ機能の正しい挙動です。

 リストア後のEFIシステムパーティションには、失効された古いWindowsブートマネージャーのバイナリが入っています。その失効情報はディスク上ではなく、UEFIハードウェア(UEFI ROM)に存在するので、ディスク上のWindowsブートマネージャーがロードされることはありません。この辺りのセキュアブートの挙動については、『インサイドWindows第7版 下』(日経BP社、筆者訳)の第12章「スタートアップとシャットダウン」で詳しく説明されています。

セキュアブートを一時的にオフにすれば影響を回避できる

 起動可能メディアで起動できなくなることや、リストア後にOSが起動しなくなる影響は、UEFIファームウェアの設定でセキュアブートを一時的にオフにすることで回避できます(画面5)。

画面5 画面5 セキュアブートをオフにすることで、リストアした古いOSイメージで起動することはできる

 そのため、外部メディアを使用したトラブルシューティングもできますし、以前のバックアップが全く無駄になるわけではありません。しかし、クラウド上のインスタンスなど、物理的にアクセスできない環境において失効を今展開してしまうと、回復不能な状態に陥るリスクがあります。

 2024年第1四半期に予定されている施行(強制)フェーズまでには、影響のほとんどは軽減されているはずですが、可能性のある影響を事前に知っていれば素早く、適切な対応ができるでしょう。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP 2008 to 2023(Cloud and Datacenter Management)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。Microsoft製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows版Docker&Windowsコンテナーテクノロジ入門』(日経BP社)、『ITプロフェッショナル向けWindowsトラブル解決 コマンド&テクニック集』(日経BP社)。


Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。