ユーザーインターフェイス特権の分離

Windows > Windowsのセキュリティ機能 > ユーザーインターフェイス特権の分離

ユーザーインターフェイス特権の分離 (英語: User Interface Privilege Isolation, UIPI)[1] とはWindows Vista/Windows Server 2008で追加された技術で、シャッターアタック英語版Shatter Attack、壊滅的攻撃)を防ぐものである。これは必須整合性コントロールを使用することで、低い整合性レベル (IL) のプロセスから高い整合性レベル (IL) へのメッセージの送信を妨げる(ごく限られたUIメッセージのセットを除く)[2]。ウィンドウメッセージは処理のアクションをユーザーに伝えるために設計されている。しかし、それらはプロセスのコンテキスト受信の中で任意のコードを実行させるためによく悪用される。この手法によって、悪意のある低ILプロセスは高ILプロセスのコンテキストで非正規の権限昇格で構成された任意のコードを実行させる。コード実行のいくつかのベクタやデータインジェクションへのアクセスを制限することで、UIPIはこれらの種類の攻撃を低減することができる。[3]

UIPIセキュリティの回避[編集]

UIPIおよび必須整合性コントロールは、より一般的にはセキュリティ境界ではなくセキュリティ機能である。UIアクセシビリティ・アプリケーションはマニフェストファイルuiAccess値をTRUEにセットすることでUIPIを回避することができる。しかし、このフラグがWindows UIPIによって履行されるためには、アプリケーションがProgram FilesまたはWindowsディレクトリーにインストールされていて、かつ有効なコード署名機関によって署名されている必要がある。これらの場所へアプリケーションをインストールするには、高整合性レベルにプロセスを昇格して動作させるために管理者権限を持つユーザーを必要とする。

つまり、マルウェアがUIPIを回避できる場所に侵入するためには以下の条件が必要になる。

  1. ベリサインや他の信頼済みコード署名機関によって発行された有効なコード署名証明書を使用する。
  2. 管理者権限を持つユーザーに対して攻撃を実施する。
  3. ユーザーにUACプロンプトで管理者権限の使用を許可するよう促す。

脚注[編集]