コンテンツにスキップ
Zenn Dev 8chikuwa3 Articles 271b18d38820b2

再起動を跨いで自律完走するセキュアブート(CVE-2023-24932)自動更新スクリプトの実装

  • URL: https://zenn.dev/8chikuwa3/articles/271b18d38820b2
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: BlackLotusブートキット対策としてMicrosoftが段階的に強制しているセキュアブート証明書更新(CVE-2023-24932)を、WSUS運用かつ完全オフラインの閉域網環境で自動化したPowerShellスクリプトの実装記録。手動では「DB/KEK更新→再起動→ブートマネージャー更新→再起動→DBx失効→SVN更新」という複数回の再起動が必要となるが、スクリプトはUEFI変数とイベントログ1042番をスキャンして現在フェーズを判定し、再起動後も自動でタスクスケジューラから再開して処理を継続させる。最終的に監査ログをファイルサーバへ出力し、スケジュールタスクとスクリプト自身を自己消去するクリーンアップ機能も備える。中途半端な状態(DBxのみ更新済み・SVN未了)への対応リカバリモードも実装されている。

詳細

  • 対象環境: Windows 11 25H2、WSUS運用・完全オフライン(行政機関・厳格エンタープライズ想定)
  • 前提パッチ: 2026年2月の累積更新プログラム適用済み(2025年7月8日リリースの月次パッチを包含)
  • セキュアブートの4鍵: PK(PCメーカー)、KEK(今回: Microsoft Corporation KEK 2K CA 2023 追加)、DB(今回: Windows UEFI CA 2023 追加)、DBX(今回: Microsoft Windows Production PCA 2011 失効)
  • 手動処理ステップと対応レジストリ値:
    • 0x5944: DB/KEK更新準備 → 再起動
    • 0x4000待機: パッチ受け入れ準備
    • 0x280: DBx + SVN を一括適用(旧: 0x80 → 0x200 の2段階)
  • スクリプトの主要機能:
    • Register-ResumeTask: スタートアップトリガー+10分遅延でタスク登録(AC/バッテリー両対応)
    • Invoke-Cleanup: タスク・レジストリ・スクリプト自己消去
    • Wait-ForRegistryValue: レジストリ値ポーリング(30秒間隔・最大10分)
    • Write-AuditLogAndExit: 最終監査ログ(CSV)をファイルサーバへ出力
  • 状態管理: HKLM:\SOFTWARE\ITAdmin\SecureBootUpdate\UpdatePhase に現在フェーズを保存して再起動跨ぎを実現
  • イベントID確認ポイント: TPM-WMI ソース(1036, 1043, 1799, 1808, 1037, 1042)
  • リカバリモード: DBxのみ更新済み・SVN未了の端末を自動検出して 0x200 を単発実行