Contents

AppLocker: Windows でアプリケーション制限ポリシーを構成する

Contents

<本文>/images/automatically-generate-applocker-rules.png

AppLocker セキュリティ ポリシーを使用すると、管理者は Windows 上での特定のアプリケーションの実行をブロックまたは許可できます。 Applocker を使用すると、特定のユーザー グループに対してプログラムの実行を制限し、管理者などの他のユーザーにはプログラムの実行を許可することができます。このガイドでは、GPO を使用して AppLocker アプリケーション アクセス ポリシーを作成および展開する方法について説明します。

AppLocker アプリケーション制御機能は当初、Windows の Enterprise エディションでのみ利用可能でした。ただし、Windows 10 バージョン 2004 およびすべての Windows 11 バージョン以降では、これらのエディションの制限が削除され、AppLocker ポリシーを Pro エディションにも適用できるようになりました。

以前は、ソフトウェア制限ポリシー (SRP) を通じて Windows にアプリケーションの起動制限を実装できました。ただし、SRP 機能は、Windows 10 バージョン 1803 および Windows Server 2019 のリリース以降、非推奨になりました。

ドメイン グループ ポリシー管理スナップイン gpmc.msc を使用して、AppLocker コントロール設定を含む新しいドメイン GPO を作成しましょう (ローカル グループ ポリシー エディターを使用してスタンドアロン マシンで Applocker 設定を構成できるのと同じ方法です)。

  1. 新しい GPO を作成し、編集モードに切り替えます。

  2. AppLocker ポリシーをクライアントに適用するには、Application Identity サービスを有効にして実行する必要があります (Windows では、「AppIDSvc」サービスはデフォルトで無効になっています)。

  3. コンピュータの構成 -> Windows の設定 -> セキュリティ設定 -> システム サービス に移動します。 Application Identity サービスのプロパティを開き、自動起動を有効にします。 /images/run-application-identity-service-via-gpo.png

  4. 次に、コンピューターの構成 -> ポリシー -> Windows の設定 -> セキュリティの設定 -> アプリケーション制御ポリシー -> AppLocker を展開します。ここで 4 つのソフトウェア カテゴリのルールを作成できます。

実行可能ルール – 実行可能ファイル (.EXE および .COM)。

Windows インストーラー ルール – Windows インストーラー ファイル (.MSI、.MSP、.MST)。

スクリプト ルール – スクリプト ファイル (.BAT、.CMD、.JS、.PS1、および .VBS)。

パッケージ化されたアプリのルール – APPX および MSIX Microsoft Store アプリ。

  1. この例では、実行可能ファイルのソフトウェア制御ルールを作成します。そこで、「実行可能ルール」を右クリックし、「デフォルトルールの作成」を選択します/images/create-default-rules-in-applocker.png

  2. いくつかの事前定義ルールが作成されます。

すべてのユーザーを許可 (Program Files フォルダーにあるすべてのファイル) – このルールにより、ユーザーは「Program Files」ディレクトリからファイルを実行できます。

すべてのユーザーを許可 (Windows フォルダーにあるすべてのファイル) – ユーザーが「Windows」ディレクトリから任意のファイルを実行できるようにします。

BUILTIN\Administrators (すべてのファイル) を許可 – のメンバー

– このルールにより、ユーザーはディレクトリからファイルを実行できます。 – ユーザーはディレクトリから任意のファイルを実行できます。 – ローカル管理者グループのメンバーは任意のファイルを実行できます。

/images/predefined-rules.png

  1. たとえば、バージョンやディスク上の場所に関係なく、管理者以外のユーザーに特定のアプリケーションの実行を許可したい場合があります。

  2. 新しい AppLocker ルールを作成します。実行可能ファイルの実行を許可するか拒否するかを選択します。このポリシーを適用するユーザー グループを選択します (デフォルトではEveryone)。 /images/configure-applocker-rule-permissions.png

  3. 次に、AppLocker ルールの条件を選択します。次の 3 つのオプションが利用可能です。

発行者 – 署名付きファイル (特定の発行者からのファイル) のルールを作成できます。このルールでは、発行者名、製品名、実行可能ファイル名、またはファイル バージョンのオプションから選択できます。

パス - ルールが適用されるディレクトリまたはファイルへのパスを指定します。 EXE ファイルへの絶対パスを指定するか、ワイルドカード文字 (*) を使用できます。たとえば、ルール「 C:\MyAppFolder* 」は、指定されたディレクトリ内のすべての実行可能ファイルに適用されます。

ファイル ハッシュ – ルールを使用して、SHA-256 ハッシュに基づいて未署名のファイルを識別できます。このルールは、ファイルの名前やディスク上の場所に関係なく、ファイルの実行を許可または拒否します。ただし、ファイル バージョンが変更された場合 (ソフトウェア アップデート後など)、新しいファイル ハッシュに対してルールを再作成する必要があります。

Windows ディレクトリまたはドライブ |

AppLocker パス変数 —|—Windows ディレクトリ |

%WINDIR%

System32 と sysWOW64 |

%SYSTEM32%

Windows インストール ドライブ |

%OSDRIVE%

プログラム ファイル |

%PROGRAMFILES%

リムーバブル メディア (CD または DVD) |

%リムーバブル%

リムーバブル ストレージ デバイス (USB フラッシュ ドライブ) |

%HOT%

ルールでパスを指定する場合は、次の AppLocker 固有の環境変数を使用できます。

  1. 発行者ごとに特定のアプリの AppLocker ルールを作成します。対象の実行ファイルを選択します。 AppLocker ルールが作成されるドメイン コントローラーにターゲット ファイルが存在しない可能性があるため、UNC パスを使用して、ネットワーク上のクライアント コンピューターからファイルを選択できます (たとえば、Windows 管理共有パス形式 \\computer123\c$\tools\tcpview64.exe を使用します)。

  2. バージョンに関係なく、このファイルが名前に基づいて実行できるようにしたいと考えています。スライダーをファイル名に移動する必要があります。または、カスタム値を使用 オプションを使用して、より柔軟な条件を構成します。 /images/create-application-control-rule-for-specific-progr.png

  3. 例外 セクションでは、パス、発行者、またはファイル ハッシュごとにルールの例外を作成できます。たとえば、古いバージョンの脆弱なアプリの実行を禁止したり、アプリを特定のフォルダーに制限したりできます。 /images/add-an-exception-to-the-applocker-rule.png

  4. 新しい AppLocker ルール名を設定します。 /images/list-of-applocker-rules-in-gpo.png

次に、ユーザーが AnyDesk.exe アプリを実行できないようにするルールを作成しましょう。

  1. 新しい AppLocker ルールを追加します

  2. ルールにより、誰もがアプリを実行できないようにする必要があります。 「アクション: 拒否」、ユーザーまたはグループ: 「全員」を選択します。 /images/applocker-deny-app-from-running.png

  3. Publisher ルールを作成し、AnyDesk 実行可能ファイルを参照します。

  4. このルールは、ファイルのバージョンや場所に関係なく適用されます。発行者 O=ANYDESK SOFTWARE GMBH によって署名されたファイルの起動を完全に拒否することも、製品名によって制限することもできます。 /images/create-a-rule-to-block-anydesk-app-by-its-name-usi.png

  5. このようなルールは、実行可能ファイルが存在するディレクトリや実際のファイル名に関係なく、プログラムの起動をブロックします。 /images/word-image.png

ローカル管理者はローカル実行可能ファイルを実行できますが、拒否ルールが常に優先され、実行がブロックされます。

作成した AppLocker ルールをクライアント コンピューターに適用するには、GPO コンソールで AppLocker プロパティを開きます。ここで使用できるルールは 4 種類あります。

  • 実行可能ルール – 従来の Win32 実行可能 (Exe) ファイルのルール

  • Windows インストーラー ルール – MSI インストーラー ルール

  • スクリプト ルール – スクリプトの実行ルール

  • すべてのルールをパッケージ化 - Microsoft Store AppX/MSIX パッケージのルール

デフォルトでは、AppLocker ルールは適用されません。クライアントにルールを適用するには、「構成済み」オプションを有効にし、ルールを「監査のみ」モードで適用するか、「ルール適用」モードで適用するかを選択する必要があります。

実際にアプリの実行をブロックせずに、クライアントへの影響をテストするために、最初に監査モードでルールを適用することをお勧めします。

/images/enable-applocker-rules-in-the-audit-mode.png

AppLocker 設定を含む GPO をターゲット OU にリンクします (最初にテスト コンピューター/OU でソフトウェア制限ルールをテストすることを強くお勧めします)。

クライアントに新しいグループ ポリシー設定を適用した後、AppLocker ルールがクライアントでどのように機能するかを確認します。 AppLocker ルールは現在監査モードで適用されているため、アプリケーションの起動は実際にはブロックされません。

イベント ビューアー ログを使用して、特定の実行可能ファイルが起動されたときに AppLocker ポリシーがどのようにトリガーされるかを判断できます。イベント ビューア コンソール (eventvwr.msc) を開き、アプリケーションとサービス ログ -> Microsoft -> Windows -> AppLocker -> EXE および DLL に移動します。

AppLocker は、ブロックされた実行可能ファイルを実行しようとする試みを検出すると、ブロックされたアプリの名前を含むイベント ID 8003 の警告をログに記録します。


%OSDRIVE%\TOOLS\ANYDESK.EXE was allowed to run but would have been prevented from running if the AppLocker policy were enforced.

アプリケーションの実行が許可されると、イベント ID 8002 が追加されます。

/images/event-id-8002-exe-was-allowed-to-run-but-would-ha.png

デフォルトのルールでは管理者がすべてのアプリケーションを制限なく実行できるため、非管理者ユーザー アカウントで AppLocker ルールをテストします。ユーザーはセッション内で作業し、必要なプログラムを起動し、標準的な日常タスクを実行する必要があります。

監査イベントに従って、実行がブロックされているアプリを確認します。 PowerShell を使用してイベント ビューアー ログをクエリし、コンピューター上の AppLocker ルールによってブロックされているアプリのリストを取得できます。

` $TimeSpan=(Get-Date).AddHours(-24)

Get-WinEvent-FilterHashtable @{LogName=“Microsoft-Windows-AppLocker/EXE および DLL”; ID=8003; StartTime=$TimeSpan } |フォーマット - テーブル TimeCreated、メッセージ - AutoSize `

/images/powershell-get-a-list-of-apps-blocked-by-applocke.png

現在のアプリケーション制御ポリシーが必要な実行可能ファイルをブロックしている場合は、AppLocker GPO を編集して、そのアプリの実行を許可するルールを追加します。

AppLocker ルールを監査モードでデバッグした後、それらを強制モードで適用できます。これを行うには、AppLocker ポリシーの監査設定を「ルールを強制する」に変更します。

/images/enforce-applocker-rules.png

AppLocker は、承認されていないプログラム、または明示的に拒否されたプログラムの起動をブロックするようになりました。


This app has been blocked by your administrator

/images/this-app-has-been-blocked-by-your-administrator-ap.png

ID 8004 のイベントがイベント ビューアに追加され、ブロックされた実行可能ファイルの名前が含まれます。


%OSDRIVE%\TOOLS\ANYDESK.EXE was prevented from running.

/images/event-id-8004-exe-was-prevented-from-running.png

AppLocker で許可またはブロックされたアプリごとに個別のルールを手動で作成するのは、時間がかかり面倒です。 AppLocker ルールの作成と実装のプロセスを高速化し、改善できるツールがいくつかあります。

GPO コンソールの AppLocker 構成エディターには、自動ルール生成機能があります。管理者は、ルールを自動的に生成 オプションを選択し、参照マシン上のターゲット フォルダーを指定できます。次に、AppLocker は、コンピューター上で見つかったすべてのソフトウェアのルールのリストを生成します。

/images/automatically-generate-applocker-rules.png

AppLocker ルールを個々のコンピューターからインポートして作成することもできます。たとえば、PowerShell を使用して、イベント ビューアーのログからブロックされた実行可能ファイルのリストを取得できます。

Get-ApplockerFileinformation-Eventlog-EventType Audited|fl

/images/get-applockerfileinformation-list-events.png

この情報に基づいて、ローカルの AppLocker ポリシーにルールを自動的に追加できます。

Get-ApplockerFileinformation-Eventlog-EventType 監査済み | New-ApplockerPolicy-RuleType ハッシュ、発行者-ユーザー jsmith-RuleNamePrefix AuditBased | Set-ApplockerPolicy –Merge

新しいルールは、コンピューターのローカル AppLocker ポリシーに追加されます。そこから、ドメイン GPO にエクスポートおよびインポートできます。

/images/import-and-export-the-applocker-policy-settings-fr.png

ブロックされた実行可能ファイルのみをリストします (各ファイルの実行試行回数を含む)。

Get-AppLockerFileInformation-EventLog-EventType Denied-Statistics

AppLocker ルールを作成するときは、次の点に留意してください。

  • AppLocker の拒否ルールは許可ルールよりも優先されます。

  • デフォルトでは、明示的に許可されない限り、すべてが禁止されます。つまり、実行可能ファイルは、ルールによって明示的に許可され、他のルールによって明示的に拒否されていない場合にのみ実行を許可されます。

※各ルールには例外がある場合があります。たとえば、これにより、特定のルールを一部のユーザー グループに適用し、他のユーザーには例外を適用することができます。このスクリーンショットは、例外を使用して管理者に対して PowerShell の実行を許可し、管理者以外のユーザーに対してはブロックする方法を示しています (コンピューター上で PowerShell を無効にすることに関する記事は、そのようなルールを実装する例です)。 /images/applocker-policy-allow-only-administrators-to-run.png

  • ルールを作成するときは、「Everyone」や「Domain Users」などのグループには管理者も含まれる可能性があることに注意してください。

コンピューター上の AppLocker を一時的に停止する可能性についてはどうですか? Application Identity サービスを停止すると、AppLocker ルールが適用されなくなると思われるかもしれません。しかし、これは真実ではありません。

コンピューター上で AppLocker を一時的に無効にするには、まず AppIDSvc サービスを停止し、次に AppCache.dat、Exe.AppLocker、および Dll.AppLocker ファイルを C:\Windows\System32\AppLocker\ フォルダーから削除します。

/images/where-applied-applocker-policies-are-stored-on-a-d.png

最新バージョンの Windows には、Windows Defender Application Control (WDAC) と呼ばれる、実行可能ファイルの起動を制御するための追加メカニズムが含まれています。 AppLocker よりも構成が若干複雑ですが、柔軟性、拡張性、セキュリティが強化されているため、より良い選択肢となります。ユーザー モードでのみ動作する AppLocker とは異なり、WDAC はカーネル レベル (ドライバーなど) とユーザー モードの両方でコードの実行をブロックできます。

*️⃣ 出典リンク:

ドメイン グループ ポリシー管理スナップイン、ローカル管理者グループ、Windows 管理共有、Microsoft Store AppX/MSIX パッケージ、新しいグループ ポリシー設定の適用、PowerShell を使用したイベント ビューアー ログのクエリ、