Vistaの地平

第7回 管理者権限での実行を制限するユーザー・アカウント制御UAC(前編)

1.管理者権限で利用するWindows OS

畑中 哲
2007/04/05


「Vistaの地平」は、Windowsベースの情報システムを管理するIT Proを対象に、Windows Vistaの注目機能について解説する新コーナーです。

Index
Windows Vistaとは何か?
Windows Vistaのユーザー・インターフェイス
カーネルの改良とフォント、セキュリティ機能の強化
TCO抑制に向けた各種運用管理機能が強化されたVista
Vistaのハードウェア要件
より高機能になったVistaのバックアップ機能
管理者権限での実行を制限するユーザー・アカウント制御UAC(前編)
管理者権限での実行を制限するユーザー・アカウント制御UAC(後編)
スパイウェアからコンピュータを保護するWindows Defender
IPv6を取り込んだVistaのネットワーク機能
機能が向上したWindows Vistaのグループ・ポリシー
機能性/実用性がさらに強化されたオフライン・ファイル
Windows Vista SP1
セキュリティが強化されたWindowsファイアウォールの概要
セキュリティが強化されたWindowsファイアウォールの管理

 Windows OSを使う場合、常に管理者ユーザーやパワー・ユーザーとしてログオンして使うことが少なくない。一般ユーザーのアカウント(UsersグループやDomain Usersグループに属するアカウント)で使おうとすると、さまざまな制限があり、使いづらいことがあるからだ。だが、このことが結果的に、システムをぜい弱にしているともいえる。便利さを取るか、安全性を重視するか、このバランスは非常に難しい。この問題に対して、Windows Vistaで導入された新しいセキュリティ・メカニズムが「ユーザー・アカウント制御」である。今回と次回の2回では、この新しい機能について解説する。今回はユーザー・アカウント制御とは何か、UACがユーザーの操作性にどのような影響を与えるのかについて解説する。次回は、UACの内部メカニズムについてより詳しく解説し、さらにUACによって使いづらくなる影響を抑えるための互換性機能について解説する。

Windows Vistaでは「管理者ユーザー」の意味が変わる

 Windows Vistaでは、ユーザー・アカウント制御(User Account Control。以下UAC)という概念/機能が導入された。UACはWindows Vista出荷時にデフォルトで有効となっており、今後ほとんどすべてのWindows環境に影響を与えるであろう、重要な機能である。その最も重要な機能を簡単にいえば、


Windows Vistaでは、管理者ユーザーとしてログオンしても、一般ユーザー以下の権限しか持てない。

というものだ。それがどういうことかを解説する前に、これまでのWindowsでユーザー・アカウントがセキュリティ上どう扱われてきたかを、特に管理者ユーザー・アカウントを中心に見てみよう。

常に管理者ユーザーとしてログオンする習慣

 Windowsでは、常に管理者ユーザー・アカウントでログオンするという運用が非常に多い。すべての権限を持ったユーザーとしてログオンすることで、アプリケーションやハードウェアをインストールしたり、システムの設定を変更したりといったことが簡単に行えるのである。特別な操作でなくても、例えば時計の時刻を設定/変更するといったことでも管理者権限が必要である。

 管理者権限でログオンした場合のWindows OSシステム内部での挙動を図にすると、次のようになる。

管理者ユーザーとしてログオンする
管理者ユーザーとしてログオンしてアプリケーションを実行すると、そのアプリケーションはほとんどすべてのことを実行したり、アクセスしたりできる。これは便利である半面、意図せぬシステム破壊や、マルウェアによる被害の拡大などにもつながる。

 しかしこのような運用(常に管理者権限のあるアカウントでログオンしてコンピュータを使用するという運用)には大きな弊害がある。悪気のあるなしにかかわらず、ちょっとした操作ミスなどによって、システムは簡単に破壊されてしまう。また、特にインターネットを通じてウイルスやスパイウェアがシステムに侵入すると、1人のユーザーだけでなく、システム全体がそれらマルウェアの支配下に置かれてしまうのである。

常に管理者ユーザーとしてログオンする理由

 そうした問題を避けるため、特にTCOやセキュリティを重視する組織では、権限が制限された一般ユーザーとしてログオンして、システムを利用するといった運用が行われる。しかし現実的には、管理者ユーザーとしてログオンし続けたくなる事情がある。Windows OSも、そこで動作するアプリケーションも、一般ユーザーでログオンして使い続けようとすると、とても面倒なことになるのだ。ちょっとした機能さえ使えなくなったり、アクセス権を変更しないとアプリケーションが起動すらしなかったりする。これは技術的な理由というよりは主に歴史的な理由による。

なぜそのような状況になってしまったのか

 現在のWindowsが普及する基礎となったMS-DOSや16bitベースのWindows OS(Windows 9xやWindows Meを含む)は、インターネット普及前にスタンド・アロンのパーソナルOSとして使われだしたものである。当時の環境ではセキュリティを意識する必要はほとんどなかったし、そもそも、ユーザーを識別してアクセスを制御する機構自体がWindowsに存在しなかった。そうした状況の下、アクセス制御を意識していなかったり、ログオン中のユーザーにすべての権限があることを前提として開発されたアプリケーションが多く広まっていった。一度広まったそのような流れは、まっとうなアクセス制御を備えたNT系Windows(Windows NT、Windows 2000、Windows XP、Windows Server 2003など)が後から徐々に普及しても、なかなか大きく変わるものではなかった。Windows OS自体もその例外ではなく、やはり管理者でなければ何かと不便なOSであり続けた。

習慣を改めるための方策

 とはいっても常に管理者ユーザーとしてログオンする習慣がよくないことは明らかであり、習慣を改めるためにいくつかの方策が取られてきた。代表的な例は、グループやユーザーの使い分けだろう。だがどの方策も、常に管理者ユーザーとしてログオンする習慣を改めるには至っていない。

グループの使い分け

 Windows OSには、組み込みのアカウントとして、Power UsersやNetwork Configuration Operatorsといったグループがある。これらは、Administratorsのようにすべての権限があるグループではないが、一般ユーザーよりは権限があったり、ある特定の操作にだけ権限のあるグループである。ユーザーをそれらのグループに必要に応じて所属させれば、管理者ユーザーとしてログオンしなくても済むはずだ。組み込みのグループ・アカウントについては、以下の記事などを参照していただきたい。

 しかしPower Usersのように、全体的に「強め」の権限を持つグループは、制約があるという一般ユーザーの不便な面と、強すぎる権限を持つという管理者ユーザーの不都合な面の、両方の欠点を併せ持つことになってしまう(「The Power in Power Users[英語](Mark's Blog)を参照)。またNetwork Configuration Operatorsのように特定の権限だけを持つグループは、どのユーザーをグループに入れればよいのかをいちいち検討しなければならないし、特定の目的に応じたグループが必ず用意されているとは限らないので、常に利用できるわけでもない。

ユーザーの使い分け

 グループによってユーザーの権限を細かく調節するのではなく、ユーザーそのものを使い分けるという方法もある。一般ユーザー・アカウントと管理者ユーザー・アカウントの2つを用意しておき、場面に応じてどちらかのユーザーとして実行するのである。

「別のユーザーとして実行」(RunAs/Secondary Logon)でユーザーを使い分ける

 ユーザーを使い分ける手段として有力なRunAs/Secondary Logonサービスは、UNIXにおけるsu(substitute user)コマンドのようなものである。通常は一般ユーザーとしてログオンしながらも、必要なときに必要なアプリケーションだけを、(別ユーザーである)管理者ユーザーとして実行できる。

「別のユーザーとして実行」するRunAs/Secondary Logonサービス
これは、一般ユーザー・アカウントと管理者ユーザー・アカウントを用意し、場面に応じてどちらかのユーザーとしてログオンしてアプリケーションを起動する方法である。ここでは、まず一般ユーザー(Bob)としてログオンして、管理者ユーザーとして実行する必要のあるアプリケーションだけを「別のユーザーとして実行」で管理者ユーザー(Alice)として起動している。Aliceとして動作するアプリケーションからは、管理者だけに実行/アクセスが許可されていることが行える。Bobとして動作するアプリケーションからは行えない。

 これは技術的には古くから可能だったが、Windows 2000で標準のサービスとして提供されるようになったものである。具体的な利用方法については、以下のTIPS記事などを参照していただきたい。

 しかし、管理者ユーザーとして実行する必要があるものを逐一識別し、資格情報を入力して起動するのは、とても面倒な作業である。技術的にも、同一デスクトップ上で一般ユーザーと管理者ユーザーのウィンドウが並行動作すると、ユーザー別の設定やセキュリティの一貫性を確保しにくい。


 INDEX
  Vistaの地平
  第7回 管理者権限での実行を制限するユーザー・アカウント制御UAC(前編)
  1.管理者権限で利用するWindows OS
    2.管理者権限での実行を制限するUAC
    3.UACで表示されるダイアログの種類
 
 「 Vistaの地平 」


Windows Server Insider フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Windows Server Insider 記事ランキング

本日 月間