第 6 章 :Windows XP クライアントのソフトウェア制限ポリシー
最終更新日: 2006年8月17日
ダウンロード
『Windows XP セキュリティ ガイド』のダウンロード
トピック
概要
ソフトウェア制限ポリシーのアーキテクチャ
ソフトウェア制限ポリシーのオプション
ソフトウェア制限ポリシーの設計と展開
まとめ
概要
ソフトウェア制限ポリシーを使用すると、管理者は、ソフトウェアを特定し、ローカル コンピュータで実行できるかどうかを制御できます。このツールは、Microsoft® Windows® XP Professional を実行しているコンピュータを、既知の競合から保護し、ウイルスやトロイの木馬などの悪質なソフトウェアから守ります。ソフトウェア制限ポリシーは、Active Directory® ディレクトリ サービスやグループ ポリシーと完全に統合されています。またスタンドアロン コンピュータでも使用できます。
この章は、ソフトウェア制限ポリシーのしくみ上、前の各章とは構成が異なります。前の各章では、グループ ポリシー設定オプションの推奨される構成方法について説明しました。ソフトウェア制限ポリシーの場合、管理者は、環境内のクライアント コンピュータで実行を許可するアプリケーションを定義し、ポリシーでクライアントに適用する制限を決定する必要があります。
ソフトウェア制限ポリシーを実装するときは、最初に、既定のセキュリティ レベルを制限しないまたは許可しないのどちらにするかを決定する必要があります。既定のセキュリティ レベルを [制限しない] に設定すると、すべてのソフトウェアの実行が許可されるので、特定のアプリケーションをブロックするには、追加規則を構成する必要があります。セキュリティ強度をより高くするには、既定のセキュリティ レベルを [許可しない] に設定してすべてのソフトウェアの実行を禁止してから、追加規則を構成して特定のアプリケーションの実行を許可します。ソフトウェア制限ポリシーを複数のコンピュータに適用するにはドメインベースのグループ ポリシーを使用し、個々のコンピュータに適用するにはローカル グループ ポリシーを使用します。
重要 :このガイドで説明しているすべてのポリシー設定、特にソフトウェア制限ポリシー設定は、運用システムに展開する前に、十分にテストすることが重要です。ポリシー設定の機能の設計または実装に誤りがあると、ユーザー作業の大きな妨げとなる可能性があります。
ソフトウェア制限ポリシーでは、ソフトウェアを識別する数多くの方法や、識別されたソフトウェアを実行する方法に関する規則を強制するためのポリシーベースのインフラストラクチャが用意されています。コンピュータ ユーザーは、それぞれの環境の管理者によってソフトウェア制限ポリシーで決められたガイドラインに従う必要があります。
ソフトウェア制限ポリシーを使用すると、次の操作が可能です。
-
環境内のクライアント コンピュータで実行できるソフトウェアを指定する。
-
複数のユーザーが使用するコンピュータで、特定のファイルへのユーザー アクセスを制限する。
-
信頼された発行者をクライアント コンピュータに追加できるユーザーを特定する。
-
ポリシーの対象をクライアント コンピュータ上のすべてのユーザーとするか、またはユーザーのサブセットとするかを定義する。
-
コンピュータ、OU、サイト、またはドメインのレベルで設定するポリシーに基づいて、実行可能ファイルをローカル コンピュータで実行できないようにする。
ソフトウェア制限ポリシーのアーキテクチャ
ソフトウェア制限ポリシーには、次の強力な機能があります。
-
ドメインベースまたはローカル コンピュータベースのポリシーの強制。管理者は、ポリシーを作成して、信頼されるアプリケーションとそれ以外のアプリケーションを定義します。ポリシーは実行時に強制されるので、ユーザーが実行可能ファイルを実行するかどうかを選択するダイアログは表示されません。
-
バイナリ形式の実行可能ファイル以外にも適用されるポリシー。何をもってソフトウェアとするかという定義はあいまいです。ソフトウェア制限ポリシーでは、Microsoft Visual Basic® Scripting Edition (VBScript)、Microsoft JScript®、およびその他のスクリプト言語の制御も可能です。また、Windows インストーラ機能と統合されているので、クライアント コンピュータにインストールできるパッケージも制御できます。この機能には、ポリシーのランタイムとその他のランタイムを調整するためのアプリケーション プログラミング インターフェイス (API) も含まれています。
-
スケーラブルなポリシー。ソフトウェア制限ポリシーはグループ ポリシーを使用して実装するので、数万台ものコンピュータで構成されるドメイン全体で効果的に実装および管理できます。
-
柔軟なポリシー。管理者は、許可されていないスクリプトの禁止、Microsoft ActiveX® コントロールの規制、クライアント コンピュータのロックダウンなどを柔軟に選択できます。
-
強力な暗号化機能を使用してソフトウェアを識別できるポリシー。ソフトウェア制限ポリシーでは、ハッシュやデジタル署名を使用してソフトウェアを識別できます。
ソフトウェア制限ポリシーの実装には、次の 3 つの段階があります。
-
管理者または管理を委任されたユーザーが、Microsoft 管理コンソール (MMC) のグループ ポリシー スナップインを使用して、Active Directory コンテナのサイト、ドメイン、または OU のポリシーを作成します。ソフトウェア制限ポリシーには別個のグループ ポリシー オブジェクト (GPO) を作成することをお勧めします。
注 :ローカルのスタンドアロン コンピュータ用に新しいソフトウェア制限ポリシーを作成するには、そのローカル コンピュータの Administrators グループのメンバである必要があります。これらのポリシー設定を構成するには、[Windows の設定] をクリックし、[セキュリティの設定] をクリックします。次に、[ソフトウェア制限のポリシー] をクリックします。
-
コンピュータ レベルのポリシーがダウンロードされ、コンピュータを起動した後に有効になります。ユーザーのポリシーは、ユーザーがシステムやドメインにログオンしたときに有効になります。ポリシーを更新するには、gpupdate.exe /force コマンドを実行します。
-
ユーザーがアプリケーションやスクリプトなどの実行可能ファイルを実行すると、ポリシーの優先規則に基づいて実行可能かどうかが判別されます。
制限しない設定または許可しない設定
ソフトウェア制限ポリシーは、次の 2 つの部分で構成されています。
-
実行可能なプログラムを指定する既定の規則
-
既定の規則に対する例外のインベントリ
ソフトウェアを識別するための既定の規則は、[制限しない] または [許可しない] のどちらかに設定できます。前者はすべてのソフトウェアの実行を許可する設定、後者はすべてのソフトウェアの実行を許可しない設定です。
既定の規則を [制限しない] に設定すると、管理者は、それに対する例外、つまり実行を許可しないプログラムを定義できます。管理が緩やかなクライアント コンピュータの環境では、既定の規則を [制限しない] に設定します。たとえば、既存のプログラムと競合するプログラムを阻止する規則を作成して、そのようなプログラムをユーザーがインストールできないように制限できます。
より安全な手法としては、既定の規則を [許可しない] に設定して、指定したプログラムだけを実行できるようにします。既定の規則を [許可しない] に設定した場合、管理者はアプリケーションごとに規則を定義し、実行を許可されたアプリケーションにユーザーがアクセスするためのセキュリティ ポリシー設定が各ユーザーのコンピュータで適切に構成されていることを確認する必要があります。既定の設定である許可しないは、Windows XP クライアント コンピュータを保護したい組織にとって、より安全な手法です。
ソフトウェアを識別するための 4 つの規則
ソフトウェア制限ポリシーの規則を使用すると、アプリケーションを識別して、そのアプリケーションの実行を許可するかどうかを指定できます。Windows XP の強制エンジンでは、ポリシーの規則と照会した後、アプリケーションの実行を許可します。規則を作成するには、アプリケーションを特定し、既定の設定である [許可しない] に対する例外として分類する必要があります。規則ごとにその目的を説明するコメントを挿入できます。
ソフトウェア制限ポリシーでは、次の 4 つの規則を使用してソフトウェアを識別します。
-
ハッシュの規則。実行可能ファイルの暗号化されたデジタル指紋を使用します。
-
証明書の規則。ソフトウェアの発行元によってデジタル署名された、.exe ファイルの証明書を使用します。
-
パスの規則。ローカルの汎用名前付け規則 (UNC)、つまり .exe ファイルの場所を示すレジストリ パスを使用します。
-
ゾーンの規則。Microsoft Internet Explorer を使用してダウンロードした場合、実行可能ファイルがあるインターネット ゾーンを使用します。
ハッシュの規則
ハッシュとは、ソフトウェア プログラムまたは実行可能ファイルが移動または名前変更されても、そのファイルを一意に識別できるデジタル指紋です。管理者はハッシュを使用して、ユーザーによる実行を禁止する特定のバージョンの実行可能ファイルまたはプログラムを追跡できます。
ハッシュの規則を使用すると、ファイルの内容を含む暗号化の計算に基づいてハッシュの規則の照合が行われるので、ソフトウェア プログラムを一意に識別できます。ハッシュの規則によって影響を受けるファイルの種類は、[ソフトウェア制限のポリシー] の詳細パネルにある [専用ファイルの種類] セクションに一覧表示されているファイルの種類のみです。
ハッシュの規則は、静的な環境で効果的に機能します。環境内のソフトウェアをアップグレードした場合、更新された実行可能ファイルごとにハッシュを再計算する必要があります。ハッシュの規則は、ソフトウェアの変更やアップグレードを頻繁に行わない環境に適しています。
ハッシュの規則は、次の 3 つのコロンで区切られたデータで構成されています。
-
MD5 または SHA-1 のハッシュ値
-
ファイルの長さ
-
ハッシュ アルゴリズムの ID 番号
デジタル署名されたファイルでは、署名に含まれる MD5 または SHA-1 のハッシュ値が使用されます。デジタル署名されていない実行可能ファイルでは、MD5 のハッシュ値が使用されます。
ハッシュ規則の形式は次のとおりです。
<ハッシュ値 MD5 または SHA1>:<ファイルの長さ>:<ハッシュ アルゴリズムの ID 番号>
次のハッシュ規則は、ファイルの長さが 126 バイトで、ファイルの内容が MD5 のハッシュ値 (7bc04acc0d6480af862d22d724c3b049) およびハッシュ アルゴリズム (ID 32771) に一致する例です。
7bc04acc0d6480af862d22d724c3b049:126:32771
管理者が制限または許可するファイルごとにハッシュ規則が含まれている必要があります。ソフトウェアを更新すると、元の実行可能ファイルのハッシュ値が新しいファイルのハッシュ値と一致しなくなるので、管理者はアプリケーションごとに新しいハッシュ規則を作成する必要があります。
実行可能ファイルのハッシュ規則を作成するには、次の手順を実行します。
既存の実行可能ファイルのハッシュ規則を作成するには
-
グループ ポリシー オブジェクト エディタのツールバーで、[Windows の設定] をクリックし、[セキュリティの設定] をクリックします。次に、[ソフトウェア制限のポリシー] をクリックし、[追加の規則] を右クリックします。
-
ショートカット メニューの [新しいハッシュの規則] をクリックします。
.gif)
拡大表示する
図 6.1 [新しいハッシュの規則] ダイアログ ボックス
-
[参照] をクリックして、ハッシュ規則を作成するファイルを選択します。この例では、実行可能ファイルの名前は Excel.exe です。[ファイル ハッシュ] ボックスに新しいファイルのハッシュ値が表示され、[ファイル情報] ボックスにアプリケーションのバージョン番号が表示されます。
-
この規則に適用する既定のセキュリティ レベル設定を選択します。選択できる動作は次のとおりです。
証明書の規則
証明書の規則では、プログラムの実行を許可するには、ソフトウェア発行元の証明書 (コード署名で使用) が存在している必要があることを指定します。たとえば、管理者はすべてのスクリプトおよび ActiveX コントロールに対して署名付きの証明書を要求できます。証明書の規則に適合する発行元は次のとおりです。
証明書の規則はソフトウェアを識別する強力な方法です。その理由は、証明書の規則では、ファイル名やその格納場所に関係なく、署名付きファイルの署名に含まれる署名付きのハッシュを使用してファイルが一致するかどうかを検証するからです。残念ながら、コード署名技術を使用しているソフトウェア ベンダはわずかしかなく、使用しているベンダでも、配布する実行可能ファイルの数パーセント程度しか署名していないのが現状です。そのため、証明書の規則は、一般に ActiveX コントロールや社内で開発されたアプリケーションなど、特定の種類の少数のアプリケーションに使用します。たとえば、組織でコンピュータとユーザーを管理するスクリプトをデジタル署名して、未署名のスクリプトがすべて阻止されるようにすることをお勧めします。ハッシュの規則を使用すると、証明書の規則の例外を指定できます。
証明書の規則を有効化する
証明書の規則は、既定では無効です。証明書の規則を有効にするには、次の手順を実行します。
証明書の規則を有効化するには
-
グループ ポリシー オブジェクト エディタで GPO を開きます。
-
コンソール ツリーで [セキュリティ オプション] をクリックします。
-
詳細パネルで [システム設定: ソフトウェア制限のポリシーのために Windows 実行可能ファイルに対して証明書の規則を使用する] をダブルクリックします。
-
[有効] をクリックして証明書の規則を使用可能にします。
ファイルにデジタル署名する方法の詳細については、www.microsoft.com/technet/prodtechnol/winxppro/maintain/rstrplcy.mspx にある「Using Software Restriction Policies to Protect Against Unauthorized Software」(英語情報) の「Step-by-Step Guide to Digitally Signing Files with Test Certificates」セクションを参照してください。
民間の Web サイトの多くは、民間の証明機関 (CA) によりソフトウェア コード署名されています。これらの証明書は、通常 1 年から数年の間有効です。証明書の規則を使用する場合、証明書には有効期限があるという点に注意する必要があります。証明書の有効期間の詳細については、ソフトウェアの発行元に問い合わせてください。民間の証明機関の証明書を入手すれば、それをファイルにエクスポートして証明書の規則を作成できます。証明書をエクスポートするには、次の手順を実行します。
証明書をエクスポートするには
-
証明書の依頼先として、信頼される発行元を選択します。この例では、証明書の発行元は Microsoft MSN® です。
.jpg)
拡大表示する
図 6.2 信頼された発行元が表示されている [セキュリティ警告] ダイアログ ボックス
-
[詳細] タブをクリックし、[ファイルにコピー] をクリックして証明書をファイルにコピーし、証明書の規則の作成に使用します。
.jpg)
拡大表示する
図 6.3 [証明書] ダイアログ ボックスの [詳細] タブ
-
[証明書のエクスポート ウィザードの開始] 画面が表示されます。[次へ] をクリックして作業を続けます。
.jpg)
拡大表示する
図 6.4 [証明書のエクスポート ウィザードの開始] 画面
-
[エクスポート ファイルの形式] ページで [DER encoded binary X.509 (.CER)] をクリックし、[次へ] をクリックすると、拡張子が .cer の証明書ファイルが作成されます。
.jpg)
拡大表示する
図 6.5 選択したエンコード形式が表示されている [証明書のエクスポート ウィザード] の [エクスポート ファイルの形式] ページ
-
[エクスポートするファイル] ページで、証明書の規則を説明するファイル名を指定します。証明書は、選択した場所に選択した名前で保存されます。
.jpg)
拡大表示する
図 6.6 ファイル名の例が表示された [証明書のエクスポート ウィザード] の [エクスポートするファイル] ページ
-
[証明書のエクスポート ウィザードの完了] ページに、証明書ファイルで指定した設定が一覧表示されます。設定を確認した後、[完了] をクリックしてファイルをエクスポートします。
.jpg)
拡大表示する
図 6.7 指定した設定が表示された [証明書のエクスポート ウィザードの完了] ページ
パスの規則
パスの規則では、フォルダまたはプログラムの完全なパスを指定します。パスの規則でフォルダを指定した場合、そのフォルダに含まれるすべてのプログラム、およびそのフォルダのサブフォルダに含まれるすべてのプログラムがパスの規則の対象となります。パスの規則では、ローカル パスと UNC パスの両方がサポートされています。
管理者は、特定のアプリケーションの起動元になるすべてのディレクトリをパスの規則で指定する必要があります。たとえば、デスクトップ ショートカットを使用してアプリケーションを起動する場合、パスの規則では、実行可能ファイルのパスと、アプリケーションを実行するショートカットのパスの両方を指定する必要があります。ユーザーが、パスの規則が部分的に指定されているアプリケーションを実行しようとすると、[制限されたソフトウェア] 警告ボックスが表示されます。
多くのアプリケーションでは、%ProgramFiles% 変数を使用して、Windows XP ベースのコンピュータのハード ドライブにファイルをインストールします。残念ながら、一部のアプリケーションは、ファイルが C:\Program Files サブディレクトリにコピーされるようにハード コードされています。この場合は、この変数を別のドライブの別のディレクトリに設定しても、アプリケーションは C:\Program Files にインストールされます。パスの規則を作成およびテストするときは、この制限に留意してください。
パスの規則に環境変数を使用する
環境変数を使用するようにパスの規則を定義することもできます。パスの規則はクライアントの環境で評価されるので、管理者は、環境変数を使用して特定のユーザー環境にパスの規則を合わせることができます。
次の 2 つは、パスの規則に環境変数を適用する方法の例を示しています。
-
"%UserProfile%" は、C:\Documents and Settings\
<User>
とその下位にあるすべてのサブフォルダに一致
-
"%ProgramFiles%\<Application>"
は、C:\Program Files\
<Application>
とその下位にあるすべてのサブフォルダに一致
注 :環境変数は、アクセス制御リスト (ACL) では保護されていません。環境変数には、ユーザー環境変数とシステム環境変数の 2 種類があります。コマンド プロンプトを起動する権限のあるユーザーは、ユーザー環境変数を別のパスに再定義できます。システム環境変数を変更できるのは、Administrators グループのユーザーのみです。
前の 2 つの例も役立ちますが、他の使用可能な環境変数も検討することをお勧めします。環境変数の全一覧については、www.microsoft.com/resources/documentation/windows/xp/all/proddocs/
en-us/ntcmds_shelloverview.mspx の「
「コマンド シェルの概要」を参照してください。
パスの規則にワイルドカードを使用する
パスの規則には、ワイルドカードとして "?" や "*" を組み込むことができます。次の例では、さまざまなパスの規則に適用したワイルドカードを示します。
-
\\DC - ??\login$ は \\DC - 01\login$ や \\DC - 02\login$ に一致
-
*\Windows は C:\Windows、D:\Windows、E:\Windows、およびこれらのディレクトリの下位にあるすべてのサブフォルダに一致
-
C:\win* は C:\winnt、C:\windows、C:\windir、およびこれらのディレクトリの下位にあるすべてのサブフォルダに一致
-
*.vbs は Windows XP Professional で拡張子 .vbs を持つすべてのアプリケーションに一致
-
C:\Application Files\*.* は特定のサブディレクトリにあるすべてのアプリケーション ファイルに一致
レジストリ パスの規則
多くのアプリケーションでは、Microsoft Windows レジストリのインストール フォルダまたはアプリケーション ディレクトリにパスを保存します。一部のアプリケーションは、ファイル システムの任意の場所にインストールできます。場所を特定するには、これらのアプリケーションのレジストリ キーを検索するためのパスの規則を作成します。
C:\Program Files\Microsoft Platform SDK などの特定のフォルダ パスや、%ProgramFiles%\Microsoft Platform SDK などの環境変数を使用してこれらの場所を特定することは容易ではありません。しかし、プログラムがアプリケーション ディレクトリをレジストリに格納していれば、そのレジストリに格納されている次のような値を使用するパスの規則を作成できます。
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PlatformSDK\Directories\
Install Dir%
この種のパスの規則はレジストリ パスの規則と呼ばれ、次の形式で記述します。
%<レジストリ ハイブ>\<レジストリ キー名>\<値の名前>%
注 :レジストリ パスの規則では、規則の末尾にある "%" 記号の直後に "\" を記述しません。レジストリ ハイブの名前は省略せずに記述する必要があります。省略すると動作しません。
既定の規則を [許可しない] に設定すると、オペレーティング システムがシステム ファイルにアクセスできるように、レジストリ パスの規則が 4 つ設定されます。これらのレジストリ パスの規則は、管理者や他のユーザーをシステムからロックアウトしないようにするための保護手段として作成され、[制限しない] に設定されます。これらの規則は、上級ユーザー以外は変更または削除しないでください。レジストリ パスの規則の設定は、次のとおりです。
-
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot%
-
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot%\*.exe
-
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
CurrentVersion\SystemRoot%\System32\*.exe
-
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\
CurrentVersion\ProgramFilesDir%
パスの規則の優先順位
複数のパスの規則が一致する場合、最も具体的な規則が最優先されます。次のパスは、具体的な規則から一般的な規則へ、優先順位の高い順に並んでいます。
ゾーンの規則
ゾーンの規則を使用すると、Internet Explorer で定義されている次のゾーンからダウンロードしたソフトウェアを識別できます。
-
インターネット
-
イントラネット
-
制限付きサイト
-
信頼済みサイト
-
マイ コンピュータ
インターネット ゾーンの規則の現在のバージョンは、Windows インストーラ (*.msi) パッケージのみに適用されます。また、この規則は、Internet Explorer を使用してダウンロードしたソフトウェアには適用されません。ゾーンの規則の影響を受けるその他すべてのファイルの種類は、この章で後に示す専用ファイルの種類の表に示します。この表には、すべてのゾーンの規則に共通の専用ファイルの種類の一覧が含まれています。
規則に関する推奨事項
次の表に示す情報を使用して、アプリケーションのユーザーや環境に最適な規則の種類を決定します。
表 6.1 特定のアプリケーションに最適な規則を決定する
|
タスク
|
推奨規則
|
|
特定のプログラムのバージョンを許可する、または許可しない
|
ハッシュの規則
ファイルを参照してハッシュを作成します。
|
|
必ず同じ場所にインストールされるプログラムを識別する
|
環境変数を使用したパスの規則
%ProgramFiles%\Internet Explorer\iexplore.exe
|
|
クライアント コンピュータの任意の場所にインストールできるプログラムを識別する
|
レジストリ パスの規則
%HKEY_LOCAL_MACHINE\SOFTWARE\ ComputerAssociates\InoculateIT\6.0\Path\HOME%
|
|
中央サーバーにある一連のスクリプトを識別する
|
パスの規則
\\SERVER_NAME\Share
|
|
DC01、DC02、DC03 など、一連のサーバーにある一連のスクリプトを識別する
|
ワイルドカードを使用したパスの規則
\\DC??\Share
|
|
ログイン スクリプトのディレクトリにあるものを除くすべての .vbs ファイルを許可しない
|
ワイルドカードを使用したパスの規則
*.VBSを [許可しない] に設定します。
\\LOGIN_SRV\Share\*.VBS を [制限しない] に設定します。
|
|
Flcss.exe という名前の付いたウイルスによりインストールされたファイルを許可しない
|
パスの規則
Flcss.exeを [許可しない] に設定します。
|
|
任意の場所で実行できる一連のスクリプトを識別する
|
証明書の規則
証明書を使ってスクリプトをデジタル署名します。
|
|
インターネット ゾーンの信頼済みサイトからインストールしたソフトウェアを許可する
|
ゾーンの規則
[信頼済みサイト] を [制限しない] に設定します。
|
ソフトウェア制限ポリシーの優先順位の規則
規則は指定した順序で評価されます。全般的にプログラムと一致する規則より、具体的に一致する規則の方が優先されます。セキュリティ レベルの異なる 2 つの同じ規則が同じソフトウェアに対して設定されている場合、最も高いセキュリティ レベルを持つ規則が優先されます。たとえば、1 つのソフトウェア プログラムに 2 つのハッシュの規則が適用され、一方のセキュリティ レベルが [許可しない] に、もう一方が [制限しない] に設定されている場合は、セキュリティ レベルには [許可しない] の規則が優先されるので、そのプログラムは実行されません。次の一覧では、具体性の高さの順で規則の優先順位を定義しています。
-
ハッシュの規則
-
証明書の規則
-
パスの規則
-
ゾーンの規則
-
既定の規則
ソフトウェア制限ポリシーのオプション
ここでは、ソフトウェア制限ポリシーの動作に影響を与えるさまざまな強制オプションについて説明します。これらのオプションにより、デジタル署名付きファイルに対する Microsoft Authenticode® の信頼の設定が強制される方法が変更されます。強制オプションには、ダイナミック リンク ライブラリ (DLL) チェックのオプションと管理者除外のオプションがあります。
DLL のチェック
多くのプログラムは、実行可能ファイルと多くのサポート用 DLL ファイルで構成されています。既定では、ソフトウェア制限ポリシーの規則は、DLL ファイルに対して強制されません。この既定の設定は、次の 3 つの理由から、ほとんどのユーザーにお勧めします。
-
主な実行可能ファイルを許可しないとプログラムは実行できないので、そのプログラムの構成要素である DLL ファイルを [許可しない] に設定する必要はありません。
-
DLL のチェックでは、アプリケーションにリンクするすべてのライブラリをチェックする必要があるので、システムのパフォーマンスが低下します。たとえば、ユーザーがログオン セッション中に 10 個のプログラムを実行している場合、ソフトウェア制限ポリシーにより各プログラムが評価されます。DLL のチェックが有効になっている場合、ソフトウェア制限ポリシーにより各プログラム内にロードされた DLLが評価されます。プログラムごとに 20 個の DLL が使用されている場合、10 個の実行可能プログラムで 200 個の DLL がチェックされるため、ソフトウェア制限ポリシーでは合計 210 個のファイルを評価する必要があります。
Internet Explorer のようなプログラムは、実行可能ファイル (iexplore.exe) と多数のサポート用 DLL で構成されています。
-
既定のセキュリティ レベルを [許可しない] に設定すると、プログラムを実行する前に、実行可能ファイル本体だけでなく .exe ファイルの構成要素となるすべての DLL も識別することになるため、システムへの負荷が増大します。
ウイルスの主な標的は実行可能ファイルですが、DLL を集中的に標的にするウイルスも存在します。したがって、環境内で実行するプログラムの安全性を可能な限り保証する場合は、DLL のチェックを行うこと ([ソフトウェアのファイルすべて] を選択) をお勧めします。
プログラムにウイルスが含まれていないことを確認するには、一連のハッシュの規則を使用して実行可能ファイルとその構成要素の DLL をすべて確認します。
DLL のチェック オプションを無効にするには
管理者を除外する
ほとんどのユーザーに対してはプログラムの実行を許可しないが、管理者に対してはすべてのプログラムの実行を許可する必要がある場合があります。たとえば、管理者が、ターミナル サーバーを使用して複数のユーザーが接続する共有コンピュータを使用する場合があります。このとき、一般のユーザーに対しては特定のアプリケーションのみをそのコンピュータ上で実行できるようにし、ローカルの Administrators グループのメンバにはすべてのアプリケーションを実行できるようにする場合があります。このように設定するには、[管理者を除外する] 強制オプションを使用します。
Active Directory のオブジェクトにリンクする GPO でソフトウェア制限ポリシーを作成する場合は、[管理者を除外する] オプションを使用せずに、GPO の [グループ ポリシーの適用] のアクセス許可を Administrators に与えないことをお勧めします。管理者に適用されない GPO の設定はダウンロードされないため、ネットワーク帯域幅の消費を抑えることができます。
注 :ローカル セキュリティ ポリシーのオブジェクトで定義するソフトウェア制限ポリシーでは、ユーザー グループをフィルタリングできません。したがって、[管理者を除外する] オプションを使用する必要があります。
管理者の除外オプションを有効にするには
実行可能ファイルを定義する
次の図に示す [専用ファイルの種類のプロパティ] ダイアログ ボックスには、ソフトウェア制限ポリシーによって制御されるファイルの種類が一覧表示されています。これらの種類のファイルは、実行可能ファイルとして扱われます。たとえば、スクリーン セーバー ファイル (.scr) は、エクスプローラでダブルクリックするとプログラムとしてロードされるため、実行可能ファイルとして扱われます。
ソフトウェア制限ポリシーの規則は、[専用ファイルの種類のプロパティ] ダイアログ ボックスに一覧表示されているファイルの種類にのみ適用されます。ユーザー環境で規則を適用するファイルの種類がある場合、そのファイルをリストに追加します。たとえば、Perl のスクリプト ファイルの場合、.pl ファイルや Perl エンジンに関連付けられている他のファイルの種類を [専用ファイルの種類のプロパティ] ダイアログ ボックスの [全般] タブにある [専用ファイルの種類] ボックスの一覧に追加します。
.jpg)
拡大表示する
図 6.9 [専用ファイルの種類のプロパティ] ダイアログ ボックス
このガイドで定義している GPO 設計では、.mdb および .lnk を削除し、.ocx を追加しています。次の表に、専用ファイルの種類の一覧を示します。
表 6.2 専用ファイルの種類
|
ファイル拡張子
|
説明
|
ファイル拡張子
|
説明
|
|
.ade
|
Microsoft Access プロジェクトの拡張子
|
.msc
|
Microsoft Common Console ドキュメント
|
|
.adp
|
Microsoft Access プロジェクト
|
.msi
|
Windows インストーラ パッケージ
|
|
.bas
|
Visual Basic クラス モジュール
|
.msp
|
Windows インストーラ修正プログラム
|
|
.bat
|
バッチ ファイル
|
.mst
|
Visual Test ソース ファイル
|
|
.chm
|
コンパイル済み HTML ヘルプ ファイル
|
.ocx
|
ActiveX コントロール
|
|
.cmd
|
Windows NT コマンド スクリプト
|
.pcd
|
Photo CD イメージ
|
|
.com
|
MS-DOS アプリケーション
|
.pif
|
MS-DOS プログラムへのショートカット
|
|
.cpl
|
コントロール パネルの拡張子
|
.reg
|
レジストリ エントリ
|
|
.crt
|
セキュリティ証明書
|
.scr
|
スクリーン セーバー
|
|
.exe
|
用途
|
.sct
|
Windows スクリプト コンポーネント
|
|
.hlp
|
Windows ヘルプ ファイル
|
.shs
|
シェル スクラップ オブジェクト
|
|
.hta
|
HTML アプリケーション
|
.url
|
インターネット ショートカット (Uniform Resource Locator)
|
|
.inf
|
セットアップ情報ファイル
|
.vb
|
Visual Basic ファイル
|
|
.ins
|
インターネット通信設定
|
.vbe
|
VBScript エンコード スクリプト ファイル
|
|
.isp
|
インターネット通信設定
|
.vbs
|
VBScript スクリプト ファイル
|
|
.js
|
JScript ファイル
|
.wsc
|
Windows スクリプト コンポーネント
|
|
.jse
|
JScript エンコード スクリプト ファイル
|
.wsf
|
Windows スクリプト ファイル
|
|
.mde
|
Microsoft Access MDE データベース
|
.wsh
|
Windows スクリプト ホスト設定ファイル
|
信頼された発行者
[信頼された発行者のプロパティ] ダイアログ ボックスを使用すると、信頼された発行者を選択できるユーザーを設定できます。また、証明書失効の確認がある場合は、発行者を信頼する前にどの証明書の失効を確認するのかを指定することもできます。証明書の規則の設定を有効にすると、ソフトウェア制限ポリシーにより証明書失効リスト (CRL) がチェックされ、ソフトウェアの証明書および署名が有効であることを確認できます。ただし、証明書付きのプログラムを起動すると、パフォーマンスが低下する場合があります。
次の図に示す [信頼された発行者のプロパティ] ダイアログ ボックスの [全般] タブの下にあるオプションを使用すると、ActiveX コントロールやその他の署名付きコンテンツに関する設定を構成できます。
.jpg)
拡大表示する
図 6.10 [信頼された発行者のプロパティ] ダイアログ ボックス
次の表に、ActiveX コントロールやその他の署名付きコンテンツに関する信頼された発行者のオプションを示します。
表 6.3 信頼された発行者のタスクと設定
|
設定名
|
タスク
|
|
エンタープライズの管理者
|
エンタープライズの管理者にのみアクティブな署名付きコンテンツに関する決定を許可する場合に使用します。
|
|
ローカル コンピュータの管理者
|
ローカル コンピュータの管理者にのみアクティブな署名付きコンテンツに関する決定を許可する場合に使用します。
|
|
エンド ユーザー
|
すべてのユーザーにアクティブな署名付きコンテンツに関する決定を許可する場合に使用します。
|
|
発行者
|
ソフトウェアの発行者が使用している証明書が失効していないことを確認する場合に使用します。
|
|
タイムスタンプ
|
組織がアクティブなコンテンツへのタイムスタンプの割り当てに使用する証明書が失効していないことを確認する場合に使用します。
|
ソフトウェア制限ポリシーの設計と展開
ここでは、グループ ポリシー スナップインを使用してソフトウェア制限ポリシーを管理する方法、ポリシーを初めて編集する際の考慮事項、およびユーザー グループにソフトウェア制限ポリシーを適用する方法を説明します。また、ソフトウェア制限ポリシーの展開に関する問題についても説明します。
グループ ポリシーとの統合
グループ ポリシー スナップインを使用して、一連のクライアント コンピュータやこれらのコンピュータにログオンするすべてのユーザーに対するソフトウェア制限ポリシーを管理できます。ポリシーは、このガイドで定義しているデスクトップ OU とラップトップ OU に適用されます。
ドメイン
管理者は、ソフトウェア制限ポリシー用に個別の GPO を作成する必要があります。この方法により、予期しない問題が発生した場合でも、オブジェクトに適用されているその他のポリシーを妨げることなくグループ ポリシーを無効にできます。
ローカル
ローカル ポリシーは、第 5 章「スタンドアロン Windows XP クライアントをセキュリティで保護する」で説明しているとおり、環境内のスタンドアロン クライアント コンピュータで構成する必要があります。
ポリシーを設計する
ここでは、ソフトウェア制限ポリシーを設計および展開する際の手順について説明します。ポリシーを設計するには、いくつかの事項を決定する必要があります。これらの決定事項を次の表に示します。
表 6.4 ポリシーの設計に関する重要な考慮事項
|
決定事項
|
考慮すべき要素
|
|
ラップトップか、ワークステーションか
|
ユーザー環境のモバイル ユーザーのニーズを調査して、デスクトップのポリシーとは異なるポリシーがラップトップに必要かどうかを判断します。一般的に、ラップトップの場合、デスクトップよりも柔軟なポリシーが必要です。
|
|
サーバー共有、ログオン スクリプト、およびホーム ドライブ
|
サーバー共有やホーム ディレクトリから起動するすべてのアプリケーションに対して、パスの規則を定義する必要があります。ログオン スクリプト ファイルはパスの規則に追加できます。スクリプトにより他のスクリプトが呼び出される場合、そのスクリプトの実行場所もパスの規則に追加します。
|
|
GPO またはローカルのセキュリティ ポリシー
|
このガイドでは、GPO を使用して設計します。ただし、ローカル ポリシーが設計に及ぼす影響について考慮する必要があります。
|
|
ユーザーまたはコンピュータのポリシー
|
この設計ではすべての設定をコンピュータ レベルで適用します。
|
|
既定のセキュリティ レベル
|
既定の設定を [許可しない] に構成し、それに基づいて他のポリシーを構成することをお勧めします。既定の設定を [制限しない] に構成することもできます。
|
|
追加の規則
|
既定の設定を [許可しない] に構成する場合、必要に応じて、オペレーティング システムのパスの規則を追加して適用する必要があります。[許可しない] に構成すると、自動的に 4 つの規則が作成されます。
|
|
ポリシーのオプション
|
ローカル セキュリティ ポリシーを使用していて、環境内のクライアント コンピュータの管理者にそのポリシーを適用しない場合は、ポリシーの強制で [ローカル管理者を除くすべてのユーザー] を選択します。
実行可能ファイルとスクリプトのほか、DLL もチェックする場合は、ポリシーの強制で、DLL をチェックするオプションの [ソフトウェアのファイルすべて] を選択します。
専用ファイルの種類の既定の一覧にないファイルの種類に対して規則を設定する場合は、[専用ファイルの種類のプロパティ] ダイアログ ボックスで必要に応じてそれらのファイルを追加するオプションを使用します。
ActiveX コントロールやその他の署名付きコンテンツのダウンロードを決定できるユーザーを変更する場合は、[信頼された発行者のプロパティ] ダイアログ ボックスの [全般] タブで [発行者] のチェック ボックスをオンにします。
|
|
サイト、ドメイン、または OU に対してポリシーを適用する
|
ポリシーはデスクトップまたはラップトップが所属する OU にあります。
|
注 :このガイドでは、ソフトウェア制限ポリシーをコンピュータ レベルで強制することをお勧めしていますが、ユーザー レベルで強制した方がよい場合も多くあります。たとえば、ターミナル サーバー アプリケーションのサーバーやコール センターのワークステーションなどの共有コンピュータを使用している組織では、特定のユーザーに対しては一連のアプリケーションの実行を許可し、その他すべてのユーザーに対してはアプリケーションへのアクセスを阻止する場合があります。
最適な方法
緊急時にポリシーを無効にする必要がある場合、その他のドメインやローカルのポリシーに影響を与えないようにするため、ソフトウェア制限ポリシー用に個別の GPO を作成することをお勧めします。
また、OU の設計段階でソフトウェア制限ポリシーによって誤ってワークステーションをロックダウンした場合は、コンピュータをセーフモードで再起動し、ローカル管理者としてログオンしてポリシーを変更します。Windows をセーフモードで起動すると、ソフトウェア制限ポリシーが適用されません。コンピュータをセーフ モードで起動した後、Gpupdate.exe を実行して再起動します。
セキュリティを最大限確保するために、ソフトウェア制限ポリシーと ACL を併用し、ユーザーには管理者権限を与えないようにします。ユーザーが、許可されていないファイルの名前変更や移動、または制限されていないファイルの上書きなどを行って、ソフトウェア制限ポリシーの回避を試みる可能性があります。ACL を使用することで、ユーザーがこれらの操作を実行できないようにします。ローカル Administrators グループのメンバーは、ソフトウェア制限ポリシーの実装をバイパスできます。そのため、ユーザーには管理者権限をできる限り与えないようにすることをお勧めします。
ログイン スクリプトは、通常、ドメイン コントローラまたは中央サーバーの SYSVOL にあります。ドメイン コントローラは、ログオンのたびに変化するのが一般的です。既定の規則が [許可しない] に設定されている場合、ログオン スクリプトの場所を識別する規則を作成します。ログオン サーバーの名前が似ている場合は、ワイルドカードを使用してそれらの場所を特定するか、設定が制限されていないログオン スクリプト名を使用するようにしてください。
注 :新しいソフトウェア制限ポリシーの設定は、実際のドメインに適用する前にテスト環境で入念にテストしてください。新しいソフトウェア制限ポリシーの設定は、当初の予想とは異なる動作をする場合があります。入念にテストすることで、ソフトウェア制限ポリシーの設定をネットワーク上で展開したときに、問題が発生する可能性が減少します。
プロセスの手順
次の手順に従って、ソフトウェア制限ポリシーを設計し、環境内のラップトップおよびデスクトップにそのポリシーを GPO として適用します。
手順 1. OU の GPO を作成する
ユーザー環境のデスクトップおよびラップトップ用に作成した OU の場所を特定します。スタンドアロン クライアント コンピュータで作業している場合、ポリシー設定はローカル コンピュータ ポリシーに格納されています。このポリシーで [プロパティ] をクリックして新しい GPO を作成します。組織の名前付け規則に応じてポリシーに名前を付けます。このポリシーはソフトウェア制限の強制のみに使用されることに注意してください。
手順 2. ソフトウェア制限ポリシーを設定する
GPO を選択して [編集] をクリックします。Windows の設定\セキュリティの設定\ソフトウェア制限のポリシーへとツリーを展開します。ポリシーを初めて編集する場合は、次のメッセージが表示されます。
ソフトウェア制限のポリシーが定義されていません。
このメッセージは、ポリシーを作成すると既定の値が定義されることを警告しています。これらの既定の値によって、他のソフトウェア制限ポリシーの設定が上書きされる場合があります。この時点では、ソフトウェア制限ポリシーが設定されていないので、既定の設定を使用して編集を開始します。[操作] メニューを右クリックし、[新しいソフトウェア制限のポリシー] をクリックします。
手順 3. パスの規則を設定する
ワークステーションで使用するアプリケーションやスクリプトを決定したら、パスの規則を設定できます。プログラムによっては、タスクを実行するために他のプログラムを起動するものがあります。環境内のソフトウェア アプリケーションは、他のプログラムをサポートするプログラムに依存している場合があります。現在インストールされているソフトウェアのインベントリまたはインストール ドキュメントはパスの規則を追跡するうえで役に立ちます。以下は、ワークステーションの設計に関するガイドラインの一例です。
手順 4. ポリシーのオプションを設定する
このガイドで定義している設計で推奨されるポリシー設定のオプションを以下に示します。これらのオプションは、デジタル署名付きファイルに対する強制動作の範囲、つまり Authenticode の信頼の設定を変更します。
-
強制。コンピュータがドメインの一部である場合、Domain Admins グループが自動的に Administrators グループに追加されます。
-
ユーザーに適用する。ローカル管理者以外のすべてのユーザーが対象になります。このオプションを使用すると、各アプリケーションの起動が遅くなります。この問題を改善するには、設計で DLL をチェックしないポリシーを構成します。
-
ファイルに適用する。DLL などのライブラリを除くすべてのソフトウェアのファイルが対象になります。このオプションを使用すると、各アプリケーションの起動が遅くなります。この問題を改善するには、設計で DLL をチェックしないポリシーを構成します。
-
専用ファイルの種類。このガイドで定義している GPO の設計では、.ocx ファイルが一覧に追加され、.mdb および .lnk ファイルの種類が削除されています。必要に応じてカスタム アプリケーションのファイルの種類の拡張子を追加して、それらに同じ規則を適用することもできます。
-
信頼された発行者。このガイドで定義している GPO 設計の場合、Administrators グループが有効であり、[信頼された発行者のプロパティ] で [ローカル コンピュータの管理者] が選択されています。
発行者を信頼する前に、GPO の設計段階で [発行者] オプションのチェック ボックスをオンにして、ポリシーの証明書が有効であることを確認します。
手順 5. 既定の設定を適用する
ポリシー設定を既定の [制限しない] に構成することをお勧めします。これによって、ソフトウェアの制限を適用する前に、ポリシーが適切に初期化されます。ポリシーの設定を確認した後、既定の設定を [許可しない] にリセットします。
手順 6. ポリシーをテストする
コンピュータがドメインに属する場合、ポリシーの適用先となる OU コンテナにコンピュータを移動します。テスト コンピュータを再起動してログオンします。テスト計画には、ポリシーを適用して各アプリケーションをどのように操作するかという説明が必要です。アプリケーションを実行して、すべてのアプリケーションが正常に機能し、アプリケーションのすべての機能が使用できることを確認します。アプリケーションの機能を検証した後に、アプリケーションへの攻撃をシミュレートして、ポリシーにセキュリティ上の脆弱性がないことを確認します。
コンピュータがスタンドアロン クライアントの場合、テスト コンピュータにログオンしてテスト計画を実行します。アプリケーションの検証が終了したら、アプリケーションへの攻撃を再度シミュレートして、ポリシーにセキュリティ上の脆弱性がないことを確認します。
ソフトウェア制限ポリシーを展開する
ポリシーを入念にテストした後、環境内のデスクトップやラップトップの OU にそのポリシーを適用します。コンピュータがスタンドアロン クライアント コンピュータの場合、クライアントのローカル コンピュータの設定にポリシーを適用します。MMC の [コンピュータとユーザー] スナップインを開き、デスクトップまたはラップトップの OU のコンテナまでディレクトリを展開します。次に、グループ ポリシー オブジェクト エディタを使用して新規の GPO を作成します。次の表に基づいて、Windows の設定\セキュリティの設定にあるソフトウェア制限のポリシーでプロパティを編集し、適切な設定を適用します。
表 6.5 セキュリティ レベル
|
UI の既定の規則
|
説明
|
設定
|
|
[許可しない]
|
ユーザーのアクセス権に関係なく、ソフトウェアが実行されません。
|
この既定の規則を使用します。
|
表 6.6 追加の規則
|
パスの規則
|
設定
|
|
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%
|
制限しない
|
|
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\*.exe
|
制限しない
|
|
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\SystemRoot%\System32\*.exe
|
制限しない
|
|
%HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\ProgramFilesDir%
|
制限しない
|
|
*.vbs
|
許可しない
|
|
G:\Group Applications
|
制限しない
|
|
Logon.bat またはログオン スクリプト
|
制限しない
|
|
*\Program Files
|
制限しない
|
表 6.7 ファイルまたはユーザーへの強制
|
強制オプション
|
推奨設定
|
|
ソフトウェア制限ポリシーの適用ファイル
|
DLL などのライブラリを除くソフトウェアのファイルすべて
|
|
ソフトウェア制限ポリシーの適用ユーザー
|
ローカル管理者を除くすべてのユーザー
|
表 6.8 専用ファイルの種類
|
ファイルの種類
|
推奨設定
|
|
専用ファイルの種類のプロパティ
|
.mdb および .lnk を削除して .ocx を追加します。
|
表 6.9 信頼された発行者
|
信頼された発行者
|
推奨設定
|
|
次のユーザー グループが信頼された発行者を選択することを許可する
|
ローカル コンピュータの管理者
|
|
証明書が失効しているか確認する
|
[発行者] オプションをオンにします。
|
まとめ
ソフトウェア制限ポリシーを使用すると、管理者は、Windows XP Professional を実行しているコンピュータ上のソフトウェアを効果的に特定および制御できます。ポリシーを作成すると、悪質なスクリプトを阻止するだけでなく、環境内のコンピュータをさまざまな方法でロックダウンしたり、アプリケーションを実行できないようにしたりすることもできます。エンタープライズ組織では、GPO を使用してソフトウェア制限ポリシーを管理し、組織内のさまざまなユーザー グループやコンピュータのニーズを満たすように各ポリシーをカスタマイズすることが最適な方法です。スタンドアロン環境ではユーザー グループを管理しないことをお勧めします。
ソフトウェア制限ポリシーを正しく適用すれば、組織内のコンピュータの整合性および管理性が向上し、これらのコンピュータのオペレーティング システムを保有および保守するコストの削減につながります。
関連情報
次のリンク先には、Windows XP Professional のセキュリティに関する追加情報があります。