セキュアブート緩和オーケストレータースクリプト
概要
このPowerShellスクリプトは、マイクロソフトセキュリティガイダンスに記載されているCVE-2023-24932のセキュアブート緩和手順を自動化します。レジストリの更新、再起動、イベントログの検証を含むプロセス全体を処理し、システムをBlackLotus UEFIブートキットから保護します。
特徴
- 完全自動オーケストレーション: スクリプトが複数回の再起動を含む各手順を案内し、各再起動後に自動的に再開します。
- イベントログ検証: 特定のイベントID(例: 1799、1037)をチェックして、更新が成功したことを確認します。
- BitLocker対応: BitLockerが有効な場合に警告し、回復キーがあることを確認します。
- ハードウェア互換性チェック: サポートされていない構成(例: Windows Server 2012/R2上のTPM 2.0)では実行をブロックします。
- 手動検証オプション: ブートマネージャーの署名とセキュアブートデータベースの手動チェックを可能にします。
実行手順
このスクリプトは公式のマイクロソフトガイダンスに従い、以下の手順を順番に実行します:
-
DB更新 (0x40)
- "Windows UEFI CA 2023" 証明書をセキュアブートデータベース(DB)に追加します。
- 2回の再起動が必要です。
-
ブートマネージャー更新 (0x100)
- ブートマネージャーを "Windows UEFI CA 2023" 証明書で署名されたバージョンに更新します。
- 2回の再起動が必要です。
-
手動検証(オプション)
- 手動による署名検証のため、ブートマネージャー(
bootmgfw.efi)をコピーします。
- "Windows UEFI CA 2023" 証明書がDBに存在するかどうかを確認します。
-
DBX更新 (0x80)
- "Windows Production PCA 2011" 証明書をセキュアブート禁止署名データベース(DBX)に追加します。
- この証明書で署名された旧バージョンのブートマネージャーをブロックします。
- 2回の再起動が必要です。
-
SVN更新 (0x200)
- ロールバック攻撃を防ぐため、セキュアブートのセキュアバージョン番号(SVN)を更新します。
- 2回の再起動が必要です。
-
最終レポート
- セキュアブート構成とイベントログエントリの概要を表示します。
前提条件
- Windowsバージョン: Windows 10/11、Windows Server 2016/2019/2022以降。
- 管理者権限: スクリプトは管理者として実行する必要があります。
- セキュアブートが有効であること: システムのUEFIファームウェアでセキュアブートが有効になっていることを確認してください。
- BitLocker回復キー: BitLockerが有効な場合は、回復キーがあることを確認してください。
使用方法
-
スクリプトをダウンロードします:
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/helleflo1312/Orchestrated-Powerhell-for-CVE-2023-24932/refs/heads/main/CVE-2023-24932-automation.ps1" -OutFile "CVE-2023-24932-automation.ps1"
-
管理者としてスクリプトを実行します:
.\CVE-2023-24932-automation.ps1
-
画面の指示に従ってください。スクリプトが再起動を含む各手順を案内します。
ハードウェアチェック:
スクリプトはマイクロソフトセキュリティガイダンスに従って、ハードウェアベンダーと互換性をチェックします。
イベントログ検証
スクリプトは以下のイベントIDをチェックして、更新が成功したことを確認します:
- 1036: DB更新 (0x40) が成功。
- 1799: ブートマネージャー更新 (0x100) が成功。
- 1037: DBX更新 (0x80) が成功。
イベントが見つからない場合、スクリプトは警告を表示しますが、実行は継続します。イベントビューアーを使用してログを手動で確認することもできます。
このスクリプトの実行が成功した後の例:

注意事項
- 元に戻せない変更: DBX更新(0x80)を適用すると、セキュアブートをリセットしない限り元に戻すことはできません。
- 回復メディア: DBX更新を適用する前に、更新された回復メディアがあることを確認してください。更新後、古いメディアは起動できない場合があります。
- テスト: 広く展開する前に、本番環境以外でスクリプトをテストしてください。
トラブルシューティング
- イベントログエラー: スクリプトが期待するイベントIDを見つけられない場合は、システムログでエラーを手動で確認してください。
- BitLocker回復: システムがBitLocker回復モードになった場合は、回復キーを使用してドライブのロックを解除してください。
- ファームウェアの問題: 一部のUEFIファームウェアは必要な更新をサポートしていない場合があります。更新についてはハードウェアベンダーにお問い合わせください。
参考文献
ライセンス
このスクリプトはMITライセンスの下で提供されます。自己責任で使用してください。
貢献
問題が発生した場合や改善の提案がある場合は、GitHubでissueを開くか、プルリクエストを送信してください。
免責事項
このスクリプトは現状のまま提供され、いかなる保証もありません。実稼働システムに展開する前に、必ず本番環境以外でテストしてください。