開発者のための、Windows Vista における新しいセキュリティ機能に関する概要概要 : ネットワーク接続のユビキタス化に伴い、コンピューター セキュリティにとって悪夢のような状況が生じています。Microsoft Windows Vista™ (以前の Windows コード ネーム "Longhorn") は、基盤となるオペレーティング システムのセキュリティ向上に加え、開発者がより安全性の高いアプリケーションを作成し、システム管理者やエンド ユーザーのセキュリティに関する負荷を軽減するための高度な機能を提供します。 Windows Vista は、特に権限の問題に取り組んでいます。危険なソフトウェアは、通常、ユーザーがコンピューターを使用しているのと同じ権限レベルで動作しますが、ほとんどのユーザーは、既定の権限よりも高い権限を使用しています。つまり、危険なソフトウェアは、往々にして、管理者権限を使用して動作していることになります。すべての操作を、必要な最小の権限を使用して行うことが、Windows Vista で重視されている点です。さらに Windows Vista は、アプリケーションの脆弱性を評価して報告するツールを備えています。また、ファイアウォールと危険なソフトウェアの対策ツールを、オペレーティング システムとセキュリティ センターに完全に統合するメカニズムも備えています。
User Account ControlWindows Vista は、従来の Windows の権限モデルを変更して、ユーザーの意図しない操作、または許可するつもりのない操作を実行しようとするプログラムの起動を防ぎます。そのため、User Account Control (UAC) によって、ユーザーは最低レベルに近い権限でアプリケーションを実行できます。また必要であれば、より高い権限を必要とするアプリケーションを容易に実行できます。UAC を使用したアプリケーションを作成する場合は、権限指定モデルと標準 UAC 実行モデルの 2 つの重要な事項を検討する必要があります。 権限指定モデルUAC では、管理者ログインに UAC トークンと完全な管理者トークンの 2 つのセキュリティ トークンを提供する新しいメカニズムによって、すでに Windows のログインで使用されているアクセス トークン システムが拡張されています。 アクセス トークンには、ログイン セッションのセキュリティ情報が含まれており、これによってユーザーおよびユーザーのグループと権限が識別されます。オペレーティング システムは、トークンを使用して、セキュリティ保護が可能なオブジェクトへのアクセスを制御し、ユーザーがローカル コンピューターでさまざまなシステム関連の操作を行う権限を制御します。UAC トークンは、UAC をサポートするシステム上で、Windows Vista ユーザーの既定のログイン権限を実行する場合に必要となる最小限の権限を定義する、特別な種類のアクセス トークンです。また、完全な管理者トークンは、管理者アカウントに許可される最大権限を保持しています。 UAC 実行モデルトークン以外にも、UAC で動作するアプリケーションの基本実行モデルでは、UAC によって強化された既存のプロセス作成関数 (CreateProcess を呼び出す ShellExecute) を使用します。UAC 実行モデルには、次の 4 つの部分があります。
UAC 準拠のアプリケーションの作成Visual Studio ツールを使用してアプリケーションを開発する場合は、AppVerifier ツールを使用してコードが UAC に準拠しているかを分析します。ClickOnce と Windows Vista バージョンの MSI (Windows インストーラ) テクノロジーは、いずれも完全に UAC 準拠なので、インストーラの開発にあたっては、これらのテクノロジーの使用をお勧めします。 UAC 準拠とは、最小権限のことだということを念頭においてください。Windows XP または Windows Server 2003 で、アプリケーションが管理アカウント以外のアカウントで正しく動作している場合、Windows Vista でも問題は生じません。 Windows Vista でアプリケーションが正しく動作することを確認するには、以下のように制限ユーザーとしてアプリケーションをテストします。
アプリケーションが、ユーザーが管理者か制限ユーザーかによって異なる機能を提供する場合、アプリケーションの管理機能に対してさまざまなアクセスを行ってテストする必要があります。
セキュリティ設定ウィザードWindows Vista では、ロールに応じたセキュリティ設定ウィザード (SCW) の拡張機能が作成できるので、セキュリティ設定ウィザード拡張機能が付属したサーバー ソフトウェアを提供することによって、ユーザーがサーバーを保護しながら、サードパーティのソフトウェアを正しく実行できます。このため、ロールに応じた SCW の拡張機能を新しく作成すると、サーバーのロール (サービス、ポート、機能) に応じて、自動生成したセキュリティ ポリシーによってシステムの機能をロック ダウンできます。
ネットワーク アクセス保護フレームワークWindows Vista では、特に移動コンピューティングとポータブル デバイスの接続をサポートするネットワークで、ネットワークの状態とセキュリティを保証するために、ネットワーク アクセス保護 (NAP : Network Access Protection) フレームワークが提供されています。NAP を使用すると、指定されたアクセス権をネットワーク クライアントに付与する前に、ネットワーククライアントに対してその身元およびネットワークとの互換性の証明を求めるポリシーをシステム管理者が定義して適用できます。クライアント システムは、完全なアクセス権を付与されるか、ネットワークの制約されたサブセクションに配置されて、制限されたアクセス権のみを付与されます。 開発者は API レベルのアクセス権を使用して NAP にアクセスし、WFP (Windows Filtering Platform) を使用して、次のようにユーザーと管理者セキュリティの作業負荷を軽減します。
NAP に参加するネットワーク アクセス クライアント ソフトウェアおよびネットワーク アクセス サーバーは、適切な状態のシステムのみが、ネットワークにログインできることを保証します。不適切な状態のシステムは、制約された VLAN に配置されて修正されることによって、ネットワーク上に位置付けられます。
まとめWindows Vista は、中核のオペレーティング システム自体のセキュリティの向上に加えて、作成するアプリケーションのセキュリティを開発者が強化できる強力な機能を提供しています。このような機能には、UAC、セキュリティ設定ウィザード、ネットワーク アクセス保護フレームワークがあります。Windows Vista のリリースに備えて用意されたアプリケーションでは、これらの機能を利用することにより、ユーザーの安全を保護しながら、アプリケーションが円滑に実行されるように維持できます。
|