App Control for Business を使用して、マネージド インストーラーによって展開されたアプリを自動的に許可する

App Control for Business の一部の機能は、特定の Windows バージョンでのみ使用できます。 アプリ コントロール機能の可用性に関する詳細情報。

App Control for Business には、App Control ポリシーを適用する際のセキュリティと管理の容易さのバランスを取るのに役立つ マネージド インストーラー と呼ばれるオプションが含まれています。 このオプションを使用すると、Microsoft Configuration Manager や Microsoft Intune などの指定されたソフトウェア配布ソリューションによってインストールされたアプリケーションを自動的に許可できます。

管理インストーラーの動作

マネージド インストーラーは、AppLocker の特別な規則コレクションを使用して、アプリケーション インストールの承認されたソースとして organization によって信頼されているバイナリを指定します。 これらの信頼されたバイナリのいずれかが実行されると、Windows はバイナリのプロセス (およびバイナリが起動する子プロセス) を監視し、ディスクに書き込まれるファイルを監視します。 ファイルが書き込まれると、管理されたインストーラーから作成されたファイルというタグが付けられます。

その後、アプリ制御ポリシーに "Enabled: Managed Installer" オプションを追加することで、管理されたインストーラーによってインストールされたファイルを信頼するようにアプリ制御を構成できます。 このオプションを設定すると、App Control はバイナリの実行を許可するかどうかを決定するときに、マネージド インストーラーの配信元情報をチェックします。 バイナリに拒否ルールがない限り、アプリ制御は、純粋に管理されたインストーラーの配信元に基づいてバイナリを実行できるようにします。

配信元の要求を理解する

マネージド インストーラーまたはインテリジェント セキュリティ グラフ (ISG) によってファイルが承認されると、アプリ コントロールは、カーネル管理拡張属性 (EA) をファイルに追加することで、そのファイルが信頼される理由を記録します。 配信元クレームと呼ばれる EA は、ファイルの評判のソースをキャプチャするため、コード整合性は後で元のソースを再チェックせずにファイルを評価できます。 配信元クレームは $KERNEL.SMARTLOCKER.ORIGINCLAIM と呼ばれます。 配信元クレームは、ファイルを書き込んだ内容を記録し、ファイルを書き込んだプロセスがマネージド インストーラーとして信頼されているか、評判に基づいて信頼されたか、および信頼が親から継承されたかどうかを示します。 fsutil コマンドを使用して、この EA をファイルで表示できます。 正確な手順については、「 Using fsutil to query extended attributes for managed installer (MI)」を参照してください。

  • マネージド インストーラーの配信元:ファイルが、ポリシーがマネージド インストーラーとして信頼するプロセス (たとえば、Microsoft Configuration Manager や Microsoft Intune などの展開ツール) によって書き込まれました。 この信頼は、ファイルのプロパティ、署名、またはハッシュ値ではなく、 ファイルがデバイスに到着した方法 に基づいています。 詳細については、「 マネージド インストーラーでのセキュリティに関する考慮事項」を参照してください。
  • インテリジェント セキュリティ グラフ (ISG) 配信元:ファイルが好意的な評判応答を受け取ったか、ファイルを作成したインストーラーである親プロセスから良い評判応答を受け取った。 これらの評判応答は、インテリジェント セキュリティ グラフと呼ばれる Microsoft のセキュリティ インテリジェンス サービスから提供されます。 評判は特定のファイルに関連付けられているため、ファイルが変更された場合、評判は適用されなくなり、配信元の要求は尊重されなくなります。 そのような場合、ファイルは次回実行時に App Control によって再評価されます。 詳細については、「 インテリジェント セキュリティ グラフ (ISG) を使用して信頼できるアプリを承認する」を参照してください。

配信元の要求はプロセス ツリーを下に伝達します。 管理されているインストーラーが実行されるとき、またはインストーラーが ISG から信頼されたインストーラー評判応答を受け取ると、ISG は書き込むファイルと起動する子プロセスに同等の信頼を渡します。 その信頼は、子プロセス、子プロセス、そしてその後の世代を通じてライブ プロセス ツリーを下り続けるため、インストーラーがアプリをインストールして実行するために必要なすべてのファイルが承認されます。

伝搬は無制限ではありません。 信頼されたプロセス ツリーが壊れたときに終了します。これには、次の場合が含まれます。

  • 元のインストーラー プロセスが終了します。 信頼は、信頼されたプロセス ツリーの有効期間が対象となります。 元のマネージド インストーラーまたは ISG で信頼されたインストーラー プロセスが終了した後に作成されたファイルは、その配信元クレームを継承しません。 拡張属性データでは、このようなファイルは "子の子" としてマークされ、単独での実行は承認されません。明示的なルール、マネージド インストーラーの配信元、ISG 評判など、他の手段によって許可する必要があります。
  • プロセスがセキュリティ境界を超えています。 プロセスが別のユーザーまたはセキュリティ コンテキストで生成された場合、親プロセスはその配信元の要求を子プロセスに渡すことができます。 一致しない場合、プロセス ツリーは破損しており、子プロセスまたはその子によって作成されたファイルは、初期プロセスの配信元の要求に基づいて承認されません。

プロセス ツリーが何らかの理由で破損した後は、作成されたファイルは、管理されたインストーラーとして実行する場合や、ISG から信頼されたインストーラー評判応答を受け取る場合など、別の方法で承認する必要があります。

管理インストーラーのセキュリティに関する考慮事項

マネージド インストーラーはヒューリスティック ベースのメカニズムであるため、明示的な許可または拒否ルールと同じセキュリティ保証は提供されません。 マネージド インストーラーは、ユーザーが標準ユーザーとして操作し、すべてのソフトウェアが Configuration Manager などのソフトウェア配布ソリューションによって展開およびインストールされる場合に最適です。

管理者特権を持つユーザー、またはシステム上で管理者ユーザーとして実行されているマルウェアは、マネージド インストーラー オプションが許可されている場合、アプリ制御ポリシーの意図を回避できる可能性があります。

標準特権を持つユーザーのコンテキストでマネージド インストーラー プロセスが実行される場合、標準ユーザーまたは標準ユーザーとして実行されているマルウェアが、アプリ制御ポリシーの意図を回避できる可能性があります。

一部のアプリケーション インストーラーでは、インストール プロセスの最後にアプリケーションが自動的に実行される場合があります。 アプリケーションが自動的に実行され、マネージド インストーラーによってインストーラーが実行された場合、マネージド インストーラーのヒューリスティックな追跡と承認は、アプリケーションの初回実行時に作成されるすべてのファイルに拡張されます。 この拡張機能により、実行可能ファイルが意図せず承認される可能性があります。 これを回避するには、マネージド インストーラーとして使用されるアプリケーションの展開方法が、インストールの一部として実行されるアプリケーションを制限します。

管理インストーラーに関する既知の制限

  • マネージド インストーラーに基づくアプリ制御は、自己更新するアプリケーションをサポートしていません。 マネージド インストーラーによって展開されたアプリケーションが後でそれ自体を更新する場合、更新されたアプリケーション ファイルにはマネージド インストーラーからの配信元情報が含まれないため、実行できない可能性があります。 マネージド インストーラーを使用する場合は、マネージド インストーラーを使用してすべてのアプリケーション更新プログラムを展開およびインストールするか、アプリ制御ポリシーにアプリを承認するルールを含める必要があります。 場合によっては、自己更新を実行するアプリケーション バイナリを管理インストーラーとして指定することもできます。 この方法を使う場合は、事前にアプリケーションの機能とセキュリティについて適切なレビューを実行する必要があります。

  • 一部のアプリケーションまたはインストーラーは、バイナリを抽出、ダウンロード、または生成し、すぐに実行しようとする場合があります。 このようなプロセスによって実行される Files は、マネージ インストーラーのヒューリスティックでは許可されない場合があります。 場合によっては、このような操作を実行するアプリケーション バイナリを管理インストーラーとして指定できることがあります。 この方法を使う場合は、事前にアプリケーションの機能とセキュリティについて適切なレビューを実行する必要があります。

  • マネージ インストーラーのヒューリスティックは、カーネル ドライバーを承認しません。 アプリ コントロール ポリシーには、必要なドライバーの実行を許可するルールが必要です。

AppLocker とアプリ コントロールを使用して管理インストーラーの追跡を構成する

管理されたインストーラーの追跡を有効にするには、次の手順を実行する必要があります:

  • マネージド インストーラー ルールを定義し、実行可能ファイルと DLL に対するサービスの適用を有効にする AppLocker ポリシーを作成して展開します。
  • AppLocker のアプリケーション ID サービスと AppLockerFltr サービスを有効にします。

以下のマネージド インストーラー AppLocker ポリシーは、既存の AppLocker ポリシーと安全にマージするように設計されており、それらのポリシーの動作は変更されません。 ただし、現在 AppLocker ポリシーがないデバイスに適用すると、 AppLocker (EXE および DLL イベント ログ) で生成される警告イベントが大幅に増加します。 LogAnalytics などのイベント転送および収集サービスを使用している場合は、エラー イベントのみを収集するようにそのイベント ログの構成を調整するか、そのログからのイベントの収集を完全に停止することができます。

Configuration Manager は自動的に管理されたインストーラーとして構成され、受信トレイのアプリ制御ポリシーの 1 つを展開すると、必要な AppLocker コンポーネントが有効になります。 他の方法を使用して管理インストーラーとして Configuration Manager を構成している場合は、追加のセットアップが必要です。 ccmsetup.exe セットアップで ManagedInstaller コマンドライン スイッチを使用します。 または、カスタム ポリシーと共に Configuration Manager 受信トレイ監査モード ポリシーの 1 つを展開することもできます。

管理インストーラー規則を定義し、実行可能ファイルと DLL に対するサービスの適用を有効にする AppLocker ポリシーを作成して展開します

GPO エディターの AppLocker ポリシー作成 UI と AppLocker PowerShell コマンドレットを直接使用して、マネージド インストーラー ルール コレクションのルールを作成することはできません。 ただし、XML またはテキスト エディターを使用して、EXE ルール コレクション ポリシーを ManagedInstaller ルール コレクションに変換できます。

管理インストーラーとして指定できるのは、EXE ファイルの種類のみです。

  1. 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
    
  2. ルール コレクションの Type を "Exe" から "ManagedInstaller" に手動で変更し、EnforcementMode を "AuditOnly" に設定します

    変更:

    <RuleCollection Type="Exe" EnforcementMode="NotConfigured">
    

    終了日:

    <RuleCollection Type="ManagedInstaller" EnforcementMode="AuditOnly">
    
  3. 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>
    
  4. AppLocker ポリシーを確認します。 次の例は、Configuration Manager と Microsoft Intune をマネージド インストーラーとして設定する完全な AppLocker ポリシーを示しています。 実際のルールが定義されている AppLocker 規則コレクションのみが最終的な XML に含まれます。 この条件ベースの包含により、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&reg; INTUNE&trade; 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>
    
  5. AppLocker マネージド インストーラー構成ポリシーを展開します。 AppLocker ポリシーをインポートして グループ ポリシー で展開するか、次の PowerShell コマンドに示すように、スクリプトを使用して Set-AppLockerPolicy コマンドレットでポリシーを展開することができます。

    Set-AppLockerPolicy -XmlPolicy <AppLocker XML FilePath> -Merge -ErrorAction SilentlyContinue
    
  6. スクリプトを使用して AppLocker ポリシーを展開する場合は、appidtel.exe を使用して AppLocker アプリケーション ID サービスと AppLocker フィルター ドライバーを構成します。

    appidtel.exe start [-mionly]
    

    インテリジェント セキュリティ グラフ (ISG) を使用しない場合は、"-mionly" を指定します。

管理インストーラー追跡は、次に管理インストーラー ルールに一致するプロセスが実行されたときに開始されます。 目的のプロセスが既に実行されている場合は、再起動する必要があります。

アプリ制御ポリシーでマネージド インストーラー オプションを有効にする

マネージド インストーラーによって設定されたバイナリの信頼を有効にするには、アプリ制御ポリシーで "有効: マネージド インストーラー" オプションを指定する必要があります。 この設定は、 Set-RuleOption コマンドレット とオプション 13 を使用して定義できます。

Windows の起動を許可し、マネージド インストーラー オプションを有効にするアプリ制御ポリシーを作成する手順を次に示します。

  1. DefaultWindows_Audit ポリシーを "C:\Windows\schemas\CodeIntegrity\ExamplePolicies\DefaultWindows_Audit.xml" から作業フォルダーにコピーします

  2. ポリシー ID をリセットしてマルチポリシー形式であることを確認し、例のポリシーとは異なる GUID を指定します。 また、識別しやすいようにフレンドリ名を付けます。

    次に、例を示します。

    Set-CIPolicyIdInfo -FilePath <XML filepath> -PolicyName "<friendly name>" -ResetPolicyID
    
  3. オプション 13 (有効: マネージド インストーラー) を設定します。

    Set-RuleOption -FilePath <XML filepath> -Option 13
    
  4. アプリ コントロール ポリシーをデプロイします。 「 ビジネス ポリシーのアプリ制御のデプロイ」を参照してください。

アプリ コントロール ポリシーには、すべてのシステム/ブート コンポーネント、カーネル ドライバー、およびマネージド インストーラーを使用してデプロイできないその他の承認済みアプリケーションに対するルールを含める必要があります。

監査モード アプリ制御ポリシーを使用して、マネージド インストーラーの設定を確認する

監査モードのアプリ コントロール ポリシーを使用して、マネージド インストーラーのセットアップを確認するには、次の手順に従います。

  1. マネージド インストーラーと ISG オプションを有効にした監査モードでアプリ コントロール ポリシーを展開します。 監査モードでは、アプリをブロックせずにアプリ コントロールで承認する内容を確認できます。
  2. Microsoft Intune や Microsoft Configuration Manager などのマネージド インストーラーを展開し、そのマネージド インストーラーを使用して評価するアプリをインストールします。
  3. 高度な捜索で配信元イベントを一元的に確認することで、期待される認証を確認します。 イベント ID 3090、3091、および 3092 の配信元アクションの種類 AppControlCodeIntegrityOriginAllowedAppControlCodeIntegrityOriginAuditedAppControlCodeIntegrityOriginBlocked を、マネージド インストーラーの配信元または ISG 評判がファイルを承認したシグナルとして使用します。
  4. ローカル検証の場合は、マネージド インストーラーのfsutilチェックと ISG テクニカル リファレンスを使用して、ファイルの拡張属性を確認します。
  5. 予想される動作を検証した後、アプリが正常に実行されることをより確実にした状態で、App Control ポリシーを監査モードから強制モードに移行できます。

マネージド インストーラー機能を削除する

デバイスからマネージド インストーラー機能を削除するには、「 AppLocker 規則の削除: 単一システムまたはリモート システム上の AppLocker ポリシーをクリアする」の手順に従って、デバイスからマネージド インストーラー AppLocker ポリシーを削除する必要があります。