Windows の UAC バイパスの脆弱性 CVE-2024-6769:欠陥ではないと主張する Microsoft の根拠は?

Novel Exploit Chain Enables Windows UAC Bypass

2024/09/28 DarkReading — Microsoft Windows の新たな脆弱性 CVE-2024-6769 を報告した Fortra は、Windows UAC (user access control) バイパスと、特権昇格の脆弱性の組み合わせにより、認証済みの攻撃者がシステム特権を完全に取得する可能性があると警告している。

Fortra は、この脆弱性 CVE-2024-6769 を、CVSS スコア 6.7 と評価している。同社の Associate Director of Security R&D である Tyler Reguly は、「脆弱性 CVE-2024-6769 の PoC エクスプロイト・コードには、システムをシャットダウンする能力がある。ドライブ上の特定の場所においては、以前には不可能だったファイルの書き込みや削除が可能になる。そこには、”C:Windows” も含まれるため、攻撃者は SYSTEM が保持するファイルの所有権を奪うことが可能だ」と述べている。

その一方で Microsoft は、「この調査結果を認めている。しかし、”堅牢ではない” セキュリティ境界を許容するという当社の概念に該当するため、実際の脆弱性とは考えていない」と述べている。

Windows の整合性レベルを理解する

Fortra の調査結果を理解するには、Microsoft が Mandatory Integrity Control (MIC) モデルを導入した Windows Vista まで遡る必要がある。この MIC について簡単に説明するなら、すべてのユーザー/プロセス/リソースに整合性レベルと呼ばれる、アクセス・レベルを割り当てるものとなる。この整合性レベルだが、低い場合には全ユーザーに、中程度の場合には認証済みのユーザーに、高い場合は管理者ユーザーに、そして、最も機密性が高い場合にはシステムにのみに割り当てられる。

これらの整合性レベルと並行して、UAC というセキュリティ・メカニズムも導入されている。UAC のデフォルトでは、大半のプロセスとアプリケーションが中レベルで実行され、それ以上の特権を必要とするアクションに対しては明示的な許可が要求される。通常の場合において、管理者レベルのユーザーに対しては、コマンド・プロンプトを右クリックして [管理者として実行] を選択するだけで、アップグレードが可能な構造になっている。

Fortra の研究者たちが PoC で示したのは、2つのエクスプロイト技術を組み合わせることで、すでに認証済みのユーザーが UAC を起動することなく、中程度の整合性レベルで課されたセキュリティ境界を飛び越えて、完全な管理者権限を取得できることだ。

脆弱性 CVE-2024-6769 の悪用:ユーザー境界を飛び越える

脆弱性 CVE-2024-6769 を悪用する攻撃者は、その前提として標的システム上に足場を確保する必要がある。そのためには、平均的なユーザーの整合性レベルである中程度の特権が必要であり、攻撃をトリガーするアカウントは、システムの管理グループに属していなければならない (UAC が邪魔しなければ、管理者特権に昇格できるタイプのユーザー・アカウント)。

攻撃の第一段階では、標的のシステムのルート・ドライブ (例えば C: ドライブ )を、攻撃者の管理下にある場所に再マッピングする。この処理により、多くのサービスが重要なシステム・ファイルをロードするために依存している。” system32″ フォルダも移動する。

このようなサービスの一例として、管理者権限なしで高い整合性レベルで実行される、CTF Loader の ctfmon.exe がある。したがって、攻撃者が特別に細工した模倣の DLL を、模倣の system32 フォルダに配置すると、それを読み込んだ ctfmon.exe は、高い整合性レベルで攻撃者のコードを実行する。

続いて、攻撃者が完全な管理者権限を取得する場合には、Windows が特定バージョンのライブラリを読み込む際に使用する 、”activation context cache” を汚染することが可能になる。それを実施する攻撃者は、自身で生成したフォルダに格納される、悪意の DLL バージョンを指すキャッシュ・エントリを作成する。具体的に言うと、CSRSS (Client/Server Runtime Subsystem) サーバに対して、特別に細工されたメッセージを送信することで、管理者権限を持つプロセスにより偽ファイルが読み込まれ、攻撃者はシステムを完全に制御できるようになる。

Microsoft の言い分

特権昇格の可能性があるにもかかわらず、Microsoft は、それを脆弱性とは認めなかった。Fortra からの報告を受けた後に、同社は Microsoft Security Servicing Criteria for Windows の “non-boundaries” セクションを指摘し、その中で「Windows のコンポーネントやコンフィグレーションの一部は、堅牢なセキュリティ境界を提供することを明確に意図していない」と概説した。該当する “Administrator to Kernel” のセクションには、次のように記載されている。

Administrator to Kernel — 管理プロセスおよびユーザーは、Windows における Trusted Computing Base (TCB) の一部と見なされるため、カーネル境界から強く隔離されることはない。管理者はデバイスのセキュリティを管理しており、セキュリティ機能の無効化や、セキュリティ更新プログラムのアンインストール、カーネルの隔離を無効化などの操作を実行できる —

Fortra の Tyler Reguly は、「管理者とシステムの境界は存在しないものと見なされる。なぜなら、管理者はホスト上で信頼されているからだ。つまり、管理者ユーザーが最終的に UAC の承認を条件として、同じシステム・レベルの操作を実行できるのであれば、Microsoft は CVE-2024-6769 を脆弱性とはみなさないということだ」と述べている。

Microsoft の広報担当者は、「この手法は Administrator グループへの参加を必要とする。つまり、セキュリティ境界を越えない、意図された権限や特権を活用しているだけだ」と、Dark Reading へのコメントで強調している。

Fortra と Reguly は、’Microsoft の見解には同意できない。UAC が導入されたとき、素晴らしいセキュリティ機能であるという考えに、私たちは納得したと思う。また、Microsoft には、セキュリティ機能のバイパスを修正してきた歴史がある。もし Microsoft が、トラバースが許容される信頼境界があると言うのなら、UAC はセキュリティ機能ではないと言っていることになる。ある種の便利な仕組みではあるが、実際のところ、セキュリティに関連する仕組みではない。根の深い、哲学的な相違があるのだと思う」と述べている。

Windows ユーザーは UAC バイパス・リスクに注意すべき

Reguly は、「哲学的な相違はさておき、低信頼性の管理者に特権を昇格させて、システム全体を制御させることのリスクについて、企業は認識しておく必要がある」と強調している。

つまり、脆弱性 CVE-2024-6769 の悪用に成功した攻撃者は、システム上の重要なファイルの操作や削除/マルウェアのアップロード/持続性の確立/セキュリティ機能の無効化/機密性の高いデータのアクセスなどの、あらゆる操作を自由に行うことができる。

Fortra の FAQ には、「幸いなことに、この影響を受けるのは管理者だけであり、大半の標準的なユーザーは影響を受けない。管理者にとって重要なことは、出所が確認できないバイナリを実行していないことを確認することだ。つまり、現時点において、管理者にとっての最善の防御策は、警戒を怠らないことだ」と記されている。