Microsoftは今月初めにこの機能が利用可能になる前に、Windows Administrator Protectionの回避を可能にしていた多数のバグを修正した。
GoogleのProject Zeroのセキュリティ研究者James Forshawは12月、同新機能が有効になっているマシンで、攻撃者が気付かれずに自分自身へ管理者権限を付与できる可能性がある9件の脆弱性を報告した。
Forshawによれば、その大半は既知のユーザーアカウント制御(UAC)の問題に関連していたが、悪用されればWindows Administrator Protectionの存在意義そのものを損ない得たという。
Microsoftはまだこの機能を一般提供ビルドには開放しておらず、現時点で試せるのはInsider Canaryユーザーのみだが、その狙いは、ユーザーが必要最小限の権限だけで操作することを確実にする点にある。
ユーザーはその場で管理者権限を自分に付与できるが、付与は事前承認された状況に限られ、各プロセスの終了とともに自動的に取り消される。
Forshawは、報告した9件のバグの中で最も注目すべきものは、5つの異なるWindowsの挙動に依存するログオンセッションの欠陥だったと述べた。さらに、OSの「DOSデバイスオブジェクトディレクトリを作成する際の奇妙な挙動」に以前から馴染みがあったため、おそらくそれで見つけられたのだろうと付け加えた。
この問題は、Windowsが特定のユーザーセッション向けにこれらのディレクトリをどのように扱うかに焦点を当てている。カーネルはログイン時ではなく必要に応じてDOSデバイスオブジェクトディレクトリを作成するため、作成プロセス中にユーザーが管理者かどうかを確認できない。
UACとは異なり、Administrator Protectionは隠しのシャドー管理者アカウントを使用し、そのトークンハンドルはNtQueryInformationToken API関数を呼び出すとシステムから返され得る。
研究者は、攻撃者がトークンの所有者セキュリティ識別子を自分のユーザーIDに一致するよう変更できることを示した。このトークンを偽装すると、攻撃者はカーネルに新しいディレクトリを作成させ、その所有権を自分に割り当てさせることができ、実質的にそれを制御できるようになる。
Forshawは書いている。「アクセスチェックが無効化されているため作成自体は成功する。しかし、作成後にカーネルがディレクトリそのものに対してアクセスチェックを行うと、識別トークンが偽装されているため失敗する。」
Forshawは、この挙動は以前にUACでしばらく前から把握していたが、管理者プロセスが作成される前に制限ユーザーがコードを実行できるシナリオを見つけられなかったため、報告しなかったと述べた。
Administrator Protectionの導入で状況が変わった。UACとは異なり、ユーザーが権限を管理者レベルへ昇格するよう要求するたびに、新しい一意のログオンセッションが作成されるからだ。
さらに、Cドライブのハイジャックを防ぐためにMicrosoftが実装した別のセキュリティ緩和策により、プロセスを起動するシステムサービスは、偽装されたトークンのDOSデバイスオブジェクトディレクトリを無視する。この場合、攻撃者は、プロセスがファイルにアクセスする前にすべてを実行できるなら、バグを悪用してDOSデバイスオブジェクトディレクトリを作成し、プロセスのCドライブをリダイレクトできる。
Microsoftは、識別レベルでシャドー管理者トークンを偽装している場合にDOSデバイスオブジェクトディレクトリの作成を防ぐことで、これを修正した。
Forshawは次のように述べた。「この問題が興味深いのは、保護を回避できたからというだけでなく、長年知っていた潜在的なUAC回避だったのに、この機能の導入によって初めて実際に悪用可能になったからだ。」 ®
翻訳元: https://go.theregister.com/feed/www.theregister.com/2026/01/28/google_windows_admin_exploit/