エクスプロイト保護を有効にする

Exploit Protection は、悪用によりデバイスに感染し、拡散するマルウェアから保護するのに役立ちます。 Exploit Protection は、オペレーティング システムまたは個々のアプリに適用できるさまざまな軽減策で構成されています。

この記事では、Windows セキュリティ アプリ、Microsoft Intune、MDM、Microsoft Configuration Manager、グループ ポリシー、または PowerShell を使用して、Exploit Protection 軽減策を有効にして構成する方法について説明します。

重要

.NET 2.0 は、一部の悪用保護機能 (具体的には、エクスポート アドレス フィルター (EAF) およびインポート アドレス フィルター (IAF)) と互換性がありません。 .NET 2.0 を有効にしている場合、EAF と IAF の使用はサポートされていません。

Enhanced Mitigation Experience Toolkit (EMET) ツールの多くの機能が Exploit Protection に含まれています。

前提条件

次の推奨事項は、Exploit Protection を正常にデプロイするのに役立ちます。

  • アプリケーションクラッシュの監視 (イベント ID 1000 またはイベント ID 1001) およびハング (イベント ID 1002) の設定

  • ユーザー モードの完全なダンプ収集を有効にする

  • 主にメモリ破損の脆弱性の軽減に焦点を当てた "制御フロー ガード" (CFG) を使用して既にコンパイルされているアプリケーションを確認します。 dumpbin ツールを使用して、 CFG でコンパイルされているかどうかを確認します。 CFG で既にコンパイルされているアプリケーションの場合、DEP、ASLR、SEHOP、ACG の適用の有効化をスキップできます。

  • 安全なデプロイ プラクティス (SDP) を使用して、Exploit Protection の変更を段階的にテストしてロールアウトします。

警告

テストを行わない場合、安全なデプロイプラクティスを実行しない場合は、エンド ユーザーの生産性の停止に貢献できます。

安全なデプロイプラクティス

安全なデプロイ プラクティス (SDP): 安全なデプロイ プロセスと手順により、ワークロードに対する変更を安全に行ってデプロイする方法が定義されます。 SDP を実装するには、リスク管理のレンズを通じてデプロイについて考える必要があります。 SDP を実装することで、デプロイでのエンド ユーザーの生産性の停止のリスクを最小限に抑え、問題のあるデプロイがユーザーに与える影響を制限できます。

まず、Windows デバイスの小さなセット (10 から 50 など) から始めて、そのデバイス グループをテスト環境として使用して、21 個の軽減策のうち、どの軽減策が悪用保護と互換性がないかを確認します。 アプリケーションと互換性のない軽減策を削除します。 対象とするアプリケーションを改めて示してください。 Exploit Protection ポリシーを運用環境に使用する準備ができたら、より広範に展開を開始します。

まず、IT 管理者、セキュリティ管理者、ヘルプ デスク担当者で構成されるユーザー受け入れテスト (UAT) にプッシュします。 次に、1%、5%、10%、25%、50%、75%、そして最後に環境の100%に。

Exploit Protection の軽減策を有効にする

次のいずれかの方法を使用して、各軽減策を個別に有効にすることができます。

エクスプロイト保護は、Windows 10 と Windows 11 で既定で構成されています。 各軽減策は、オン、オフ、またはその既定値に設定できます。 一部の軽減策には、より多くのオプションがあります。 Exploit Protection 軽減策の設定を XML ファイルとしてエクスポートし、他のデバイスに展開できます。

軽減策を 監査モードに設定することもできます。 監査モードを使用すると、デバイスの通常の使用に影響を与えることなく、軽減策がどのように機能するかをテスト (およびイベントの確認) できます。

Windows セキュリティ アプリを使用して Exploit Protection を有効にする

Windows セキュリティ アプリで Exploit Protection の軽減策を構成するには、次の手順に従います。

  1. タスク バーで盾のアイコンを選択するか、スタート メニューで "セキュリティ" を検索して、Windows セキュリティ アプリを開きます。

  2. [アプリとブラウザーの制御] タイル (または左側のメニュー バーのアプリ アイコン) を選択し、[エクスプロイト保護の設定] を選択します。

  3. [プログラムの設定] に移動し、軽減策を適用するアプリを選択します。

    • 構成するアプリが既に一覧表示されている場合は、それを選択し、[編集] を選択します。
    • アプリが一覧にない場合は、一覧の上部にある [プログラムを追加してカスタマイズ] を選択し、アプリを追加する方法を選択します。
    • [プログラム名で追加] を使用して、その名前を持つ実行中のプロセスに軽減策を適用します。 その拡張子を持つファイルを指定します。 完全なパスを入力して、その場所でその名前を持つアプリのみに軽減策を制限できます。
    • 標準のエクスプローラー ファイル ピッカー ウィンドウを使用して目的のファイルを検索して選択するには、[正確なファイル パスの選択] を使用します。
  4. アプリを選択すると、適用できるすべての軽減策の一覧が表示されます。 [ 監査 ] を選択すると、監査モードでのみ軽減策が適用されます。 プロセスまたはアプリを再起動する必要がある場合、または Windows を再起動する必要がある場合は、通知されます。

  5. 構成するすべてのアプリと軽減策について、手順 3 から 4 を繰り返します。

  6. [システム設定] セクションで、構成する軽減策を見つけて、次のいずれかの設定を指定します。 [プログラムの設定] セクションで個別に構成されていないアプリでは、ここで構成されている設定が使用されます。

    • 既定ではオン: この軽減策がアプリ固有の [プログラム設定] セクションで設定されていないアプリに対して軽減策が有効になります
    • 既定ではオフ: この軽減策がアプリ固有の [プログラム設定] セクションで設定されていないアプリに対して軽減策が無効になります
    • 既定値を使用: Windows 10 または Windows 11 のインストールによって設定されている既定の構成に応じて、軽減策が有効または無効になります。既定値 (オン または オフ) は、軽減策ごとに [既定のラベルを使用する] の横に常に指定されます
  7. 構成するすべてのシステムレベルの軽減策について、手順 6 を繰り返します。 構成の設定が完了したら、[適用] を選択します。

アプリを [プログラムの設定 ] セクションに追加し、そこで個々の軽減策の設定を構成すると、[ システム設定 ] セクションで指定したのと同じ軽減策の構成の上に適用されます。 既定の動作を理解するのに次のマトリックスと例が役立ちます:

[プログラム設定] で有効 [システム設定] で無効 動作
はい 不要 [プログラム設定] で定義されているとおり
はい はい [プログラム設定] で定義されているとおり
不要 はい [システム設定] で定義されているとおり
不要 不要 [既定のオプションを使用する] で定義されている既定値

例 1: Mikael がシステム設定セクションの [データ実行防止] を既定でオフに構成する場合

Mikael はアプリの test.exe を [プログラム設定] セクションに追加します。 そのアプリのオプションで、Mikael は [データ実行防止 (DEP)] の [システム設定のオーバーライド] オプションを有効にして、スイッチを [オン] に設定します。 [プログラム設定] セクションには他にアプリがありません。

その結果、DEP は test.exe に対してのみ有効になります。 他のすべてのアプリには DEP が適用されません。

例 2: Josie がシステム設定セクションの [データ実行防止] を既定でオフに構成する場合

Josie はアプリの test.exe を [プログラム設定] セクションに追加します。 そのアプリのオプションで、Josie は [データ実行防止 (DEP)] の [システム設定のオーバーライド] オプションを有効にして、スイッチを [オン] に設定します。

Josie は、[プログラム設定] セクションにアプリの miles.exe を追加し、[制御フロー ガード (CFG)] を [オン] に設定します。 Josie は、DEP またはそのアプリのその他の軽減策の [システム設定のオーバーライド] オプションは有効にしません。

その結果、DEP は test.exe に対して有効になります。 DEP は、miles.exe を含む他のアプリでは有効になりません。 CFG は miles.exe に対して有効になります。

  1. タスク バーで盾のアイコンを選択するか、スタート メニューで "Windows セキュリティ" を検索して、Windows セキュリティ アプリを開きます。

  2. [アプリとブラウザーの制御] タイル (または左側のメニュー バーのアプリ アイコン) を選択し、[エクスプロイト保護] を選択します。

  3. [プログラムの設定] に移動し、軽減策を適用するアプリを選択します。

    • 構成するアプリが既に一覧表示されている場合は、それを選択し、[編集] を選択します。
    • アプリが一覧にない場合は、一覧の上部にある [プログラムを追加してカスタマイズ] を選択し、アプリを追加する方法を選択します。
      • [プログラム名で追加] を使用して、その名前を持つ実行中のプロセスに軽減策を適用します。 拡張子を持つファイルを指定します。 完全なパスを入力して、その場所でその名前を持つアプリのみに軽減策を制限できます。
      • 標準のエクスプローラー ファイル ピッカー ウィンドウを使用して目的のファイルを検索して選択するには、[正確なファイル パスの選択] を使用します。
  4. アプリを選択すると、適用できるすべての軽減策の一覧が表示されます。 [ 監査 ] を選択すると、監査モードでのみ軽減策が適用されます。 プロセスまたはアプリを再起動する必要がある場合、または Windows を再起動する必要がある場合は、通知されます。

  5. 構成するすべてのアプリと軽減策について、手順 3 から 4 を繰り返します。 構成の設定が完了したら、[適用] を選択します。

Microsoft Intuneを使用して Exploit Protection を有効にする

Microsoft Intune Endpoint Security Attack surface reduction ポリシーを使用して悪用保護を構成するには、「エンドポイント セキュリティ ポリシーを作成する (Intune ドキュメントの新しいタブで開く)」を参照してください。 ポリシーを作成するときは、次の設定を使用します。

  • ポリシーの種類: 攻撃面の縮小
  • プラットフォーム: Windows 10、Windows 11、Windows Server
  • プロファイル: エクスプロイト保護
  • 構成設定: [Exploit Protection Settings][構成済み] に設定し、エクスプロイト保護 XML ファイルを参照して選択します

Exploit Protection XML ファイルの作成の詳細については、「Exploit Protection 構成のインポート、エクスポート、デプロイ」を参照してください。

Microsoft Intuneでの攻撃面の縮小ポリシーの詳細については、「Intuneのエンドポイント セキュリティに対する攻撃面の縮小ポリシー」を参照してください。

MDM を使用して Exploit Protection を有効にする

ExploitGuard ExploitProtectionSettings 構成サービス プロバイダー (CSP) を使用して、Exploit Protection の軽減策を有効または無効にするか、監査モードを使用します。

Microsoft Configuration Managerを使用して Exploit Protection を有効にする

[エンドポイント セキュリティ] ノードまたは [資産とコンプライアンス] ワークスペースを使用して、Configuration Managerを通じて Exploit Protection を展開できます。

Endpoint Security ノードからの Exploit Protection を有効にする

エンドポイント セキュリティ ノードを使用してMicrosoft Configuration Managerで Exploit Protection ポリシーを作成するには、次の手順に従います。

  1. Microsoft 構成マネージャー で、[エンドポイント セキュリティ]>[攻撃面の縮小] に移動します。

  2. [ポリシーの作成]>[プラットフォーム] を選択し、[プロファイル] に対して [Exploit Protection] を選択します。 その後、[作成] を選択します。

  3. 名前と説明を指定し、次へ を選択します。

  4. [XML ファイルの選択] を選択し、Exploit Protection XML ファイルの場所を参照します。 ファイルを選択して、[次へ] を選択します。

  5. 必要に応じて、[スコープ] タグと [割り当て] を構成します。

  6. [確認と作成] で、設定を確認し、[作成] を選択します。

[資産とコンプライアンス] ワークスペースから Exploit Protection を有効にする

[資産とコンプライアンス] ワークスペースを使用してMicrosoft Configuration Managerで悪用防止ポリシーを作成するには、次の手順に従います。

  1. Microsoft Configuration Manager で、[資産とコンプライアンス]>[エンドポイントの保護]>[Windows Defender Exploit Guard] に移動します。

  2. [ホーム] > [Exploit Guard ポリシーの作成] を選択します。

  3. 名前と説明を指定し、[Exploit protection] を選択して、次に [次へ] を選択します。

  4. Exploit Protection の XML ファイルの選択の場所を参照し、[次へ] を選択します。

  5. 設定を確認し、[次へ] を選択してポリシーを作成します。

  6. ポリシー作成後、[閉じる] を選択します。

グループ ポリシーを使用して Exploit Protection を有効にする

グループ ポリシーを使用して Exploit Protection を構成するには、次の手順を実行します。

  1. グループ ポリシー管理デバイスで、グループ ポリシー管理コンソールを開きます。 構成するグループ ポリシー オブジェクトを右クリックし、[編集] を選択します

  2. [グループ ポリシー管理エディター] で、[コンピューターの構成] に移動し、[管理用テンプレート] を選択します。

  3. ツリーを [Windows コンポーネント] > [Windows Defender Exploit Guard] > [Exploit Protection] > [一般的な Exploit Protection 設定のセットを使用] の順に展開します。

  4. [有効] を選択し、XML ファイルの場所を入力して、[OK] をクリックします。

PowerShell を使用して Exploit Protection を有効にする

コマンドレット Getを使用して、PowerShell 動詞 Set または ProcessMitigation を使用できます。 Getを使用すると、デバイスで有効になっている軽減策の現在の構成状態が一覧表示されます。 特定のアプリに現在適用されている悪用防止の軽減策を確認するには、 -Name パラメーターとアプリ実行可能ファイルを追加します。

Get-ProcessMitigation -Name processName.exe

重要

構成されていないシステムレベルの軽減策については NOTSET の状態が表示されます。

  • システムレベルの設定の場合、NOTSET は、その軽減策の既定の設定が適用されたことを示します。
  • アプリレベルの設定の場合、NOTSET は、その軽減策のシステムレベルの設定が適用されたことを示します。 各システムレベルの軽減策の既定の設定は、Windows セキュリティで確認できます。

Setを使用して、システム レベルまたはアプリ レベルで 1 つ以上のエクスプロイト保護の軽減策を有効または無効にします。 一般的な構文は次のとおりです。

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

場所:

  • <範囲>:
    • 特定のアプリに軽減策を適用する必要があることを示す -Name。 このフラグの後にアプリの実行可能ファイルを指定します。
      • システムレベルで軽減策を適用する必要があることを示す -System
  • <アクション>:
    • -Enable で緩和策を有効にする
    • 軽減策を無効にする -Disable
  • <軽減策>:
    • 軽減策のコマンドレットと任意のサブオプション (スペースで囲まれています)。 各軽減策はコンマで区切られます。

次の例では、ATL サンク エミュレーションを使用して DEP を有効にし、C:\Apps\LOB\tests フォルダー内の testing.exe という基幹業務アプリケーションの子プロセスの作成をブロックします。

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

重要

各軽減策オプションは、コンマで区切ります。

すべてのプロセスに適用されるシステム全体の軽減策として DEP を有効にするには、次のコマンドを使用します。

Set-Processmitigation -System -Enable DEP

軽減策を無効にするには、-Enable-Disable に置き換えることができます。 ただし、アプリ レベルの軽減策では、 -Enable-Disable に置き換えると、そのアプリに対してのみ軽減策が無効になります。

アプリ固有の DEP オーバーライドを削除し、軽減策をシステムの既定値に戻すには、次の例に示すように -Remove コマンドレットを含めます。

Set-Processmitigation -Name test.exe -Remove -Disable DEP

次の表に、-Enable または -Disable コマンドレット パラメーターと共に使用する個別の 軽減策(使用可能な場合は 監査 も)の一覧を示します。

軽減策の種類 適用対象 緩和コマンドレットのパラメーター キーワード 監査モードのコマンドレット パラメーター
制御フロー ガード (CFG) システムレベルとアプリレベル CFGStrictCFGSuppressExports 監査を利用できません
データ実行防止 (DEP) システムレベルとアプリレベル DEPEmulateAtlThunks 監査を利用できません
イメージに対してランダム化を強制する (必須 ASLR) システムレベルとアプリレベル ForceRelocateImages 監査を利用できません
メモリ割り当てのランダム化 (ボトムアップ ASLR) システムレベルとアプリレベル BottomUpHighEntropy 監査を利用できません
例外チェーンの検証 (SEHOP) システムレベルとアプリレベル SEHOPSEHOPTelemetry 監査を利用できません
ヒープの整合性の検証 システムレベルとアプリレベル TerminateOnError 監査を利用できません
任意コード ガード (ACG) アプリレベルのみ DynamicCode AuditDynamicCode
整合性が低いイメージのブロック アプリレベルのみ BlockLowLabel AuditImageLoad
リモート画像をブロック アプリレベルのみ BlockRemoteImages 監査を利用できません
信頼されていないフォントのブロック アプリレベルのみ DisableNonSystemFonts AuditFontFontAuditOnly
コードの整合性ガード アプリレベルのみ BlockNonMicrosoftSignedAllowStoreSigned AuditMicrosoftSigned、AuditStoreSigned
拡張ポイントの無効化 アプリレベルのみ ExtensionPoint 監査を利用できません
Win32kシステムコールの無効化 アプリレベルのみ DisableWin32kSystemCalls AuditSystemCall
子プロセスを許可しない アプリレベルのみ DisallowChildProcessCreation AuditChildProcess
エクスポート アドレス フィルター (EAF) アプリレベルのみ EnableExportAddressFilterPlus, EnableExportAddressFilter[1] 監査は利用できません [2]
インポート アドレス フィルター (IAF) アプリレベルのみ EnableImportAddressFilter 監査は利用できません [2]
実行をシミュレート (SimExec) アプリレベルのみ EnableRopSimExec 監査は利用できません [2]
API 呼び出しの検証 (CallerCheck) アプリレベルのみ EnableRopCallerCheck 監査は利用できません [2]
ハンドルの使用状態の検証 アプリレベルのみ StrictHandle 監査を利用できません
イメージ依存関係の整合性の検証 アプリレベルのみ EnforceModuleDepencySigning 監査を利用できません
スタックの整合性の検証 (StackPivot) アプリレベルのみ EnableRopStackPivot 監査を利用できません [2]

[1]: 特定のプロセスに対してエクスポート アドレス フィルタリング プラス (EAF+) を有効にし、選択した DLL への監視を制限するには、次の形式を使用します。

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]: この軽減策の監査は、PowerShell コマンドレットでは使用できません。

Exploit Protection の通知をカスタマイズする

ルールがトリガーされ、アプリまたはファイルがブロックされたときの通知をカスタマイズする方法については、「Windows セキュリティ」を参照してください。

Exploit Protection の軽減策を削除する

Exploit Protection の軽減策をリセット (元に戻すまたは削除) するには、「 Exploit Protection の軽減策をリセットまたは削除する」を参照してください。

関連項目