Windows Downdate攻撃から身を守る方法

Windows Downdateは、最新バージョンのOSを古いバージョンにロールバックさせ、脆弱性が残る状態を復活させ、攻撃者がシステムを容易に侵害できるような状態にする攻撃です。この攻撃のリスクを低減するにはどうしたらよいでしょうか?

OSを含むすべてのソフトウェアには脆弱性が存在するため、定期的な更新によるパッチの適用は必須です。Windows Downdate(ウィンドーズ・ダウンデート)攻撃を考案したリサーチャーは、まさにこの更新の仕組みを標的としています。完全に更新されたWindowsシステムを秘密裡に、脆弱なファイルやサービスを含む以前のバージョンにロールバックさせることを目的としています。この攻撃が成功すると、ハイパーバイザーやセキュアカーネルを含めたシステムが、よく知られた脆弱性攻撃や深刻なレベルのセキュリティ侵害にさらされます。さらに悪いことに、標準的な更新やシステム健全性チェックを行っても、すべて最新の状態で問題がないと報告されてしまいます。

攻撃の仕組み

リサーチャーが実際に発見したのは、2つの結果で、これらの動作メカニズムは若干異なっています。CVE-2024-21302というIDが割り当てられ「Downdate」と呼ばれているこの脆弱性は、更新プログラムのインストールプロセスの欠陥に基づいています。ダウンロードされた更新コンポーネントは管理下に置かれ、変更からも保護されている上にデジタル署名もされていますが、インストールの中間段階(再起動の合間)のいずれかにおいて、計画された動作のリストを含むファイル(pending.xml)が更新手順で作成され、使用されます。攻撃者がそのファイルの独自のバージョンを作成し、レジストリにそのファイルに関する情報を追加することができた場合、Windows Modules Installerサービス(TrustedInstaller)は、再起動時にその中の命令を実行します。

実際には、pending.xmlの内容は検証されますが、これは以前のインストール段階で実行されており、TrustedInstallerによる再検証は行われません。もちろん、この方法でファイルに任意の記述を書き加えたり、任意のファイルをインストールしたりすることは不可能です。なぜなら、Microsoftによる署名が必要だからです。しかし、Microsoftが開発したファイルの古いバージョンで、システムファイルを置換することは十分に可能です。これによって、重要な脆弱性を含め、長期に渡りパッチが適用されてきた脆弱性が、システムに再発する可能性があります。pending.xmlに関連する必要なキーをレジストリに追加するには、管理者権限が必要であり、その後にシステムを再起動する必要があります。ただし、重大な制限はこれだけです。この攻撃は、権限の昇格(Windowsがディスプレイを暗転させ、管理者に追加の許可を要求する動作を伴います)を必要とせず、ほとんどのセキュリティツールは、攻撃中に実行された動作に対して疑わしいという判断を下しません。

2番目の脆弱性(CVE-2024-38202)を悪用すると、更新システムが以前のWindowsインストールを保存する「Windows.old」フォルダーを攻撃者が操作できるようになります。このフォルダー内のファイルを変更するには特別な権限が必要であるにもかかわらず、通常のユーザー権限を持つ攻撃者がフォルダー名を変更し、新しいWindows.oldを最初から作成し、その中にWindowsシステムファイルの古く脆弱なバージョンを置くことができるようになってしまいます。システムの復元を開始すると、Windowsは脆弱なインストールにロールバックされます。システムの復元には特定の権限が必要ですが、これは管理者権限ではなく、一般ユーザーに許可されることもあります。

VBSバイパスとパスワード窃取

2015年以降、Windowsカーネルの侵害がシステム全体の侵害につながることを防止するために、Windowsアーキテクチャが再設計されました。これには、仮想化ベースのセキュリティ(VBS)と総称される一連の対策が関与しています。その中でもシステムハイパーバイザーは、OSコンポーネントを分離し、機密性の最も高い操作の実行やパスワードの保存などに使用するセキュアなカーネルの作成に使用されます。

攻撃者によるVBSの無効化を防ぐため、管理者権限でも無効化できないようにWindowsを設定することができます。この保護を無効にする唯一の方法は、特殊なモードでコンピューターを再起動し、キーボードコマンドを入力することです。この機能はUEFI(Unified Extensible Firmware Interface)ロックと呼ばれます。Windows Downdate攻撃はファイルを書き換え、古く脆弱なバージョンに置換することにより、この制限も回避します。VBSはシステムファイルの最新性をチェックしないので、検知すべき兆候もエラーメッセージもなく、古く脆弱なバージョンと置換されてしまう可能性があります。つまり、VBSは技術的には無効になっていないのですが、その機能がセキュリティとしての役割を果たさなくなるということです。

この攻撃により、セキュアカーネルとハイパーバイザーのファイルが、複数の脆弱性を抱える2年前のバージョンに置換され、その脆弱性を悪用されると権限の昇格を許してしまう結果となります。これにより、攻撃者は最大限のシステム権限、ハイパーバイザーやメモリ保護プロセスへのフルアクセス権限を獲得し、資格情報、ハッシュ化されたパスワード、さらにはNTLMハッシュ(ネットワーク攻撃の拡大に使用可能)をメモリから簡単に読み取ることができるようになります。

ランサムウェアからの保護

Microsoftは、2024年2月にDowndateの脆弱性について報告を受けていましたが、月例のセキュリティ更新プログラムのロールアウトの一環として詳細が発表されたのは、8月になってからでした。バグの修正は、副作用を伴う困難な作業であることが判明しました。副作用の1つとして、一部のWindowsシステムがクラッシュするという問題があります。このためMicrosoftは、新たなパッチの公開を急ぐ代わりに、現時点ではリスクを低減するためのヒントをいくつか発表するだけにとどめています。そのヒントは次の通りです。

  • システムの復元や更新の操作を実行する権限を持つユーザーを監査し、このようなユーザーの数を最小限に抑え、可能な場合は権限を取り消します。
  • アクセス制御リスト(ACL / DACL)を実装して、更新ファイルへのアクセスと変更を制限します。
  • 昇格した権限を使用して更新ファイルを変更または置換するインスタンスのイベント監視を設定します。これは、脆弱性悪用の指標となる可能性があります。
  • 同様に、VBSサブシステムとシステムファイルのバックアップに関連するファイルの変更と交換を監視します。

SIEMやEDRを使用してこれらのイベントを監視するのは、比較的簡単です。しかし、誤検知も想定されるため、正当なシスアドの活動とハッカーの活動との区別は、最終的にはセキュリティチームの責任となります。

上記はすべて、物理的なWindowsマシンだけでなく、クラウド環境の仮想Windowsマシンについても当てはまります。Azureの仮想マシンの場合、管理者の資格情報でログインしようとする異常な試行を追跡することも推奨します。このような試行が検知された場合には、MFAを有効にし、資格情報を変更してください。

もう1つヒントがあります。管理者権限が不要な従業員からは管理者権限を取り消し、正規の管理者には、(i) 管理者としての動作は各自の管理者アカウントでのみ実行すること、(ii) その他の作業には別のアカウントを使用することの2点を義務付けることです。

リスクのある修正

さらにセキュリティを強化したいユーザー向けに、MicrosoftはCVE-2024-21302の深刻度を低減する更新プログラムKB5042562を提供しています。これをインストールすると、古いバージョンのVBSシステムファイルが無効化リストに追加され、更新されたコンピューターでは実行できなくなります。このポリシー (SkuSiPolicy.p7b) はUEFIレベルで適用されるので、使用時はOSだけでなくバックアップ用のリムーバブルブートメディアも更新する必要があります。また、古いWindowsのインストールへのロールバックができなくなる点にも注意しておく必要があります。さらに、この更新はユーザーモードコード整合性(UMCI)機能を強制的にアクティブ化し、そのこと自体が互換性やパフォーマンスの問題を引き起こす可能性があります。

全般的に管理者に推奨されるのは、リスクを慎重に検討し、処置と想定される副作用を十分に検討することです。今後、Microsoftは関連するすべてのバージョンのWindowsに対して、パッチと追加のセキュリティ対策をリリースすることを約束しています。対象となるのは、Windows 10のバージョン1507以前のWindowsバージョン、Windows Server 2016以前のWindows Serverバージョンです。

+

ヒント