ユーザー アカウント制御の概要

公開日 : 2006年 2 月

* * * 

トピック

はじめにはじめに

ユーザー アカウント制御の機能と利点ユーザー アカウント制御の機能と利点

アプリケーション開発者への影響アプリケーション開発者への影響

その他の Windows Vista セキュリティ コンポーネントその他の Windows Vista セキュリティ コンポーネント

まとめまとめ

はじめに

現在、企業や個人は、絶えず進化するセキュリティの脅威に対応してコンピュータを制御できなければならないという課題に直面しています。 IT 管理者とユーザーは、ユーザーの生産性を落とさずに、コンピュータのセキュリティを保護する必要があります。 企業は、攻撃に対して抵抗力のあるソリューションを見つけ出すと同時に、データの機密性、整合性、および可用性を確保する必要があります。

Microsoft Windows Vista 以前のバージョンの Microsoft Windows では、多くのソフトウェア アプリケーションを競合させずにインストール、更新、実行したり、標準的なシステム レベルのタスクを実行したりする際に管理者特権が必要だったので、ユーザー アカウントの大多数がローカル管理者グループのメンバとして構成されていました。 タスク バーの時計をクリックしてカレンダーを表示するといった単純な作業でさえ、管理者特権が必要です。

エンド ユーザーに管理者特権があると承認を得ないでシステムに変更を加えることができるので、個人のコンピュータやネットワークがマルウェアからの攻撃を受けやすくなり、総保有コストも増加します。 マルウェアは、ローカル管理者に許可されたシステム レベルの特権を悪用し、ファイルの損傷、システム構成の変更、ネットワーク外部への機密情報の転送などを行うことができます。 しかし、ユーザーに標準ユーザー モードでの操作を要求し、コンピュータをロックダウン状態で展開すると、ユーザーの生産性が大幅に制限されます。 ローカル管理者権限がなければ、通常の操作中にシステムが使用する場所に書き込むようにデザインされている多くのアプリケーションが正常に機能しません。

Windows Vista
Microsoft は、Windows Vista という新しいバージョンの Microsoft Windows オペレーティング システムを 2006 年にリリースする予定です。 Windows Vista は、これまで開発してきた Windows のバージョンの中でも最もセキュリティが強化されています。

Windows Vista の主眼と Microsoft の全体構想の基本は、セキュリティです。 Windows Vista には単純かつ安全なメカニズムが実装されており、エンド ユーザーのアカウントを標準ユーザーの特権で実行できると同時に、プリンタ ドライバのインストールやセキュリティ保護されたワイヤレス ネットワークへの接続などの共通作業を実行する際に管理者特権が必要ありません。 こうした根本的な変更により、マルウェアやルートキットは企業全体のファイルや設定を攻撃できなくなり、オペレーティング システム レベルでセキュリティが確保されます。

ユーザーアカウント制御 : デスクトップのセキュリティ強化
ユーザー アカウント制御の主目的は、すべてのユーザーが標準ユーザー モードで実行することを要求し、承認済みプロセスへの管理者レベルのアクセスを制限することで、オペレーティング システムの中で攻撃を受けやすい面を縮小することです。 その結果、ユーザーはコンピュータが不安定になる可能性のある変更を加えることができなくなり、コンピュータに感染した未検出のマルウェアによってネットワークがウイルスの脅威に曝される危険性が最小限に抑えられます。

ユーザー アカウント制御では、IT 管理者はほとんどのアプリケーション、コンポーネント、およびプロセスを制限付きの特権で実行できます。ただし、特定の管理作業やアプリケーション機能には "特権の昇格" が必要になる可能性があります。

制限付き特権で実行している場合に、ユーザーが、アプリケーションのインストールなど、管理者特権を必要とするシステム作業を呼び出すと、Windows Vista からユーザーに通知され、管理者の承認が求められます。 このような通知により、ユーザーが誤ってデスクトップを変更することがなくなります。 また、ユーザーが気付かないうちにマルウェアが管理者特権を取得することがなくなります。

ユーザーモードの再定義
Windows 2000 のリリースからは、標準ユーザーとして実行しながら管理者としてアプリケーションを起動する機能が Windows アーキテクチャに組み込まれています。たとえば、管理者用の RunAs (別のユーザーとして実行) 機能です。 RunAs では、管理者がユーザーの現在のログインに指定されているのとは異なるアクセス許可を使用してツールやプログラムを実行する場合に使用できるコマンド ライン ツールが提供されます。

このユーザー モデルの新しい定義は、Windows での永続的な変更です。 そのため、アプリケーション開発者は、毎日使用するユーザーが管理者特権を必要とせずに基本作業を完了できるように、アプリケーションの動作を拡張する必要があります。 Microsoft はこのプロセスを進めていくうえで、アプリケーション開発者向けの広範なガイダンスを提供する予定です。 詳細については、MSDN の「Developer Best Practices and Guidelines for Applications in a Lease Privileged Environment」 (英語) を参照してください。

ユーザー アカウント制御は、管理者特権が必要な作業と標準アカウントの作業を区別するようにデザインされています。 その例として、管理者特権を依然として必要とするユーティリティを示します。

  • ソフトウェアのインストール
  • ドライブの再パーティション分割
  • エンタープライズ管理ソフトウェア

Windows Vista では、アプリケーション開発者が、アプリケーションで特定の手続きを完了するのに必要な特権を 2 つのレベルから決める必要があります。 アプリケーションでの作業に管理者特権が必要ない場合は、標準ユーザー モードの特権のみを要求するようにアプリケーションを作成します。 たとえば、標準ユーザー モード準拠のアプリケーションでは、Program Files ディレクトリ ツリーではなく、ユーザー プロファイルなど、システムが使用しない場所だけにデータ ファイルを書き込みます。

ページのトップへページのトップへ

ユーザー アカウント制御の機能と利点

標準ユーザーの特権
Windows Vista では、標準ユーザー アカウントには、ヘルプデスクのサポートを必要とせずに、ユーザーが共通作業を実行するのに必要な特権が追加で付与されています。 こうした特権はシステムへの影響と危険性を最小限に抑えるように決定されましたが、管理者は必要に応じてこれらのアクセス許可を制限することもできます。 Windows Vista の標準ユーザー アカウントに追加されたアクセス許可の内容は次のとおりです。

  • システム時計とカレンダーを表示する
  • タイム ゾーンを変更する
  • セキュリティ保護されたワイヤレス ネットワークに接続するために Wired Equivalent Privacy (WEP) をインストールする
  • ディスプレイの設定を変更する
  • 電源管理の設定を変更する
  • 必要なドライバがコンピュータにインストールされているか、IT 管理者が用意したプリンタなどのデバイスを追加する
  • 仮想プライベート ネットワーク接続を作成および構成する
  • ユーザー アカウント制御と互換性のあるインストーラを使用して更新プログラムをダウンロードしてインストールする

また、Windows Vista では、ディスクの最適化が自動的にスケジュールされたプロセスになり、ユーザーは操作を開始する必要がありません。

標準ユーザーを支援するUI変更
以前のバージョンの Windows では、管理者以外のユーザーは、実行できる操作と実行できない操作を簡単には区別できませんでした。Windows Vista では、オペレーティング システム全体で盾アイコンを使用して、管理者特権が必要なコマンドを明確に区別しています。

盾アイコン

図 1: 盾アイコンにより、ユーザーが [日付と時刻の変更] を操作できないことが示されています。

 

ファイルシステムとレジストリの仮想化
Windows Vista では、組み込みのファイルとレジストリの仮想化機能を使用して、標準ユーザー アカウントをサポートするようにデザインされていなかった多くのレガシ アプリケーションを変更せずに実行できます。 ファイルとレジストリの仮想化により、書き込み時コピーを使用して、変更対象のリソースの "仮想化された" ビューがアプリケーションに提供されます。 たとえば、Windows Vista では、アプリケーションが Program Files ディレクトリ内のファイルに書き込みを試みると、アプリケーションが正常に機能するように、ユーザーのプロファイル内のファイルのプライベート コピーが用意されます。

既定では、保護された領域への書き込みを試みるアプリケーションのログも提供されます。

Windows Vista でファイルとレジストリの仮想化を使用してレガシ アプリケーションを標準ユーザー モードで実行する初期テストでは、アプリケーションの互換性に関して有望な結果が示されました。 仮想化により大多数のレガシ アプリケーションが実行できるようになりますが、これは長期的ではなく一時的な解決策です。 ユーザー アカウント制御に十分準拠していないと、アプリケーションのセキュリティに影響を与えるだけでなく、アプリケーションのパフォーマンスの低下、エンド ユーザーへの追加トレーニングの必要性、アプリケーションの競合などが生じる可能性があります。

肩越し (OTS: Over-the-Shoulder) 資格情報
標準ユーザーがソフトウェアのインストールなどの管理作業を実行する場合は必ず、管理者のパスワードを求めるメッセージが表示されます。 ローカル管理者のパスワードがわかっていればそのパスワードを入力するか、IT 管理者にサポートを要請できます。 このプロセスを、肩越し (OTS: Over-the-Shoulder) 資格情報と呼びます。 IT 管理者はこの機能を無効にできます。無効にすると、この操作を行うアクセス許可がないことがユーザーに通知されるだけです。

管理者承認モード : タイミングに応じた適切な特権
Windows Vista チームは、管理以外の操作中に管理者を保護できるように、"管理者承認モード" 機能を考案しました。 この機能により、管理者は標準のユーザー トークンで電子メールの確認や Web の参照など通常の日常業務を実行できます。 管理者が管理者特権を必要とする操作を行った場合、システムのポリシー設定に応じて通知が行われ、操作の続行に同意するか、資格情報を指定するように求められます。 Windows Vista チームでは、このアプローチを "タイミングに応じた適切な特権 (Right Privilege at the Right Time)" と呼んでいます。 標準ユーザーとローカル管理者を交互に切り替えることはなく、2 つのユーザー プロファイルが巧みに使用されます。

Power Users グループの削除以前のバージョンの Windows の Power Users グループ アカウントは、アプリケーションの実行中に基本的なシステムタスクの実行に必要な特定の管理者特権をユーザーに許可するためにデザインされました。 しかし、この方法ではアプリケーションエラーという現象は解決されましたが、アプリケーションが依然として不要な特権を要求するという問題は解決されませんでした。

ユーザー アカウント制御では Power User モードを使用しないで、標準モードのユーザーがほとんどの共通の構成作業を実行できるようになりました。 Windows XP で管理者特権を必要とするレガシ アプリケーションの場合、Windows Vista のファイルとレジストリの仮想化により、アプリケーションを再構成することなくスムーズに実行できます。 新しい Windows Vista 対応のアプリケーションの場合、ユーザー アカウント制御のガイドラインにより、ファイルの場所、レジストリの変更、およびその他の共通作業に適切なプロトコルが定義されます。

アプリケーションベースの壊滅的な攻撃の防止
標準ユーザー モードで実行すると、"壊滅的な攻撃"、およびルートキット、スパイウェア、未検出のウイルスなどのマルウェアによる不注意なシステム レベルの破損に対する保護が向上します。 壊滅的な攻撃は、Windows メッセージング システム (アプリケーションが Windows オペレーティング システムや他のアプリケーションと通信するしくみ) を使用してユーザー インターフェイスを支配し、悪意のあるコードを実行したり管理プロセスを上書きします。 この問題の一番の原因は、任意のアプリケーションが同じデスクトップ上の他のアプリケーションにメッセージを送信できることです。 アプリケーションではメッセージを受け取ったときに、発信元を区別したり、メッセージの送信側アプリケーションでその操作が承認されているかどうかを確認できません。

この種のセキュリティ侵害は、1 つの攻撃というよりは、一連の攻撃です。 個別に考えると、メッセージを送受信できること自体は重要な問題ではありません。 しかし、多くのアプリケーションにこの攻撃を受ける機会があることが、問題を深刻にしています。 開発者が Windows で実行されるソフトウェアを作成する方法に問題があります。 Microsoft では、高い特権で実行されるアプリケーションにはメッセージング システムを使用しないように、ソフトウェア ベンダに常に推奨してきました。 残念ながら、多数のソフトウェア製品では、この基本的な保護対策が採用されていません。

ユーザー アカウント制御に準拠するソフトウェア アプリケーションは仕様上特権が分離されます。そのため、一般的な特権を削減し、未承認のアプリケーションはユーザーの同意なしには実行できないようにすることで、オペレーティング システムの攻撃を受けやすい面を縮小します。 ユーザー アカウント制御モデルを厳密に適用することで、標準ユーザーが管理者モードで実行されて既存のセキュリティ対策が無効になることを避け、ワームやウイルスが Windows ベースのシステムを支配するのを困難にします。

ユーザーアカウント制御予測ツール (User Account Control Predictor) とアプリケーション検証ツール
ユーザー アカウント制御でアプリケーションの互換性、安定性、およびセキュリティのテストをできるようにするために、IT 管理者およびアプリケーション開発者は次のツールを使用できます。

  • アプリケーション検証ツール : これはアプリケーションの開発とテストのプロセス中に使用するテストのコレクションです。 アプリケーション検証ツールは、アプリケーションの実行中にオペレーティング システムでのアプリケーションの使用状況を監視します。 その後、このツールで見つかった問題のソース コード レベルの修正に関するガイダンスが提供されます。

  • ユーザーアカウント制御予測ツール : これは、アプリケーションが標準ユーザーで実行された場合に正しく機能するかどうかを予測する、アプリケーション検証ツールのプラグインです。

    ユーザー アカウント制御予測ツールは Windows Vista の組み込み機能です。この機能は、サードパーティの開発者が Windows Vista のリリース前にユーザー アカウント制御に準拠するテストを開始できるように、以前の Windows オペレーティング システムにもインストールできます。

どちらのツールでも、通常標準ユーザー モードでは失敗することになるアプリケーションの特権アクセス要件のログが生成され、こうした作業を調整してユーザー アクセス制御に準拠できるようにするためのロードマップが提供されます。 さらに、"Process Tracking Audit (プロセス追跡の監査)" (イベント ID #592) を使用すると、エンタープライズ環境でシステム特権を使用して実行されているアプリケーションを判断できます。 ユーザー アカウント制御に準拠しないことが原因で Windows ユーザー エクスペリエンスが低下しないように、これらのツールを使用してすべてのコンポーネントとアプリケーションをテストすることをお勧めします。

総保有コストの削減とセキュリティの向上
IT 管理者は、ユーザー アカウント制御により、アプリケーションのインストールや構成など、エンド ユーザーの作業の構成を制御できます。 [ドキュメント] フォルダをセキュリティで保護して、機密情報ファイルやデータへのアクセスも制御できます。その結果、同じコンピュータ上にある他のユーザーが作成したファイルの変更、読み取り、または削除を行なうことができなくなります。

ユーザー アカウント制御では、ユーザーが簡単には元に戻せない変更をコンピュータやファイルに誤って行わないようにすることで、デスクトップの管理にかかるコスト と総保有コスト (TCO) を削減します。 さらに、一貫性が十分に保たれた環境では、ユーザーが変更したコンピュータのトラブルシューティングに管理者が長時間を割く必要がなくなります。 また、承認済みのアプリケーションのみをインストールできるので、ソフトウェア ライセンスを以前よりも適切に制御できます。 その結果、ライセンスが許可されていないソフトウェアや悪意のあるソフトウェアによってネットワークが危険にさらされたり、システムのダウンタイムやデータの損失が発生したり、ライセンス上の不利益が生じる危険性が軽減されます。

ページのトップへページのトップへ

アプリケーション開発者への影響

標準ユーザーモード用アプリケーションの作成
標準ユーザー アカウントは、多くのアプリケーション開発者に大きな変化をもたらします。開発者は特定の共有システム ファイルやレジストリ キーにアクセスするアプリケーションの作成方法を考え直す必要があります。 たとえば、カーネル、プロセスの作成、ファイル システム、レジストリ、シェル、UI、コントロール パネル アプレット、アプリケーションの互換性など、Windows のさまざまな機能を変更する場合、それらの機能と相互作用するアプリケーションにも多くの変更が必要になります。

ロゴに準拠する市販アプリケーションを開発している場合、このアプリケーションはコンピュータを危険にさらす可能性がある特権を使用しなくても動作する必要があります。 この新しいアプローチを採用した場合のメリットは、アプリケーションの安定性とクライアントのセキュリティの観点から考えると、このテクノロジを理解するのに必要な初期投資を大きく上回ります。 この目標を実現するには、ソフトウェア業界全体が連携して、セキュリティが大幅に強化された次世代のアプリケーションを導入する必要があります。

Windows Vista ロゴプログラム
Windows Vista 準拠のロゴ プログラムは、厳しい認証ガイドラインを適用することで、認定製品が Windows Vista に正常に統合されることを顧客に保証します。 その結果、ロゴ認定を受けた ISV には、競合他社との差別化が図られ、高い信頼性がもたらされます。 詳細については、Windows Vista ロゴ プログラムのページを参照してください。

競合他社との差別化要因としてのユーザーアカウント制御への準拠
ハッカーに自分の製品を悪用させてトップ ニュースに取り上げられたいアプリケーション開発者はいません。 しかし、標準ユーザー モードと互換性がなく、Microsoft のセキュリティ ガイドラインに準拠していなければ、結果として脆弱性のあるアプリケーションを開発することになり、その ISV の顧客はマルウェアの攻撃に対して脆弱な状態のままになります。 標準ユーザー アクセス許可でデスクトップを実行するユーザーは、ユーザー アカウント制御と互換性のあるソフトウェアが必要になるので、要求仕様でこの要件を指定しておく必要があります。

ユーザー アカウント制御との互換性を保持することにより、優れたセキュリティ対策の実装に必要なインフラストラクチャが ISV に提供され、セキュリティの侵害やソフトウェアに対する悪評を回避することができます。 ISV は、ユーザー アカウント制御との互換性を保ち、ロゴ準拠のための基本規則に従うアプリケーションを作成することにより、市場での信頼性を高めることもできます。

ページのトップへページのトップへ

その他の Windows Vista セキュリティ コンポーネント

マネージアプリケーションの作成
マネージ アプリケーションは、セキュリティを考慮してデザインされています。これらのアプリケーションは特定のセキュリティ プロトコルに従って作成されるため、承認済みの機能だけを実行し、アプリケーションのコードの脆弱性が少なくなります。 Windows Vista では、各マネージ アプリケーションが機能するのに必要な特定のアクセス許可レベルを指定できます。 Windows Vista "信頼マネージャ (Trust Manager)" はこの情報を使用して、そのアプリケーションのコンピュータへのインストールを許可するかどうかを判断します。

アプリケーションのアクセス許可要件が、信頼マネージャの危険性のないアクセス許可セットに含まれる場合は、このアプリケーションはセキュリティの警告を生成することなく実行できます。 このアクセス許可のセットで操作を行うタスクは、故意でも不注意でも、コンピュータに危害を加えることはできません。 ただし、アプリケーションは要求するアクセス許可を上回るリスクを受けると、潜在的な危険性を示すダイアログ ボックスが管理者に表示され、アプリケーションが安全にインストールされていることを確認するように求められます。 新しい市場や進化する市場を対象とする製品を開発している ISV が顧客からの信頼を維持するには、リスクを抑えることが不可欠です。

Microsoft Windows インストーラ
Windows Vista には、ソフトウェアをインストールするためのいくつかのオプションがあります。たとえば、コンピュータまたはネットワーク上のすべてのユーザーが利用できるようにインストールを実行できます。 ただし、Microsoft Windows インストーラ (MSI) に基づいたインストールをお勧めします。この方法では、管理者特権を付与せずに、グループ ポリシーを使用してアプリケーションがユーザーに代わってインストールされます。これは、多くのユーザーに展開されるエンタープライズ アプリケーションにとって重要な機能です。 大企業の場合、SMS を使えばインストール プロセスが向上し、管理者は正常なインストールを追跡できるようになります。

アプリケーションマニフェスト
"アプリケーション マニフェスト" は、Windows Vista 向けのアプリケーションを識別し、管理者がアプリケーションに求められるセキュリティ資格情報を定義できるようにします。これは、ユーザー エクスペリエンスの向上に役立つ、展開プロセスの重要なステップです。 アプリケーションがユーザー アカウント制御に準拠している場合や、特権を昇格することを管理者の承認を得るためにユーザーに確認する場合、マニフェストが Windows Vista に通知します。 整合性や機能性を保証するには、これらのマニフェストに署名します。

実行レベル
標準ユーザー以外のレベルでの実行が必要な場合、マニフェストには runLevel を含めます。 システムでは、正しく機能するために runLevel を認識します。特定の作業では、管理者トークンを使用して特権を昇格する必要があります。 以下に、特権が昇格されるアプリケーション作業の例を示します。

  • Highest: アプリケーションは使用可能な最も高いレベルの特権を要求します。 このアプリケーションは、昇格した特権のレベルに基づいて動作を変更できます。 このアプリケーションは、完全なプロセス トークンを使用して起動されます。
  • Administrator: アプリケーションは管理者レベルの特権を要求します。 トークンには、管理者グループのセキュリティ ID (SID) が含まれます。 必要な特権を取得できない場合、このアプリケーションの起動は失敗する可能性があります。

ページのトップへページのトップへ

まとめ

マネージアプリケーションの作成
ユーザー アカウント制御では、アプリケーションとオペレーティング システムやファイルとの相互作用のしくみを根本的に変更することで、コンピュータ セキュリティを向上させる新しいアプローチを提供します。 ハッカーや悪意のあるユーザーによるセキュリティの脅威のレベルは進化を続けており、開発者は Microsoft と連携してこのマルウェアの影響を最小限に抑えるテクノロジの作成を続けることが不可欠です。 標準ユーザー モードで実行すれば、組織やユーザーがシステム レベルのマルウェアの影響を受ける可能性が少なくなります。 また、ユーザー アカウント制御を使用すれば、未承認のソフトウェアをインストールしたりシステム構成を変更したりできないので、組織は総保有コストを削減できます。その結果、管理が強化されたデスクトップが実現します。 Windows Vista では、単純かつ安全なメカニズムを開発し、現状では昇格された特権を必要とするオペレーティング システムの一般的な構成作業を標準ユーザー モードで実行できるようにしました。

ソフトウェア開発者は、将来のセキュリティとアプリケーションのパフォーマンスを確保するために、ユーザー アカウント制御と互換性のあるアプリケーションを作成することに重点を置く必要があります。 Windows Vista では、セキュリティ テクノロジの分野で大きく前進しました。社会利益に貢献し、顧客の可能性を高めるためにテクノロジを進展させ続けるプロセスにおいてこれが重要なステップになります。

詳細については、Microsoft.com の Windows Vista ホーム ページを参照してください。

ページのトップへページのトップへ

※ 本 URL で表記される画像等はベータ版を元にしたものです。