【AD GPO】AppLockerの設定と動作確認

企業では、ユーザーに使わせるアプリケーションやそのバージョンを管理したい場合があります。サードパーティ製品でも管理できますが、Windows には標準で AppLocker という機能があり、グループポリシーで配布して管理できます。

この記事では、Active Directory 環境のグループポリシーを使い、Windows 10 端末に対して AppLocker を設定し、動作を確認します。グループポリシーについては、下記の記事を参考にしてください。

>> 参考記事:【Active Directory】グループポリシーの構成・適用・更新

この記事でわかること
  1. Application Identity サービスを GPO で自動起動にする
  2. Windows インストーラーの規則で、発行元・パス・ファイル ハッシュを条件に MSI の実行を制限する
  3. 「監査のみ」でブロックせずにログだけを取り、イベント ビューアーで確認する

検証では、GPO-AppLocker という GPO を作り、端末のコンピューター アカウントがある OU にリンクしています。制御するアプリケーションには、Firefox のインストーラー(バージョン 102.3.0esr と 105.0 の MSI)を使います。

AppLockerのしくみ

AppLocker は、ファイルを実行しようとしたときに規則を確認し、実行させるかどうかを決めます。規則が1つでもある規則のコレクション(後述)では、許可の規則に一致したファイルだけが実行でき、それ以外はブロックされます(図1)。ブロックせずに記録だけする「監査のみ」のモードもあります。

ファイルを実行.msi など AppLocker が規則を確認 Application Identity 一致 不一致/拒否 許可の規則に一致 → 実行イベント 8005(情報) 実施:ブロックイベント 8007(エラー) 監査のみ:実行して記録イベント 8006(警告)
図1 AppLocker が実行を判断する流れ

サービスの起動(Application Identity)

AppLocker の規則は、端末で Application Identity サービスが動いていないと適用されません。既定では、このサービスのスタートアップの種類は「手動(トリガー開始)」で、起動していません。

画面イメージについて

この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。

GPOでサービスを自動起動にする

サービスのスタートアップの種類も GPO で変えられます。GPO-AppLocker のグループ ポリシー管理エディターで コンピューターの構成 ›› ポリシー ›› Windows の設定 ›› セキュリティの設定 ›› システム サービス を開き、Application Identity をダブルクリックします。

Application Identityのプロパティ画面イメージ
セキュリティ ポリシーの設定
1このポリシーの設定を定義する☑
2サービスのスタートアップ モード◉ 自動○ 手動○ 無効
OKキャンセル適用
図2 Application Identity を自動にする(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1このポリシーの設定を定義するチェックを入れる
2スタートアップ モード「自動」を選び、[適用][OK]

端末で gpupdate を実行してポリシーを更新し、サービスの一覧で Application Identity が動いていることを確かめます。

サービス(端末)画面イメージ
名前状態スタートアップの種類
Application Identity(変更前)手動 (トリガー開始)
1Application Identity(gpupdate 後)実行中自動 (トリガー開始)
図3 Application Identity の状態(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1実行中/自動GPO が適用され、サービスが自動で起動するようになった

AppLockerの構成

AppLocker は、グループ ポリシー管理エディターの コンピューターの構成 ›› ポリシー ›› Windows の設定 ›› セキュリティの設定 ›› アプリケーション制御ポリシー ›› AppLocker で設定します。規則は、対象のファイルの種類ごとに「規則のコレクション」に分かれています。

規則のコレクション対象のファイル
実行可能ファイルの規則.exe、.com
Windows インストーラーの規則.msi、.msp、.mst
スクリプトの規則.ps1、.bat、.cmd、.vbs、.js
パッケージ アプリの規則.appx など(Microsoft Store アプリなどのパッケージ アプリとそのインストーラー)
DLL の規則.dll、.ocx(既定では無効。AppLocker のプロパティの[詳細設定]で有効にする)

どのコレクションでも、規則に設定する内容は共通です。

設定内容
アクセス許可「許可」か「拒否」かと、規則を適用するユーザーまたはグループ
条件対象のファイルを見分ける条件。発行元、パス、ファイル ハッシュのどれか
例外条件に一致しても、規則から外したいファイル

ここからは「Windows インストーラーの規則」を例に、アクセス許可と条件の設定を確認します。

AppLockerのアクセス許可・条件設定

Windows インストーラーの規則 を右クリック ›› 新しい規則の作成 を選びます。「開始する前に」の画面で[次へ]を押すと、アクセス許可と条件の画面になります。

作成: Windows インストーラーの規則画面イメージ
アクセス許可
1操作◉ 許可○ 拒否
ユーザーまたはグループEveryone 選択…
条件
2条件の種類◉ 発行元:ソフトウェア発行元によって署名されている場合
○ パス:特定のファイルまたはフォルダーのパスに規則を作成する場合
○ ファイル ハッシュ:署名されていないアプリケーションの規則を作成する場合
< 前へ次へ >キャンセル
図4 アクセス許可と条件(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1アクセス許可許可または拒否と、対象のユーザー・グループ。この記事では「許可」「Everyone」
2条件発行元、パス、ファイル ハッシュから選ぶ。それぞれの画面は次のとおり

発行元

発行元の条件では、アプリケーションのデジタル署名から読み取った発行元、製品名、ファイル名、ファイルのバージョンを条件にします。[参照]で対象のファイルを選ぶと、値が読み込まれます。ここでは、Firefox 102.3.0esr のインストーラー(Firefox Setup 102.3.0esr.msi)を選びました。

作成: Windows インストーラーの規則 ›› 発行元画面イメージ
参照ファイルC:\Users\(伏せています)\Desktop\firefox\Firefox S…
1発行元O=MOZILLA CORPORATION, L=MOUNTAIN VIEW, …
製品名MOZILLA FIREFOX 102.3.0ESR X64 JA
ファイル名{1294A4C5-9977-480F-9497-C0EA1E630130}
ファイルのバージョン102.3.0.0 以上
2スライダー一番下(ファイルのバージョン)。規則のスコープ:このファイルの指定したバージョンにのみ適用します。
3カスタム値を使用する☐(チェックを入れると各値を編集できる)
図5 発行元の条件(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1発行元〜バージョン署名から読み込まれた値。MSI では、ファイル名の欄に {…} の形の値が入る
2スライダーどの項目まで条件に含めるか。上に動かすほど範囲が広くなり、一番上は「すべての発行元」
3カスタム値を使用する値を直接編集したいときにチェックする(製品名を * にする、など)

パス

パスの条件では、ファイルやフォルダーのパスを指定し、そのパスにあるファイルの実行を許可・拒否します。フォルダーを指定した場合は、その下にあるすべてのファイルが対象になります。たとえば、AD-1 の共有フォルダー app の中のファイルを対象にするには、パスに \\ad-1\app\* と入力します。

ファイルハッシュ

ファイル ハッシュの条件では、指定したファイルのハッシュを条件にします。ファイルの中身が1ビットでも違えば一致しないので、発行元やパスより厳密に制限できます。署名されていないアプリケーションにも使えますが、アプリを更新するとハッシュが変わるため、そのたびに規則を作り直す必要があります。[ファイルの参照]または[フォルダーの参照]で対象を選びます。

以降の検証では、ユーザー・グループは制限せず(Everyone)、例外も設定せず、条件だけを変えて動作を確認します。

発行元を制限(発行元、製品名、ファイル名)

Firefox 102.3.0esr の発行元、製品名、ファイル名をもとに、実行を許可します。

発行元の規則を作る

発行元の画面で Firefox 102.3.0esr のインストーラーを指定し(図5)、[次へ]を押します。例外は設定せずに[次へ]、名前に任意の名前(ここでは「FIREFOXバージョン 102.3.0.0 以降」)を入れて[作成]を押します。

規則を作成すると、既定の規則を作るか確認されます。この検証では[いいえ]を押しました。

AppLocker画面イメージ
1現在、この規則のコレクションを表す規則一覧には既定の規則が含まれていません。規則を作成するときは、重要なシステム ファイルの実行が確実に許可されるように既定の規則も作成することをお勧めします。
既定の規則を今すぐ作成しますか?
はいいいえ
図6 既定の規則を作るかの確認(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1既定の規則規則があるコレクションでは、許可されていないファイルはすべてブロックされる。既定の規則は、必要なファイルまで止めないための許可の規則
注意

[いいえ]を選ぶと、このコレクションには作成した規則しかないので、Firefox 以外のすべての MSI も実行できなくなります。Windows インストーラーの既定の規則は、Administrators はすべての MSI を実行できる、Everyone はデジタル署名された MSI と %windir%\Installer の中の MSI を実行できる、という内容です。本番では既定の規則を作ったうえで、規則を足していくのが基本です。この検証では動きを見やすくするため、既定の規則を作っていません。

グループ ポリシー管理エディター画面イメージ
アプリケーション制御ポリシー ›› AppLocker ›› Windows インストーラーの規則
操作ユーザー名前
1 許可EveryoneFIREFOXバージョン 102.3.0.0 以降
図7 作成した規則(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1許可(緑のチェック)Everyone に許可する規則が登録された

動作確認

端末で Firefox 102.3.0esr のインストーラーを実行すると、ユーザー アカウント制御の画面(確認済みの発行元:Mozilla Corporation)が表示され、実行できます。

一方、105.0 のインストーラーは実行できません。発行元だけでなく製品名やファイル名も条件にしているため、製品名が違う 105.0 は規則に一致せず、ブロックされます。

Windows インストーラー画面イメージ
実行したファイルFirefox Setup 105.0
1 エラーシステム管理者によって、ポリシーはこのインストールを実行できないように設定されています。
OK
図8 ブロックされたときの表示(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1エラー(赤の×)AppLocker の規則に一致しなかったため、インストールが止められた。この記事のほかの検証でも、ブロックされたときは同じ表示になる

発行元を制限(発行元)

105.0 のインストーラーも実行できるよう、発行元が MOZILLA のファイルならすべて許可するように変えます。

製品名とファイル名を * にする

作成した規則をダブルクリックしてプロパティを開き、[発行元]タブで製品名とファイル名に * を入れます。105.0 も対象にしたいので、バージョンは「以上」のままにします。[適用][OK]を押します。

許可のプロパティ画面イメージ
[発行元]タブ
発行元O=MOZILLA CORPORATION, L=MOUNTAIN VIEW, S=CALIFORNIA, C=US
1製品名*
ファイル名*
2ファイルのバージョン102.3.0.0 以上(選択肢:以上/以下/対象バージョン)
OKキャンセル適用
図9 発行元の規則の編集(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1製品名・ファイル名* にすると、どの製品名・ファイル名でも一致する
2バージョン「以上」なら 102.3.0.0 以上のバージョンが一致する

動作確認

102.3.0esr も 105.0 も、ユーザー アカウント制御の画面が表示され、実行できます。

発行元を制限(バージョン指定)

102.3 はインストールしてよいが、105 はインストールさせたくない場合は、バージョンの条件を「以下」または「対象バージョン」にします。

バージョンを「対象バージョン」にする

ここでは 102.3 だけを許可する前提で、図9 のバージョンのプルダウンを「対象バージョン」に変えます。「以下」にすると、102.3.0.0 以下の古いバージョンも許可されます。

動作確認

102.3.0esr のインストーラーは実行できますが、105.0 のインストーラーは図8 と同じ表示でブロックされます。

共有フォルダのパスを指定

次は、共有フォルダー \\ad-1\app の中のファイルだけ実行を許可します。

パスの規則を作る

条件で「パス」を選び、パスに \\ad-1\app\* を入れて[次へ]を押します。名前は「APPインストール共有フォルダ」として作成しました。規則の一覧は、この規則だけになっています。

作成: Windows インストーラーの規則 ›› パス画面イメージ
1パス\\ad-1\app\* ファイルの参照… フォルダーの参照…
操作ユーザー名前
2 許可EveryoneAPPインストール共有フォルダ
図10 パスの規則(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1パス\\ad-1\app\*。共有フォルダー app の中のすべてのファイルが対象
2規則の一覧パスの規則(許可、Everyone)が登録された

動作確認

ローカル ディスク上の 102.3.0esr のインストーラーは、図8 と同じ表示でブロックされます。共有フォルダー(\\ad-1\app)にある 102.3.0esr のインストーラーは、ユーザー アカウント制御の画面が表示され、実行できます。同じファイルでも、置き場所で結果が変わることが分かります。

補足

パスの規則で許可したフォルダーに、ユーザーが自由にファイルを置けると、どんなファイルでも実行できてしまいます。パスの規則を使う場合は、そのフォルダーに一般ユーザーが書き込めないよう、共有とフォルダーのアクセス許可も合わせて設定します。

ファイルハッシュ

102.3.0esr のインストーラーのハッシュをもとに制限します。

ファイルハッシュの規則を作る

条件で「ファイル ハッシュ」を選び、[ファイルの参照]で 102.3.0esr のインストーラーを選びます。名前は MSI のファイル名で登録しました。

作成: Windows インストーラーの規則 ›› ファイル ハッシュ画面イメージ
1ファイル
ファイル名サイズ
Firefox Setup 102.3.0esr.msi55093 KB
操作ユーザー名前
2 許可EveryoneFirefox Setup 102.3.0esr.msi
図11 ファイル ハッシュの規則(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1ファイルハッシュを計算するファイル。Firefox Setup 102.3.0esr.msi
2規則の一覧ファイル ハッシュの規則(許可、Everyone)が登録された

動作確認

102.3.0esr のインストーラーは、ユーザー アカウント制御の画面が表示され、実行できます。105.0 のインストーラーは、図8 と同じ表示でブロックされます。

監査のみ

ここまでは実際に実行を止めましたが、いきなり制限せず、まず監査ログだけを取って影響を確かめ、そのあとで制限をかけたい場合もあります。そのときは「監査のみ」にします。

監査のみに設定する

グループ ポリシー管理エディターで アプリケーション制御ポリシー ›› AppLocker を右クリック ›› プロパティ を開き、[実施]タブを設定します。

AppLockerのプロパティ画面イメージ
[実施]タブ
実行可能ファイルの規則☐ 構成済み
1Windows インストーラーの規則☑ 構成済み 監査のみ(選択肢:規則の実施/監査のみ)
スクリプトの規則☐ 構成済み
パッケージ アプリの規則☐ 構成済み
OKキャンセル適用
図12 監査のみの設定(実際の画面ではなく、設定項目のポイントを示したイメージです)
No.項目設定内容
1Windows インストーラーの規則「構成済み」にチェックを入れ、「監査のみ」を選んで[適用][OK]。構成していないコレクションは、規則があれば実施される

これで実行は止められず、規則に一致しないファイルを実行したことがイベント ログに記録されるだけになります。

イベントログの確認

イベント ビューアーの起動方法は、下記の記事を参考にしてください。

>> 参考記事:【Windows】イベントログ/イベントビューアー 起動とフィルター

AppLocker のログは アプリケーションとサービス ログ ›› Microsoft ›› Windows ›› AppLocker にあります。MSI の実行のログは「MSI and Script」に記録されます。

イベント ビューアー(MSI and Script)画面イメージ
アプリケーションとサービス ログ ›› Microsoft ›› Windows ›› AppLocker ›› MSI and Script
レベル日付と時刻イベント ID
1 警告2022/09/23 22:06:018006
警告2022/09/23 22:06:008006
2情報2022/09/23 21:52:098005
3 エラー2022/09/23 21:52:068007
イベント 8006, AppLocker
%OSDRIVE%\USERS\(伏せています)\DESKTOP\FIREFOX\FIREFOX SETUP … は実行を許可されましたが、AppLocker ポリシーが適用されていれば実行を許可されなかった可能性があります。
図13 AppLocker のイベント ログ(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
18006(警告)監査のみのため実行は許可されたが、規則を実施していればブロックされたファイル
28005(情報)規則で許可されて実行されたファイル
38007(エラー)規則でブロックされたファイル(規則を実施していたときの記録)

実行がブロックされたときの 8007 のイベントには、ブロックされたファイルのパス、ユーザー、コンピューターが記録されます。

イベント プロパティ – イベント 8007, AppLocker画面イメージ
1メッセージC:\Users\(伏せています)\Desktop\firefox\Firefox Setup 105.0.msi は実行を許可されませんでした。
ログの名前Microsoft-Windows-AppLocker/MSI and Script
ログの日付2022/09/23 21:52:06
2レベル エラー
ユーザー(伏せています)
コンピューターWin10-1.hirotanoblog.local
図14 ブロックのイベントの詳細(実際の画面ではなく、表示のポイントを示したイメージです)
No.表示意味
1は実行を許可されませんでしたFirefox Setup 105.0.msi がブロックされた
2エラーブロックのイベントはエラーとして記録される

どのようなイベントが記録されるかは、下記のドキュメントを参照してください。

>> 参考記事:AppLocker でのイベント ビューアーの使用

現在の状況

AppLocker は現在も使えますが、Microsoft は、可能な場合はアプリケーション制御に App Control for Business を使うことを勧めています。AppLocker はセキュリティ修正は受けていますが、新機能の追加はありません。ユーザーやグループごとに違う制御をしたい場合などは、AppLocker が向いています。

まとめ

AppLocker を使うには、Application Identity サービスを動かしたうえで、ファイルの種類ごとの規則のコレクションに規則を作ります。条件の違いによる動作は次のとおりです。

条件設定102.3.0esr105.0
発行元(製品名・ファイル名あり)102.3.0.0 以上実行できるブロック
発行元(製品名・ファイル名は *)102.3.0.0 以上実行できる実行できる
発行元(製品名・ファイル名は *)対象バージョン実行できるブロック
パス\\ad-1\app\*共有フォルダーのものだけ実行できる―
ファイル ハッシュ102.3.0esr の MSI実行できるブロック

コメント

  1. 名無し より:

    最初に既定の規則の作成をしておくと突然ストアアプリが全部動かなくなってはまるということがなくなりますね。