Windows Defender アプリケーションコントロールを使用してマネージド インストーラーによってデプロイされたアプリを自動的に許可する
Windows Defender アプリケーション制御 (WDAC) には、アプリケーション制御ポリシーを適用するときにセキュリティと管理性のバランスを取るのに役立つ、マネージド インストーラーと呼ばれるオプションが含まれています。 このオプションを使用すると、指定されたソフトウェア配布ソリューション (Microsoft Configuration Manager (MEMCM) やMicrosoft Intuneなど) によってインストールされたアプリケーションを自動的に許可できます。
マネージド インストーラーでは、AppLocker の特殊なルール コレクションを使用して、organizationによって信頼されているバイナリを、アプリケーションのインストールの承認されたソースとして指定します。 これらの信頼されたバイナリのいずれかが実行されると、Windows はバイナリのプロセス (および起動する子プロセス) を監視し、ディスクに書き込まれるファイルを監視します。 ファイルが書き込まれると、マネージド インストーラーからのタグが付けられます。
その後、WDAC ポリシーに "Enabled:Managed Installer" オプションを追加することで、マネージド インストーラーによってインストールされたファイルを信頼するように WDAC を構成できます。 このオプションが設定されている場合、WDAC は、バイナリの実行を許可するかどうかを判断するときに、マネージド インストーラーの配信元情報をチェックします。 バイナリの拒否規則がない限り、WDAC では、マネージド インストーラーの配信元に基づいて実行できます。
マネージド インストーラーはヒューリスティック ベースのメカニズムであるため、明示的な許可または拒否規則と同じセキュリティ保証は提供されません。 マネージド インストーラーは、ユーザーが標準ユーザーとして動作し、すべてのソフトウェアが MEMCM などのソフトウェア配布ソリューションによって展開およびインストールされる場合に最適です。
管理者特権を持つユーザー、またはシステム上で管理者ユーザーとして実行されているマルウェアを持つユーザーは、マネージド インストーラー オプションが許可されている場合に、WDAC ポリシーの意図を回避できる可能性があります。
マネージド インストーラー プロセスが標準特権を持つユーザーのコンテキストで実行される場合、標準ユーザーとして実行されている標準ユーザーまたはマルウェアが WDAC ポリシーの意図を回避できる可能性があります。
一部のアプリケーション インストーラーでは、インストール プロセスの最後にアプリケーションが自動的に実行される場合があります。 アプリケーションが自動的に実行され、インストーラーがマネージド インストーラーによって実行された場合、マネージド インストーラーのヒューリスティックな追跡と承認は、アプリケーションの初回実行時に作成されたすべてのファイルに拡張されます。 この拡張機能により、実行可能ファイルが意図せず承認される可能性があります。 この問題を回避するには、マネージド インストーラーとして使用されるアプリケーションの展開方法によって、インストールの一部として実行中のアプリケーションが制限されていることを確認します。
マネージド インストーラーに基づくアプリケーション制御では、自己更新するアプリケーションはサポートされていません。 マネージド インストーラーによって後でデプロイされたアプリケーションがそれ自体を更新した場合、更新されたアプリケーション ファイルにはマネージド インストーラーからの配信元情報が含まれず、実行できない可能性があります。 マネージド インストーラーに依存する場合は、マネージド インストーラーを使用してすべてのアプリケーション更新プログラムを展開してインストールするか、WDAC ポリシーでアプリを承認する規則を含める必要があります。 場合によっては、自己更新を実行するアプリケーション バイナリをマネージド インストーラーとして指定することもできます。 この方法を使う場合は、事前にアプリケーションの機能とセキュリティについて適切なレビューを実行する必要があります。
一部のアプリケーションまたはインストーラーでは、バイナリを抽出、ダウンロード、または生成し、すぐに実行を試みる場合があります。 このようなプロセスによって実行されるファイルは、マネージド インストーラーヒューリスティックによって許可されない場合があります。 場合によっては、このような操作を実行するアプリケーション バイナリを管理インストーラーとして指定できることがあります。 この方法を使う場合は、事前にアプリケーションの機能とセキュリティについて適切なレビューを実行する必要があります。
マネージド インストーラーヒューリスティックはカーネル ドライバーを承認しません。 WDAC ポリシーには、必要なドライバーの実行を許可する規則を含める必要があります。
マネージド インストーラーの追跡を有効にするには、次の手順を実行する必要があります。
- マネージド インストーラールールを定義し、実行可能ファイルと DLL に対するサービスの適用を有効にする AppLocker ポリシーを作成して展開します。
- AppLocker のアプリケーション ID と AppLockerFltr サービスを有効にします。
注意
以下の管理インストーラー AppLocker ポリシーは、既存の AppLocker ポリシーと安全にマージされるように設計されており、これらのポリシーの動作は変更されません。 ただし、現在 AppLocker ポリシーがないデバイスに適用すると、 AppLocker - EXE および DLL イベント ログで生成される警告イベントが大幅に増加します。 LogAnalytics などのイベント転送および収集サービスを使用している場合は、そのイベント ログの構成を調整して、Error イベントのみを収集するか、そのログからのイベントの収集を完全に停止することができます。
マネージド インストーラー規則を定義し、実行可能ファイルと DLL に対するサービスの適用を有効にする AppLocker ポリシーを作成して展開する
GPO エディターの AppLocker ポリシー作成 UI と AppLocker PowerShell コマンドレットを直接使用して、マネージド インストーラールールコレクションのルールを作成することはできません。 ただし、XML またはテキスト エディターを使用して、EXE ルール コレクション ポリシーを ManagedInstaller ルール コレクションに変換できます。
注意
EXE ファイルの種類のみをマネージド インストーラーとして指定できます。
New-AppLockerPolicy を使用して、マネージド インストーラーとして指定するファイルの EXE 規則を作成します。 この例では、発行元の規則の種類を使用して Microsoft のIntune管理拡張機能の規則を作成しますが、任意の AppLocker 規則の種類を使用できます。 読みやすくするために、出力の再フォーマットが必要になる場合があります。
Get-ChildItem ${env:ProgramFiles(x86)}'\Microsoft Intune Management Extension\Microsoft.Management.Services.IntuneWindowsAgent.exe' | Get-AppLockerFileInformation | New-AppLockerPolicy -RuleType Publisher -User Everyone -Xml > AppLocker_MI_PS_ISE.xml
規則コレクションの種類を "Exe" から "ManagedInstaller" に手動で変更し、EnforcementMode を "AuditOnly" に設定します
変更:
<RuleCollection Type="Exe" EnforcementMode="NotConfigured">
終了日:
<RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
AppLocker ポリシーを手動で編集し、それぞれに少なくとも 1 つの規則を含む EXE および DLL 規則コレクションを追加します。 既にアクティブな AppLocker ポリシーを持っている可能性があるシステムでポリシーを安全に適用できるようにするには、問題のない DENY 規則を使用して偽のバイナリをブロックし、ルール コレクションの EnforcementMode を AuditOnly に設定することをお勧めします。 さらに、多くのインストール プロセスはサービスに依存するため、これらのルール コレクションごとにサービス追跡を有効にする必要があります。 次の例は、EXE および DLL 規則コレクションが推奨どおりに構成された部分的な AppLocker ポリシーを示しています。
<RuleCollection Type="Dll" EnforcementMode="AuditOnly" >
<FilePathRule Id="86f235ad-3f7b-4121-bc95-ea8bde3a5db5" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.dll" />
</Conditions>
</FilePathRule>
<RuleCollectionExtensions>
<ThresholdExtensions>
<Services EnforcementMode="Enabled" />
</ThresholdExtensions>
<RedstoneExtensions>
<SystemApps Allow="Enabled"/>
</RedstoneExtensions>
</RuleCollectionExtensions>
</RuleCollection>
<RuleCollection Type="Exe" EnforcementMode="AuditOnly">
<FilePathRule Id="9420c496-046d-45ab-bd0e-455b2649e41e" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.exe" />
</Conditions>
</FilePathRule>
<RuleCollectionExtensions>
<ThresholdExtensions>
<Services EnforcementMode="Enabled" />
</ThresholdExtensions>
<RedstoneExtensions>
<SystemApps Allow="Enabled"/>
</RedstoneExtensions>
</RuleCollectionExtensions>
</RuleCollection>
AppLocker ポリシーを確認します。 次の例は、Configuration ManagerとMicrosoft Intuneをマネージド インストーラーとして設定する完全な AppLocker ポリシーを示しています。 最終的な XML には、実際の規則が定義されている AppLocker 規則コレクションのみが含まれます。 この条件ベースのインクルードにより、AppLocker ポリシーが既に設定されている可能性があるデバイスでポリシーが正常にマージされます。
<AppLockerPolicy Version="1">
<RuleCollection Type="Dll" EnforcementMode="AuditOnly" >
<FilePathRule Id="86f235ad-3f7b-4121-bc95-ea8bde3a5db5" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.dll" />
</Conditions>
</FilePathRule>
<RuleCollectionExtensions>
<ThresholdExtensions>
<Services EnforcementMode="Enabled" />
</ThresholdExtensions>
<RedstoneExtensions>
<SystemApps Allow="Enabled"/>
</RedstoneExtensions>
</RuleCollectionExtensions>
</RuleCollection>
<RuleCollection Type="Exe" EnforcementMode="AuditOnly">
<FilePathRule Id="9420c496-046d-45ab-bd0e-455b2649e41e" Name="Benign DENY Rule" Description="" UserOrGroupSid="S-1-1-0" Action="Deny">
<Conditions>
<FilePathCondition Path="%OSDRIVE%\ThisWillBeBlocked.exe" />
</Conditions>
</FilePathRule>
<RuleCollectionExtensions>
<ThresholdExtensions>
<Services EnforcementMode="Enabled" />
</ThresholdExtensions>
<RedstoneExtensions>
<SystemApps Allow="Enabled"/>
</RedstoneExtensions>
</RuleCollectionExtensions>
</RuleCollection>
<RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
<FilePublisherRule Id="55932f09-04b8-44ec-8e2d-3fc736500c56" Name="MICROSOFT.MANAGEMENT.SERVICES.INTUNEWINDOWSAGENT.EXE version 1.39.200.2 or greater in MICROSOFT® INTUNE™ from O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
<Conditions>
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="MICROSOFT.MANAGEMENT.SERVICES.INTUNEWINDOWSAGENT.EXE">
<BinaryVersionRange LowSection="1.39.200.2" HighSection="*" />
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
<FilePublisherRule Id="6ead5a35-5bac-4fe4-a0a4-be8885012f87" Name="CMM - CCMEXEC.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
<Conditions>
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMEXEC.EXE">
<BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
<FilePublisherRule Id="8e23170d-e0b7-4711-b6d0-d208c960f30e" Name="CCM - CCMSETUP.EXE, 5.0.0.0+, Microsoft signed" Description="" UserOrGroupSid="S-1-1-0" Action="Allow">
<Conditions>
<FilePublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="*" BinaryName="CCMSETUP.EXE">
<BinaryVersionRange LowSection="5.0.0.0" HighSection="*" />
</FilePublisherCondition>
</Conditions>
</FilePublisherRule>
</RuleCollection>
</AppLockerPolicy>
AppLocker マネージド インストーラー構成ポリシーをデプロイします。 次の PowerShell コマンドに示すように、AppLocker ポリシーをインポートしてグループ ポリシーで展開するか、スクリプトを使用して Set-AppLockerPolicy コマンドレットを使用してポリシーを展開できます。
Set-AppLockerPolicy -XmlPolicy <AppLocker XML FilePath> -Merge -ErrorAction SilentlyContinue
スクリプトを使用して AppLocker ポリシーを展開する場合は、appidtel.exe を使用して AppLocker アプリケーション ID サービスと AppLocker フィルター ドライバーを構成します。
appidtel.exe start [-mionly]
インテリジェント セキュリティ グラフ (ISG) を使用する予定がない場合は、"-mionly" を指定します。
注意
マネージド インストーラーの追跡は、次にマネージド インストーラールールに一致するプロセスが実行されると開始されます。 目的のプロセスが既に実行されている場合は、再起動する必要があります。
WDAC ポリシーで管理インストーラー オプションを有効にする
マネージド インストーラーによって配置されたバイナリの信頼を有効にするには、WDAC ポリシーで "Enabled: Managed Installer" オプションを指定する必要があります。
この設定は、オプション 13 で Set-RuleOption コマンドレット を使用して定義できます。
Windows を起動し、マネージド インストーラー オプションを有効にする WDAC ポリシーを作成する手順を次に示します。
DefaultWindows_Audit ポリシーを "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml" から作業フォルダーにコピーします
ポリシー ID をリセットして、複数ポリシー形式であることを確認し、ポリシーの例とは異なる GUID を指定します。 また、識別に役立つフレンドリ名を付けます。
以下に例を示します。
Set-CIPolicyIdInfo -FilePath <XML filepath> -PolicyName "<friendly name>" -ResetPolicyID
オプション 13 (有効:マネージド インストーラー) を設定します。
Set-RuleOption -FilePath <XML filepath> -Option 13
WDAC ポリシーをデプロイします。 「Windows Defender アプリケーション制御 (WDAC) ポリシーの展開」を参照してください。
注意
WDAC ポリシーには、すべてのシステム/ブート コンポーネント、カーネル ドライバー、およびマネージド インストーラーを介して展開できないその他の承認されたアプリケーションの規則が含まれている必要があります。
管理対象インストーラー機能をデバイスから削除するには、「 AppLocker ルールの削除: 単一システムまたはリモート システムで AppLocker ポリシーをクリアする」の手順に従って、管理対象インストーラー AppLocker ポリシーをデバイスから削除する必要があります。