■Windows Server 2003では,管理機能が大幅に改善されており,特にグループ・ポリシーには,いくつか重要な改善点がある。この連載では2回にわたって,Windows Server 2003になって拡張されたグループ・ポリシーの基本機能を,実際に試しながら紹介する。前編は「ソフトウエアの制限のポリシー」を使ったアプリケーションの実行制限について。必要なスクリプトだけを実行可能にして,それ以外のスクリプトを実行禁止にすることも可能になった。

(福田真紀子=グローバル ナレッジ ネットワーク)

 Active Directoryドメインの中で,クライアントやコンピュータをよりきめ細かく管理するには,グループ・ポリシーが欠かせない。Windows Server 2003では,グループ・ポリシーの機能がいくつか改善されている。主なものは,(1)GPMC(グループ・ポリシー管理コンソール),(2)ソフトウエアの制限のポリシー,(3)WMI(Windows Management Instrumentation)によるフィルタリング,(4)ポリシーの結果セット,などがある。(1)のGPMCに関しては,筆者が別の記事で解説しているので,そちらをご覧いただきたい(該当記事)。今回の連載では,グループ・ポリシーの基本機能の改良として,(2)~(4)のテーマを2回にわたって解説していく。


△ 図をクリックすると拡大されます
図1●Windows Server 2003の[グループポリシーオブジェクトエディタ]の画面

Windows 2000では意味がなかったアプリの実行禁止
 まずは,グループ・ポリシーの復習をしておこう。グループ・ポリシーは,ユーザーやコンピュータの振る舞いを制限する条件「GPO(グループ・ポリシー・オブジェクト)」を,Active Directoryのドメイン,サイト,組織単位(OU)といった管理対象に適用することで,Windowsネットワークの管理を実現していく。

 グループ・ポリシーを設定するには,[Active Directoryユーザーとコンピュータ]や[Active Directoryサイトとサービス]といった管理ツールから,管理対象になるドメインやサイト,OUなどのプロパティ画面を呼び出す。ここで[グループポリシー]タブに切り替えて,リストにあるグループ・ポリシー・オブジェクトをダブル・クリックするか,[編集]ボタンをクリックすると,グループ・ポリシーを編集する画面が現れる。これはWindows 2000では[グループポリシー]というタイトルの画面であるが,Windows Server 2003では[グループポリシーオブジェクトエディタ]というタイトルに変わっている(図1)。この画面で,グループ・ポリシーの細かい設定を行う。


△ 図をクリックすると拡大されます
図2●Windows 2000における[指定されたWindowsアプリケーションを実行しないのプロパティ]画面

 グループ・ポリシーを使用すると,クライアント側で実行するソフトウエアを管理者側から制限できる。最近はウイルスの問題が非常に多いため,許可されていないVBScriptの実行を禁止したり,Webからダウンロードしたファイルを実行させないようにすることは,とても重要である。Windows Server 2003のグループ・ポリシーでは,新しく「ソフトウエアの制限のポリシー」が導入されており,アプリケーションの実行を完全に禁止できる。これに対して,従来のWindows 2000のグループ・ポリシーには,アプリケーションの実行を制限する機能はあったが,完全な禁止にはできなかった。

 Windows 2000でアプリケーションの実行をどうやって禁止するか確認してみよう。


△ 図をクリックすると拡大されます
図3●確かにプログラムは実行できない(Windows 2000の場合)

(1)ドメイン,サイト,OUなどのプロパティ画面の[グループポリシー]タブで,[新規]ボタンをクリックして,GPOを作成しておく。
(2)[グループポリシー]エディタを起動し左ペインで[ユーザーの構成]-[管理用テンプレート]-[システム]を開く。
(3)右ペインの[指定されたWindowsアプリケーションを実行しない]を有効にし,「実行を許可しないアプリケーションの一覧」の[表示]をクリックし,禁止したいアプリケーション(ここではCustomApp.exeという名前)を追加する( 図2)。

 では,実際にそのアプリケーションが実行できないかどうかを試してみよう。GPOが設定されているユーザーとしてログオンし,先ほど実行を許可しないに登録したソフト(CustomApp.exe)を実行してみると,以下のようなメッセージが表示されて,実行できないことが分かる(図3)。

 このように,Windows 2000でもユーザーが実行可能なアプリケーションを制限できる。ただし,このポリシーは,エクスプローラ処理によって実行されるプログラムをユーザーが実行できないようにするだけである。例えば,ファイルへのアクセス権があるユーザーなら,実行ファイルの名前を変えてしまうことでそのプログラムを実行できてしまう。他にも,コマンド・プロンプトからも実行できてしまう。

ハッシュとデジタル証明書を使う「ソフトウエアの制限のポリシー」
 Windows Server 2003のグループ・ポリシーでは,「ソフトウエアの制限のポリシー」が追加された。これは,ファイルをハッシュ(細切れ)したり,デジタル証明書による許可を使ったりすることで,アプリケーションの実行を禁止できるようになった。


△ 図をクリックすると拡大されます
図4●[ソフトウエアの制限のポリシー]の[セキュリティレベル]で「既定のセキュリティ・レベル」が[制限しない]になっていることを確認する

 「ソフトウエアの制限のポリシー」では,まず,「既定のセキュリティ・レベル」を設定する。「既定のセキュリティ・レベル」が[許可しない]となっている場合,デフォルトの状態ではクライアントはどのアプリケーションも実行できず,「追加の規則」によって実行できるアプリケーションを指定する。一方,「既定のセキュリティ・レベル」が[制限しない]となっている場合は,デフォルトですべてのアプリケーションを実行でき,「追加の規則」によって禁止するアプリケーションを指定する。

 アプリケーション実行の是非を決める「追加の規則」では,次の4種類の指定方法が用意されている。

●ハッシュ規則 …ファイルのハッシュを作成し,それを規則とする。
●パス規則 …ファイル/フォルダのパスを規則とする。
●証明書規則 …X.509に準拠したデジタル証明書を規則とする。デジタル署名されているActiveXコントロールやOSのバイナリ,MSIファイルなどを指定できる。
●ゾーン規則 …インターネット・ゾーンを規則とする。


△ 図をクリックすると拡大されます
図5●[追加の規則]から[新しいハッシュの規則]を選択する

ハッシュ規則によるソフトウエアの制限
 では,実際にソフトウエアの制限のポリシーを設定してみよう。ここでは,「TempStaff」OUに所属するユーザー「Temp1」に対し,ハッシュ規則を使用してレジストリ・エディタ(Regdt32.exe)を使用禁止にするポリシーを作成する。今回は,グループ・ポリシーの管理にグループ・ポリシー管理コンソール(GPMC:Group Policy Management Console)を使用する。GPMCの使い方は,前出の「グループ・ポリシー管理コンソール(GPMC)の使い勝手を試す」(該当記事)を参照してほしい。

(1)スタート・メニューから[管理ツール]-[グループポリシーの管理]を起動する。
(2)「TempStaff」OUを右クリックし,現れたメニューから[GPOの作成およびリンク]を選択する。
(3)[新しいGPO]というダイアログ画面が現れるので,新しいGPOの名前を入力する。ここでは,「Software Restriction Policy」という名前を設定した。
(4)「Software Restriction Policy」ポリシーへのリンクを右クリックし,現れたメニューから[編集]を選択して,グループ・ポリシー・オブジェクト・エディタを起動する。


△ 図をクリックすると拡大されます
図6●[新しいハッシュの規則]の画面
(5)グループ・ポリシー・オブジェクト・エディタの左ペインで,[ユーザーの構成]-[Windowsの設定]-[セキュリティの設定]-[ソフトウエアの制限のポリシー]とクリックして選択し,[ソフトウエアの制限のポリシー]を右クリックして現れたメニューから,[新しいソフトウエアの制限のポリシー]を選択する(図1 )。
(6)すると左ペインの[ソフトウエアの制限のポリシー]の下に[セキュリティレベル]と[追加の規則]が現れる。さらに[セキュリティレベル]をクリックして右ペインを見ると「既定のセキュリティ・レベル」が分かる。ここでは[制限しない]の方にチェックが入っていることを確認する(図4)。
(7)左ペインにできたもう1つの[追加の規則]を右クリックし,現れたメニューから[新しいハッシュの規則]を選択する(図5 )。


△ 図をクリックすると拡大されます
図7●確かにレジストリ・エディタは実行できない
(8)[新しいハッシュの規則]というダイアログ画面が手前に現れるので,ハッシュするファイルとしてRegedt32.exeを選択し,セキュリティ・レベルが[許可しない]になっていることを確認して[OK]ボタンをクリックする(図6 )。

 以上で設定は完了である。では,Temp1ユーザーでログオンして,レジストリ・エディタを実行してみよう。レジストリ・エディタを実行すると,以下のようなメッセージが表示される(図7)。今回はファイルのハッシュを使用して禁止しているため,コマンド・ラインから実行しても,ファイル名を変更しても,同じ実行ファイルであれば起動できない。