WDAC AppId タグ付けポリシーの作成

Windows Defender Application Control (WDAC) の一部の機能は、特定の Windows バージョンでのみ使用できます。 Windows Defender アプリケーション制御機能の可用性について詳しくは、こちらをご覧ください。

WDAC ウィザードを使用してポリシーを作成する

Windows Defender アプリケーション制御 (WDAC) ウィザードと PowerShell コマンドを使用して、アプリケーション制御ポリシーを作成し、AppIdTagging ポリシーに変換できます。 WDAC ウィザードは、 WDAC ウィザード インストーラー サイトでダウンロードできます。 これらの PowerShell コマンドは、「 AppId タグ付けガイド」に記載されているサポートされているプラットフォームでのみ使用できます。

  1. テンプレートを使用して新しい基本ポリシーを作成します。

    [ポリシー作成者] タスクから開始し、[複数のポリシー形式と基本ポリシー] を選択します。 ポリシーに使用する基本テンプレートを選択します。 次の例は 、既定の Windows モード テンプレートから始まり、これらの規則に基づいて構築を示しています。

    ポリシー ベースとテンプレートの構成。

    AppId タグ付けポリシーが基本テンプレートからビルドする場合、または Windows のインボックス プロセスを許可しない場合は、特に起動時にパフォーマンスが大幅に低下します。 このため、基本テンプレートからビルドすることを強くお勧めします。 この問題の詳細については、 AppId タグ付けの既知の問題に関するページを参照してください。

  2. ウィザードのトグルを使用して、次のルール オプションを設定します。

    ポリシー ルール オプションの構成。

  3. カスタム ルールを作成する:

    ボタンを選択すると、[ + Custom Rules カスタム ルール] パネルが開きます。 ウィザードでは、次の 5 種類のファイル 規則がサポートされています。

    • 発行元ルール: 署名証明書階層に基づいてルールを作成します。 さらに、元のファイル名とバージョンを署名証明書と組み合わせてセキュリティを強化できます。
    • パス ルール: ファイルまたは親フォルダー パスへのパスに基づいてルールを作成します。 パス 規則では、ワイルドカードがサポートされています。
    • ファイル属性ルール: 元のファイル名、ファイルの説明、製品名、内部名などのファイルの変更できないプロパティに基づいてルールを作成します。
    • パッケージ アプリ名ルール: appx/msix のパッケージ ファミリ名に基づいてルールを作成します。
    • ハッシュ 規則: ファイルの PE Authenticode ハッシュに基づいてルールを作成します。

    新しいポリシー ファイル ルールの作成の詳細については、「ポリシー ファイル ルールの 作成」セクションで提供されているガイドラインを参照してください。

  4. AppId タグ付けポリシーに変換する:

    ウィザードによってポリシー ファイルがビルドされたら、テキスト エディターでファイルを開き、"Value=131" SigningScenario テキスト ブロック全体を削除します。 残りの署名シナリオは、ユーザー モード アプリケーション セクションである "Value=12" のみです。 次に、管理者特権のプロンプトで PowerShell を開き、次のコマンドを実行します。 シナリオの AppIdTagging Key-Value ペアを置き換えます。

     Set-CIPolicyIdInfo -ResetPolicyID -FilePath .\AppIdPolicy.xml -AppIdTaggingPolicy -AppIdTaggingKey "MyKey" -AppIdTaggingValue "MyValue"
    

    成功した場合、policyID GUID は PowerShell コマンドによって返されます。

PowerShell を使用してポリシーを作成する

このメソッドを使用して、WDAC PowerShell コマンドを使用して AppId タグ付けポリシーを直接作成します。 これらの PowerShell コマンドは、「 AppId タグ付けガイド」に記載されているサポートされているプラットフォームでのみ使用できます。 昇格 PowerShell インスタンスでは、次の手順を実行します。

  1. 署名証明書チェーンとアプリケーションのバージョンの組み合わせに基づいて、ポリシーの AppId 規則を作成します。 次の例では、レベルが SignedVersion に設定されています。 任意の WDAC ファイル規則レベルは、AppId ルールで使用できます。

     $rule = New-CiPolicyRule -Level SignedVersion -DriverFilePath <path_to_application>
    
  2. AppId タグ付けポリシーを作成します。 シナリオの AppIdTagging Key-Value ペアを置き換えます。

     New-CIPolicy -rules $rule -FilePath .\AppIdPolicy.xml -AppIdTaggingPolicy -AppIdTaggingKey "MyKey" -AppIdTaggingValue "MyValue"
    
  3. ポリシーのルール オプションを設定します。

     Set-RuleOption -Option 0 .\AppIdPolicy.xml  # Usermode Code Integrity (UMCI)
     Set-RuleOption -Option 16 .\AppIdPolicy.xml # Refresh Policy no Reboot
     Set-RuleOption -Option 18 .\AppIdPolicy.xml # (Optional) Disable FilePath Rule Protection
    

    ファイルパス規則を使用している場合は、オプション 18 を設定できます。 それ以外の場合は、必要はありません。

  4. ポリシーの名前と ID を設定します。これは、今後のデバッグに役立ちます。

     Set-CIPolicyIdInfo -ResetPolicyId -PolicyName "MyPolicyName" -PolicyId "MyPolicyId" -AppIdTaggingPolicy -FilePath ".\AppIdPolicy.xml"
    

    成功した場合、policyID GUID は PowerShell コマンドによって返されます。

ローカル テスト用にデプロイする

上記の手順で AppId タグ付けポリシーを作成した後、ポリシーをエンドポイントに広く展開する前に、テストのためにポリシーをローカル コンピューターに展開できます。

  1. デプロイ方法に応じて、xml をバイナリに変換します。

     Convertfrom-CIPolicy .\policy.xml ".\{PolicyIDGUID}.cip"
    
  2. 必要に応じて、ローカル テスト用にデプロイします。

     	copy ".\{Policy ID}.cip" c:\windows\system32\codeintegrity\CiPolicies\Active\
     	./RefreshPolicy.exe
    

    RefreshPolicy.exe は、 Microsoft ダウンロード センターからダウンロードできます。

次の手順

AppId タグ付けポリシーのデバッグと広範な展開の詳細については、「 AppId ポリシーのデバッグ 」と「 AppId ポリシーの展開」を参照してください。