Vistaの地平第7回 管理者権限での実行を制限するユーザー・アカウント制御UAC(前編) 1.管理者権限で利用するWindows OS 畑中 哲 |
|
|
|
|
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記事などを参照していただきたい。
-
一時的にほかのユーザー権限でプログラムを実行する方法(ショートカット・メニューを利用する方法)(Windows TIPS)
-
一時的にほかのユーザー権限でプログラムを実行する方法(ショートカットのプロパティを利用する方法)(Windows TIPS)
しかし、管理者ユーザーとして実行する必要があるものを逐一識別し、資格情報を入力して起動するのは、とても面倒な作業である。技術的にも、同一デスクトップ上で一般ユーザーと管理者ユーザーのウィンドウが並行動作すると、ユーザー別の設定やセキュリティの一貫性を確保しにくい。
INDEX | ||
Vistaの地平 | ||
第7回 管理者権限での実行を制限するユーザー・アカウント制御UAC(前編) | ||
1.管理者権限で利用するWindows OS | ||
2.管理者権限での実行を制限するUAC | ||
3.UACで表示されるダイアログの種類 | ||
「 Vistaの地平 」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|