いよいよAppLockerの規則を作成するのだが、規則には以下の3つのカテゴリがある。

実行可能ファイルの規則

記事1
面白かったら拍手をクリック!

EXEファイル、COMファイル、DLLファイルなどのプログラムファイルの実行の可否を設定。ただし、DLLファイルは種々のプログラムから頻繁に呼び出されるため、DLLファイルを制限するとプログラムの検査頻度が肥大化し、著しくパフォーマンスが低下することがある。

Windowsインストーラの規則

MSIファイルなどのインストールプログラムの実行を制限する。

スクリプトの規則

バッチコマンドやWindows PowerShellスクリプトなど、スクリプトプログラムの実行を制限する。

ここでは、実行可能ファイルを制限し、ドメイン管理者以外はWindows標準ツールしか実行できないように設定してみる。一から規則を作成する方法もあるが、「規則の自動生成」や、「既定の規則」を利用するのが便利だろう。

「規則の自動生成」では、現在インストールされているプログラムを走査し、各プログラムの実行規則を自動作成する。そして、その中から不要なプログラムの規則を削除すれば、必要なプログラムのみの実行規則を簡単に作成できる。

一方、「既定の規則」は、以下の3つの規則が適用される。

・Program Filesフォルダ内にあるすべてのファイル:Everyone:許可
・Windowsフォルダ内にあるすべてのファイル:Everyone:許可
・すべてのファイル:BUILTIN\Administrators:許可

新規運用のPCに、基本となる規則を作成するカスタマイズベースとして最適な設定だろう。

ここでは、「既定の規則」を使ってみる。

「コンピュータの構成」→「ポリシー」→「Windowsの設定」→「セキュリティの設定」→「アプリケーション制御ポリシー」→「AppLocker」を展開し、「実行可能ファイルの規則」を右クリックして「既定の規則の作成」メニューをクリックする

既定の規則では、ローカルPCの管理者に全プログラムの実行を許可している。既定の規則そのままで、ローカル管理者に全プログラムの実行を許可したのでは制限にならないので、全プログラムの実行を許可するグループを、ローカルPCのAdministratorsではなくドメイン管理者(Domain Admins)に変更する。

「既定の規則」で作成された「すべてのファイル」を右クリックし、プロパティを開く

「許可のプロパティ」で「選択」ボタンをクリック

「Domain Admins」と入力し、「OK」ボタンをクリック

実行許可の対象がDomain Adminsになったことを確認して、「OK」ボタンをクリック

ここでは、Windowsシステムフォルダ以外のプログラムの実行を禁止するために、既定のアプリケーションフォルダ(C:\Program Files)に対する実行許可を削除する。

「既定の規則」の「Program Filesフォルダ内に...」で右クリックして、「削除」をクリック

設定が終了したら、グループポリシー管理エディターを閉じる。

こうして残った規則は以下の2つになる。

・誰でも、C:\Windows以下のフォルダのプログラム(標準ツールなど)を実行できる。
・ドメイン管理者は、すべてのプログラムを実行できる。

2つの規則だけを残した

それ以外のプログラムの実行は禁止される。次にAppLocker設定を有効化する。

「AppLocker」を右クリックし、「プロパティ」メニューをクリック

「実行可能ファイルの規則」について「構成済み」チェックボックスをオンにし、「規則の実施」を選択して「OK」ボタンをクリックする。なお、このとき「監査」を選択すると、プログラムの実行状況だけログとして記録し、実際の実行制限しない

規則を作成したら、他のグループポリシーと同様に、ドメインにGPOを適用できるようにする。

サーバーマネージャーでドメインのノードを右クリックし、「既存のGPOのリンク」メニューをクリック

AppLockerを設定したGPO「プログラム実行の制限」をクリックして選択し、「OK」ボタンをクリック

ドメインにGPO「プログラム実行の制限」をリンク

以上で設定は終了だ。さっそく試してみよう。

この設定を即時反映させるために、DCのコマンドプロンプトで、「gpupdate /force」コマンドを実行よう。、クライアントPCではドメイン管理者以外のユーザーでログオンするか、ログオン済みであれば、クライアントPCでも「gpupdate /force」コマンドを実行する。

gpupdateコマンドで、強制的にグループポリシーの同期をとる

実際にクライアントPCにドメイン管理者以外のユーザーでログオンしてプログラムを実行してみると、電卓は正常に実行できるが、Adobe Reader(C:\Windowsにはない)は、実行をブロックした

記事1
面白かったら拍手をクリック!

今回は必要最小限の設定でAppLockerを試してみたが、実際の運用ではより複雑な設定が必要になることも予測される。幸い、AppLockerには、プログラムの実行履歴だけを収集して動作を検証できる「監査」の機能があるので、監査を活用して運用前に検証するといいだろう。管理者が管理ツールを使用できないような笑うに笑えない設定ミスも予測できるからだ。

なお、規則を新規作成するときは、対象となるプログラムを電子証明書、パス、ハッシュで明示的に指定する必要がある。

プログラム(ここではInternet Explorer)を選択して、電子証明書で指定する例。左側のスライダーを調節して、バージョン指定、製品名で指定、発売元で指定など、制限する範囲のレベルを調節できる