2006年後半出荷の「Windows Vista」には新しいセキュリティ機能が実装される。特に注目したいのは管理者であっても,その権限が一部制限されることだ。管理者アカウントを常用していても悪意のあるプログラムがインストールされる危険は少なくなる。一方でそれに伴う操作性の悪化は,最低限になるよう工夫されている。

 MicrosoftはWindows Vistaについて「Confident(信用できる)」「Clear(明瞭である)」「Connected(つながる)」という3つのキーワードを挙げている。Confidentはセキュリティ強化や管理性の向上,Clearは「仮想フォルダ機能」などによってデータ管理が分かりやすくなること,Connectedは新しいGUIシステムであるWindows Presentation Foundation(開発コード名:Avalon)やプロセス間通信機能Windows Communication Foundation(開発コード名:Indigo)といった技術が実装されることでアプリケーション連携が容易になることを指している。

 ここでは3つのキーワードの筆頭であるConfident,すなわちセキュリティ強化を重点的に取り上げる。(1)管理者の権限を制限する「User Account Control」(ベータ1までの名称は『User Account Protection』),(2)新しいユーザー・グループ「Trusted Installers」,(3)制限ユーザーのシステム・フォルダへの書き込みなどをリダイレクトする「File and Registry Redirection」——などの新機能が実装されている。

管理者権限常用の悪弊を絶つ


△ 図をクリックすると拡大されます
図1●Windows Vistaでは管理者でもシステム・ファイルを削除できない
 現在のWindowsにおける最大のセキュリティ上の脅威は,システムを改変したり重要なデータを外部に流出したりするようなウイルス/ワーム/スパイウエアの存在である。これら悪意のあるプログラム(マルウエア)がまん延している原因の1つに,多くのユーザーが管理者権限を常用していることが挙げられる。

 システムを変更したりプログラムをインストールしたりする権限がない制限ユーザー(Users)を使っていれば,マルウエアがインストールされる危険性は低い。しかし,ワークグループ環境のWindows XPでユーザー・アカウントを新たに作ると,それには標準で管理者権限が与えられる。また,使い勝手の悪い制限ユーザーは敬遠されがちである。

 そこでWindows Vistaでは,管理者権限を制限するよう仕様が変更されている。例えばWindows Vistaでは,管理者権限を持つアカウントであっても,システム・ファイルや重要なプログラムを勝手に削除できない(図1)。それを実現するための仕組みが「User Account Control機能」と,「Trusted Installersグループ」である。

管理者でも制限ユーザーになるUAC

 User Account Control(UAC)とは,管理者権限が与えられたアカウントの権限を恒常的に制限する機能だ。スタート・メニューの[All Programs]−[Turn UAP Settings On or Off]から設定する。

 UACが有効になっていると,管理者であっても制限ユーザー相当の権限しか使えなくなる。コントロール・パネルやレジストリの操作など本来管理者権限が必要な作業をする際は,現在ログオンしている管理者アカウントのパスワードの再入力が求められる。認証が成功すると,その操作のときだけ完全な管理者権限が利用できるようになる。

2種類のトークンを付与するUAC


△ 図をクリックすると拡大されます
図2●UACの仕組み
 UACの仕組みは図2の通りである。UACが有効だと,管理者はログオン時に制限ユーザー相当の権限しかない「UACトークン」と,管理者権限がある「完全な管理者トークン(フル・トークン)」という2種類のアクセス・トークンが付与される。これはWindows Vistaで仕様が大きく変更された点の1つだ。Windows XP/Server 2003までのNT系OSでは,ユーザーに与えられるアクセス・トークンは1種類だけである。

 UAC有効時は,デフォルトでUACトークンが使用される。管理者権限が必要なアプリケーションが起動されると,パスワードの再入力が求められ,認証が成功するとフル・トークンがアプリケーションに与えられ,実行できる。

 アプリケーションにフル・トークンが必要かどうかはOSが判断する。Windows Vistaはフル・トークンが必要なアプリケーションが記された「アプリケーション互換性データベース」を備えている。またアプリケーションごとにアプリケーション・マニフェストを使って「フル・トークンが必要」などと設定できるほか,Windows Vista内蔵の「Windows インストーラ」でも同様の設定が可能だ。