Windows10 1709 ブラウザのExploit Protection設定

最終更新日

更新履歴
2018/02/20 Chrome設定 「拡張ポイントを無効にする」 ◯→✖
2018/02/28 MicrosoftEdge設定に、MicrosoftEdgeCP.exeの設定を追加

適当にオンにしてみたらブラウザが起動しなくなった。

Windows 10 1709 (Fall Creators Update)からは、従来のEMETの後継として、Windows Defender Exploit Protectionが標準搭載されています。EMETよりも、設定できる項目が増えています。

Exploit Protection 個別のプログラム設定画面

適当に設定したらブラウザがまともに動作しなくなりました。やっぱり。

そこで、現在使っているブラウザについて、Exploit Protect設定でオンにするとトラブルになる項目を調べてみました。

調べたブラウザ

  • IE11 (v11.192.16299.0)
  • Microsoft Edge (v41.16299.15.0)
  • Google Chrome (v64.0.3282.140)
  • Firefox (v58.0.1)
  • Cyberfox (v52.6.1) … Firefox派生ブラウザ
  • Pale Moon (v27.7.2) … Firefox派生ブラウザ

※ カスタマイズしてあります。

環境

OS: Winows 10 バージョン1709 ビルド16299.214
Flash Player: v28.0.0.161

◯ オンにしても特に問題がなかったもの。
✖ オフ推奨。オンにすると動作に支障が出るもの。

オンにしてから、ブラウザを起動、FlashPlayerコンテンツがあるWebベージにアクセス。次の症状が出た場合に、✖としました。

  • エラーウインドウが出る。
  • イベントビューアーにエラー・警告ログが記録される。
  • ブラウザが起動しない。
  • ブラウザが強制終了する。
  • ブラウザが一時的に応答なしになる。
  • ページ全体、または一部が正常に表示されない。
  • アドオンが動作しない。

*がついている項目は、(GUIの)「システム設定」にもあります。それらのオプションの項目については、「厳密なCFGを使用する」だけ問題が発生することがあったため掲載、その他は省きました。

Exploit Protectionにブラウザの設定を追加する方法

  1. Windows Defender セキュリティセンターを開く。
  2. アプリとブラウザーコントロール
  3. Exploit Protectionの設定
  4. プログラム設定
  5. 「プログラムを追加してカスタマイズ」の左の+ボタン
  6. 「プログラムの名前で追加」「正確なファイルパスを選択してください」のいずれかを選択
  7. ブラウザの実行ファイル(.exe)を指定

追加できたら、設定を編集していきます。

注意

ブラウザの実行ファイルをシンボリックリンクで別の場所に移動させている場合は、必ず「プログラムの名前で追加」から登録してください。(ジャンクションの場合は「正確なファイルパスを選択してください」でも大丈夫)

同名の実行ファイルが複数ある場合(例 インストール版とポータブル版の両方を使用)は、どちらも同じ設定でよければ「プログラムの名前で追加」、別々の設定にしたければ、それぞれ「正確なファイルパスを選択してください」から登録します。

IE11の設定

iexplore.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
ただしGoogle Webフォントを読み込まないことがある
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ◯ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

MicrosoftEdgeの設定

MicrosoftEdge.exe, MicrosoftEdgeCP.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ◯ )

厳密なCFGを使用する ◯ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

Google Chromeの設定

chrome.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ✖ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
オン … 日本語IMEが無効になる
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

Chrome.exeの場合、設定を全部オフにしたとしても、イベンドヒューアーに次の警告ログが複数記録されます。これについては、無視しました。

Microsoft-Windows-Security-Mitigations/KernelMode
イベント ID 10
プロセス '(中略)chrome.exe' (PID xxxx) は、Win32k.sys のシステム呼び出しの実行をブロックされました。

Firefoxの設定

firefox.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ✖ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

Pale Moonの設定

palemoon.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ✖ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
オン … 日本語IMEが無効になる
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

Cyberfoxの設定

Cyberfox.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ✖ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)

Plugin-Container.exeの設定

Plugin-Container.exeは、Firefox系ブラウザに付随するものです。

複数のFirefox系ブラウザを使用し、各ブラウザのPlugin-Container.exeを別々に設定したい場合は、すべてのPlugin-Container.exeを「正確なファイルパスを選択」から追加する必要があります。

plugin-container.exe
任意のコードガード(ACG)
低整合性イメージをブロックする
リモートイメージをブロックする
信頼されていないフォントをブロックする
コードの整合性ガード
制御フローガード (CFG) *
厳密なCFGを使用する ✖ )

厳密なCFGを使用する ✖ )

厳密なCFGを使用する ✖ )
データ実行防止 (DEP) *
拡張ポイントを無効にする
Win32kシステムコールを無効にする
子プロセスを許可しない
エクスポートアドレスフィルター (EAF)
イメージのランダム化を強制する (必須ASLR) *
インポートアドレスフィルター (IAF)
仮想メモリの割り当てをランダム化する (ボトムアップASLR) *
実行をシュミレートする (SimExec)
API呼び出しを検証する (CallerCheck)
例外チェーンを検証する (SEHOP) *
ハンドルの使用状態を検証する
ヒープの整合性を検証する *
イメージの依存関係の整合性を検証する
スタックの整合性を検証する(StackPivot)
関連記事