BitLockerの暗号化をバイパスできるWinRE(回復環境)の脆弱性解消法、隠しフォルダ対応も忘れずにTech TIPS

Windows OSが起動しなくなった際などに利用する「Windows回復環境」(WinRE)に、BitLockerによる暗号化機能をバイパスする脆弱(ぜいじゃく)性が見つかった。Windows 10/11に対し、更新プログラムを適用することで、システム上のWinREの脆弱性は解消できる。しかし、Windows 10/11が起動しなくなった際に使われる、隠しパーティションに格納されているWinREに対して脆弱性を解消するには、手動による更新プログラムの適用が必要になる。その方法を紹介しよう。

» 2023年03月27日 05時00分 公開
[小林章彦デジタルアドバンテージ]

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

「Tech TIPS」のインデックス

連載目次

対象:Windows 10/11


隠しパーティションのWinREに更新プログラムを適用するには 隠しパーティションのWinREに更新プログラムを適用するには
Windows OSが起動しなくなった際などに利用する「Windows回復環境」(WinRE)にBitLockerによる暗号化機能をバイパスする脆弱(ぜいじゃく)性が見つかった。Windows 10/11が起動しなくなった際に使われる、隠しパーティションに格納されているWinREに対して脆弱性を解消するには、手動による更新プログラムの適用が必要になる。その方法を紹介する。

 Windows OSが起動しなくなったり、トラブルシューティングのために更新プログラムをアンインストールしたりする場合、「Windows回復環境」(Windows Recovery Environment:WinRE)を起動することで、復旧が行える場合がある。Windows OSが起動できる場合、[Shift]キーを押しながら[スタート]メニューの[再起動]を選択することで、WinREが起動できる。

 Windows OSが起動しない場合でも、不具合による再起動が繰り返されると自動的に、ディスクの隠しパーティションに格納されているWinREが起動するようになっている。

 Microsoftによれば、このWinREにBitLockerによる暗号化機能をバイパスする脆弱(ぜいじゃく)性「CVE-2022-41099」が見つかったということだ(脆弱性の概要は、MSRC「BitLockerのセキュリティ機能のバイパスの脆弱性」参照のこと)。

 攻撃者がこの脆弱性を悪用した場合、BitLockerによる暗号化をバイパスして、ディスクから情報を盗むことができるようになるということだ。ノートPCなどが盗まれた場合、BitLockerで暗号化していても、この脆弱性を解消していない状態では、攻撃者によって大事なデータが漏えいする危険があるので、早急に脆弱性を解消した方がよい。

 Windows 10/11のシステム上にあるWinREについては、既に2023年1月10日(米国時間)に提供された累積更新プログラムによって脆弱性が解消されているので、Windows Updateにより、更新プログラムを適用すればよい(更新プログラムの概要は、「2023年1月10日 - KB5022303 (OS ビルド 22621.1105)」参照のこと)。

 ただ、この更新プログラムが適用されるのはシステム上のWinREのみであり、ディスクの隠しパーティションに格納されているWinREの脆弱性は解消されない。隠しパーティションに格納されているWinREの脆弱性を解消するには、別途操作が必要になる。その方法を解説しよう。

隠しパーティションに格納されているWinREの脆弱性を解消する

 隠しパーティションに格納されているWinREに対して更新プログラムを適用するには、技術ドキュメント「Windows REに更新パッケージを追加する」によると、コマンドを使ってWindows REイメージ(winre.wim)をマウントして、更新プログラムの適用を行わなければならず、ハードルが高い作業となっている。

 そのためか、MicrosoftからWindows REイメージに更新プログラムを適用するPowerShellスクリプトが提供されている。このスクリプトを使うのが簡単で、トラブルも少ないだろう。

 ただ、スクリプトは、「KB5025175: CVE-2022-41099のセキュリティの脆弱性に対処するために、展開されたデバイスのWinREパーティションを更新する」ページに記載されたものをコピーして実行する必要がある。

 「PatchWinREScript_2004plus.ps1 (推奨)」欄の「PatchWinREScript_2004plus.ps1」部分を展開し、表示されたスクリプトの「################」から「Remove-Item $mountDir -Recurse」までを「メモ帳」アプリを開いてコピーし、「PatchWinREScript_2004plus.ps1」という名前で[Temp]フォルダなど適当なフォルダに保存する。

更新プログラムを適用するPowerShellスクリプトをコピーする(1) 更新プログラムを適用するPowerShellスクリプトをコピーする(1)
Webブラウザで「KB5025175: CVE-2022-41099のセキュリティの脆弱性に対処するために、展開されたデバイスのWinREパーティションを更新する」ページを開き、 「PatchWinREScript_2004plus.ps1 (推奨)」欄を展開する。
更新プログラムを適用するPowerShellスクリプトをコピーする(2) 更新プログラムを適用するPowerShellスクリプトをコピーする(2)
「PatchWinREScript_2004plus.ps1」部分を展開し、表示されたスクリプトの「################」から「Remove-Item $mountDir -Recurse」までを「メモ帳」アプリを開いてコピーし、「PatchWinREScript_2004plus.ps1」という名前で[Temp]フォルダに保存する。

 次に、以下のURLでMicrosoft Updateカタログを開き、適用対象となるWindows OSのプラットフォーム(x64かARM64)の「2023-02 Dynamic Update for Windows 11 Version 22H2」の[ダウンロード]ボタンをクリックし、更新プログラムのダウンロードを行っておく(x64版の場合、「windows11.0-kb5023527-x64_076cd9782ebb8aed56ad5d99c07201035d92e66a.cab」がダウンロードできる)。この更新プログラムは、Windows 11だけでなく、Windows 10 May 2020 Update(バージョン2004)以降も対象となっている。

適用する更新プログラムをダウンロードする(1) 適用する更新プログラムをダウンロードする(1)
WebブラウザでMicrosoft Updateカタログを開き、WinREに適用する更新プログラムの右側にある[ダウンロード]ボタンをクリックする。
適用する更新プログラムをダウンロードする(2) 適用する更新プログラムをダウンロードする(2)
別ウィンドウでこの画面が開くので、リンクをクリックして、cabファイルをダウンロードする。ダウンロードしたcabファイルは、先ほど「メモ帳」アプリで作成したps1ファイルと同じフォルダ([Temp]フォルダ)に移動しておく。

 ダウンロードしたcabファイルは、先ほどコピーしたps1ファイルと同じフォルダに移動しておくとよい。

 ここでPowerShell(またはターミナル内のPowerShell)を管理者権限で起動する。それには[スタート]メニューあるいは検索などで見つけたPowerShellまたはターミナルのアイコンを、[Shift]+[Ctrl]キーを押しながらクリックする。

 後は「PatchWinREScript_2004plus.ps1」を保存したフォルダにカレントを移動し、実行すればよい。このときファイル名先頭の数文字(例えば「patch」)を入力してから[Tab]キーを押すと、ファイル名全体が補完される。

 ただし、PowerShellスクリプトの実行がポリシーによって制限されている場合は、エラーとなり、実行できないことがよくある。このとき、「Get-ExecutionPolicy」コマンドレットを実行すると、実行ポリシーとして「AllSigned」「Default」「RemoteSigned」「Restricted」のいずれかが表示されるはずだ。

デフォルトではスクリプトは実行できない デフォルトではスクリプトは実行できない
デフォルトでは、PowerShellスクリプトの実行がポリシーによって制限されていて、このようにエラーが表示されてしまうことがよくある。その場合は実行ポリシーを変更するか、下記のコマンドレットで一時的に実行を許可しつつスクリプトを実行する。

 その場合は、以下のコマンドレットで実行すればよい。

PowerShell -ExecutionPolicy RemoteSigned .\PatchWinREScript_2004plus.ps1

一時的に実行ポリシーを変更しつつPowerShellスクリプトを実行するコマンドレット

 ps1ファイルを実行すると、「packagePath:」と聞かれるので、ここでMicrosoft Updateカタログからダウンロードしたcabファイル名の保存先パスを含めて指定する(ps1ファイルと同じフォルダに保存している場合は、cabファイル名のみ指定すればよい)。

 PowerShellスクリプトによって、Windows REイメージのマウントが行われ、更新プログラムの適用などが行われる。

ps1ファイルを実行する(1) ps1ファイルを実行する(1)
上記のコマンドレットでps1ファイルを実行すると、「packagePath:」と聞かれるので、ここでMicrosoft Updateカタログでダウンロードしたcabファイルを指定する。
ps1ファイルを実行する(2) ps1ファイルを実行する(2)
cabファイルが読み込まれ、更新プログラムが隠しパーティションにあるWinREに適用される。これで脆弱性が解消される。

Copyright© Digital Advantage Corp. All Rights Reserved.

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

注目のテーマ

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

RSSについて

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

メールマガジン登録

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