Windows セキュリティの解説シリーズ、今回は「アプリとブラウザー コントロール」編です。
このセクションは、インターネットからダウンロードしたファイルやアプリ、Webサイトの閲覧時における「門番」のような役割を果たしています。 「ウイルスと脅威の防止」が侵入した敵を倒す騎士だとすれば、この機能は「怪しい奴を城に入れない門番」です。
特に Windows 11 22H2 以降で追加された強力な新機能「スマート アプリ コントロール」についても詳しく解説します。
1. スマート アプリ コントロール(Smart App Control)
Windows 11(バージョン 22H2 以降)で導入された、非常に強力なセキュリティ機能です。
Microsoft のクラウド AI を利用して、信頼されていないアプリや、署名のない怪しいアプリの実行を強制的にブロックします。
設定の状態(3つのモード)
この機能には 3つの状態があります。
- オン:もっとも強力な保護状態です。信頼性の低いアプリは一切起動できなくなります。セキュリティは最強になりますが、自作ツールやマイナーなフリーソフトが動かなくなる可能性があります。
- 評価(評価モード):Windows が「あなたの利用状況」を学習している期間です。このモード中、機能はバックグラウンドで動いていますが、ユーザーの邪魔はしません。「オンにしても問題ない(互換性に影響がない)」と AI が判断した場合のみ、自動的に「オン」に切り替わります。逆に、頻繁に署名のないアプリを使う人の場合、自動的に「オフ」になります。
- オフ:機能が無効化されています。従来の Windows と同じ状態です。
【重要】一度「オフ」にすると戻せません
この機能の最大の特徴は、「一度オフにすると、Windows をクリーンインストール(初期化)しない限り、二度とオンにできない」という点です。
これは、すでにシステム内に怪しいアプリが存在している状態でオンにしても、効果が薄いためです。「どうしてもオンにしたい」という場合は、PC の初期化が必要です。
2. 評価ベースの保護
以前からある「SmartScreen(スマートスクリーン)」と呼ばれる機能がここで管理されています。基本的にはすべて「オン」にしておくことを推奨します。
主な設定項目
- アプリとファイルの確認: Webからダウンロードしたファイルを実行しようとした時に、「Windows によって PC が保護されました」という青い画面が出ることがありますが、その機能です。
- Microsoft Edge の SmartScreen: Edge ブラウザーで悪意のあるサイト(フィッシングサイトなど)を開こうとした時に、赤い警告画面を出してブロックします。
- フィッシングに対する保護: パスワード入力時に、安全ではないサイトやアプリかどうかを判定し、警告を出してくれます。
- 望ましくない可能性のあるアプリのブロック(PUA): ウイルスではないものの、勝手に広告を表示したり、ブラウザの検索エンジンを勝手に変えたりする「迷惑アプリ(アドウェア)」のインストールを防ぎます。
- アプリをブロックする: インストール自体を防ぎます。
- ダウンロードをブロックする: Edge でのダウンロード時に防ぎます。
- Microsoft Store アプリの SmartScreen: ストアアプリが Webコンテンツにアクセスする際の安全性をチェックします。
フィッシングに対する保護(詳細解説)
主に、Windows へのサインインに使用している「Microsoft アカウントのパスワード」などが保護対象となります。
各チェック項目の意味は以下の通りです。
① 悪意のあるアプリとサイトを警告する
- 推奨: オン
- 機能: フィッシングサイト(偽のログイン画面など)や、危険なアプリ上でパスワードを入力しようとすると警告を出します。基本の保護機能です。
② パスワードの再利用を警告する
- デフォルト: オフ
- 推奨: お好みで(セキュリティ意識を高めたいならオン)
- 機能: Windows のログインと同じパスワードを、Webサイト(Amazon や SNS など)のログイン画面で入力しようとすると、「パスワードを使い回すのは危険ですよ」と警告してくれます。
- メリット: パスワードの使い回しによる被害(リスト型攻撃)を防げます。
③ パスワードの安全でない保存を警告する
- デフォルト: オフ
- 推奨: オン
- 機能: 「メモ帳」や「Word」などのエディタソフトに、パスワードをそのまま(平文で)入力すると警告します。
- メリット: 「デスクトップ上のメモ帳にパスワードを書いて貼っておく」といった危険な習慣を防ぐことができます。
【検証】警告が出る条件と注意点
この機能は、単にオンにするだけでは動作しない場合があります。以下の 3つの条件が揃った時のみ、警告画面「このアプリにパスワードを保存するのは安全ではありません」が表示されます。
1. 「パスワード」でのサインインが必須 これが最大の落とし穴です。普段、PINコード(暗証番号)や Windows Hello(指紋・顔認証)で Windows にサインインしている場合、この機能は動作しません。 Windows がメモリ上に「現在のパスワード」を持っていないため、照合ができない仕組みになっています。
2. 入力(タイプ)した瞬間に判定される 「保存ボタン」を押した時ではありません。メモ帳などにパスワードの文字列をキーボードで打ち込み、最後の 1文字を入力した瞬間にリアルタイムで警告が出ます。(例:パスワードが 1234 なら、4 を押した瞬間に警告)
3. 途中からのパスワード入力も対象外 Hyper-V などの仮想マシン接続で「拡張セッション」に切り替える際、パスワード入力を求められることがありますが、PC 起動時の最初のサインインが PIN だった場合は、ここでパスワードを入れても警告機能は有効になりません。 機能をテストしたい場合は、一度サインアウトし、パスワードを使ってログインし直す必要があります。
判定は「連続した入力」のみ有効(修正や改行に弱い)
この機能は、メモ帳に表示された文字を見ているのではなく、「あなたがキーボードをどう叩いたか」を監視しています。そのため、入力手順によって警告が出たり出なかったりします。
- 間に余計な文字が入ると NG: 例えばパスワードが「1234」の場合、「12534」と間違えて入力し、あとから「5」を削除して見た目を「1234」に直しても、警告は出ません。(一筆書きで正解を入力する必要があります)
- 直後の修正なら OK: 「125」と打った直後に BackSpace で「5」を消し、続けて「34」と入力した場合は、警告が出ます。(入力の流れが途切れていないため)
- 改行(Enter)は NG: 「12」と打って Enter キーを押し、BackSpace で 2 の後に戻って「34」と打っても警告は出ません。あくまで「一列の文字列」として入力された瞬間のみ判定されます。
④ セキュリティ上の脅威を特定するために追加の分析が必要な場合は、Web サイトまたはアプリのコンテンツを自動的に収集する
- 推奨: オン
- 機能: 未知の脅威が見つかった場合、その Webサイトやアプリの情報を Microsoft に送信して分析を助けます。自分だけでなく、世界中の Windows ユーザーの保護に繋がります。
3. Exploit protection(エクスプロイト プロテクション)
ここは、Windows 10 以降に OS 標準機能として統合された、高度なメモリ保護機能(旧 EMET の後継)です。 アプリケーションが使用する「メモリ」の扱い方を厳格に管理することで、ウイルスが脆弱性(セキュリティの穴)を突いて不正なコードを実行するのを防ぎます。
【最重要】設定を変更する前の約束
このセクションの設定は非常に繊細です。むやみに変更すると、古いアプリが起動しなくなったり、Windows の動作が不安定になったりするリスクがあります。
もし何らかの理由で設定を変更する場合は、必ず現在の(正常な)設定をバックアップしてください。
各項目の詳細解説(システム設定)
基本的にはすべて「既定値を使用する(オン)」のままで運用するのが最適です。それぞれの機能が「何をどう守っているのか」を解説します。
1. 制御フロー ガード (CFG)
- 役割: プログラムが実行するコードの「道順(フロー)」を監視します。
- 仕組み: アプリケーションが本来呼び出すはずのないメモリ上の場所へジャンプしようとした場合(攻撃者に誘導された場合など)、それを検知してアプリを強制停止させます。
2. データ実行防止 (DEP)
- 役割: メモリ上の「データ置き場」でプログラムが実行されるのを防ぎます。
- 仕組み: メモリ領域には「プログラム用」と「データ保存用」がありますが、攻撃者はデータ領域に悪意あるコードを忍び込ませて実行しようとします。DEP はデータ領域での実行を禁止することでこれを防ぎます。
3. イメージのランダム化を強制する (必須 ASLR)
- 役割: プログラムの配置場所を強制的にバラバラにします。
- 仕組み: ASLR(Address Space Layout Randomization)に対応していない古いアプリであっても、強制的にメモリ上の配置場所をランダム化し、攻撃者が「攻撃対象の場所」を特定できないようにします。
- 注意: 既定では「オフ」の場合が多いです。互換性への影響が大きいため、強制的にオンにすると古いソフトが動かなくなることがあります。
4. 仮想メモリの割り当てをランダム化する (ボトムアップ ASLR)
- 役割: 仮想メモリの割り当て場所をランダムにします。
- 仕組み: プログラムがメモリを使う際、通常は下位アドレス(ボトム)から順に使いますが、その開始位置をランダムにずらすことで、攻撃の予測を困難にします。
5. 高エントロピ ASLR
- 役割: ランダム化のパターン数を増やします。
- 仕組み: 64ビットのプロセス(アプリ)に対して、メモリ配置のランダム化の桁数(エントロピ)を増やし、より推測されにくくします。
6. 例外チェーンを検証する (SEHOP)
- 役割: エラー処理の乗っ取りを防ぎます。
- 仕組み: プログラムがエラーを起こした際に動く「例外ハンドラー」という仕組みを悪用し、攻撃コードを実行させる手法(SEH オーバーライト)を防ぎます。
7. ヒープの整合性を検証する
- 役割: ヒープメモリの破損を検知します。
- 仕組み: プログラムが動的に使用するメモリ領域(ヒープ)が、攻撃によって不正に書き換えられていないかをチェックします。破損が見つかった場合、被害が広がる前にプロセスを終了させます。
プログラム設定(個別の設定)
「システム設定」が PC 全体に適用されるのに対し、こちらは特定のアプリ(exeファイル)だけに適用されるルールです。
カスタマイズ: 「プログラムを追加してカスタマイズ」から、特定のアプリだけ CFG を無効にする、といった設定が可能ですが、開発者やトラブルシューティング目的以外で使用することはありません。
リストにあるアプリ: spoolsv.exe など、Windows の重要なシステムファイルがあらかじめ登録されており、それぞれに最適な(システム設定とは異なる)保護ルールが適用されています。
プログラム設定(編集画面)だけの項目
ここにある機能は、制限があまりに厳しいため、Windows 全体(システム設定)でオンにすることはできません。特定のアプリを強力にロックダウンしたい場合や、開発者がテストを行う場合にのみ使用されます。
ここにある設定は「開発者向け」です
「プログラム設定」の編集画面にあるこれらの項目は、非常に強力な制限をかけるものです。 通常のソフトウェア(Office やブラウザ、ゲームなど)に対して、知識なくこれらの設定をオンにすると、アプリが起動しなくなったり、エラーで落ちたりする原因になります。 基本的には「システム設定(7項目)」の既定値だけで十分な保護が得られています。
1. 動作を強力に制限する機能
アプリの「挙動」そのものを制限して攻撃を防ぎます。一般的なアプリでオンにすると、正常に動かなくなる可能性が高い項目です。
- 任意のコード ガード (ACG)
- 機能: 実行中に新しいプログラムコードを生成したり、書き換えたりするのを禁止します。
- 注意: 最近の Webブラウザーなどは、高速化のために実行中にコードを生成(JIT コンパイル)するため、これをオンにするとブラウザが動作しなくなります。
- 子プロセスを許可しない
- 機能: そのアプリが、別のプログラム(cmd.exe や PowerShell など)を勝手に起動するのを禁止します。
- メリット: 万が一アプリが乗っ取られても、そこから別の攻撃ツールを起動されるのを防げます。
- 機能: そのアプリが、別のプログラム(cmd.exe や PowerShell など)を勝手に起動するのを禁止します。
- Win32k システム コールを無効にする
- 機能: アプリが Windows の核心部分(カーネル)のグラフィック関連機能へアクセスするのを完全に遮断します。
2. 外部からの侵入を防ぐ機能
外部ファイルやフォントの読み込みを制限します。
- 整合性が低いイメージ / リモート イメージをブロックする
- 機能: 信頼性の低い場所や、ネットワーク上の別の PC にあるファイルを読み込むのを禁止します。
- 信頼されていないフォントをブロックする
- 機能: Windows のフォントフォルダにインストールされていないフォント(Webフォントなど)の読み込みを防ぎます。フォントの解析機能の脆弱性を突く攻撃に有効です。
- コードの整合性ガード
- 機能: Microsoft によってデジタル署名された信頼できるプログラム(DLL)以外は、一切読み込めないようにします。
- 拡張ポイントを無効にする
- 機能: 外部のプログラムがアプリに入り込むための「フック」などの古い仕組み(拡張メカニズム)を利用できないようにします。
3. 高度なメモリ保護(ROP 対策など)
メモリの隙間を突く高度な攻撃(ROP ガジェットなど)を検知して防ぐ、専門的な機能です。
- エクスポート アドレス フィルター (EAF) / インポート アドレス フィルター (IAF)
- 機能: 攻撃者がメモリ内の「関数の場所」を探し当てようとする行為(メモリスキャン)を検知してブロックします。
- 実行をシミュレートする (SimExec) / API 呼び出しを検証する (CallerCheck)
- 機能: プログラムが重要な命令(API)を出した際、それが「正当な手順」で呼ばれたものかを厳密にチェックします。
- スタックの整合性を検証する (StackPivot)
- 機能: メモリ上の「スタック(処理の積み重ね置き場)」が、攻撃者によって別の場所にすり替えられていないかを検証します。
- ハードウェア強制されたスタック保護
- 機能: 対応する CPU(Intel CET など)の機能を使い、ハードウェアレベルでプログラムの暴走を防ぎます。
- コア分離にある「カーネルモード ハードウェア強制スタック保護」と同じですか?
-
技術は同じですが、スイッチは別です。 コア分離にある設定は「Windows のシステム自体(カーネル)」を守るためのものです。 一方、Exploit protection にある設定は「各アプリ」を守るためのものです。 片方をオンにしたからといって、もう片方が自動的にオンになるわけではありません。それぞれ独立して動作しています。
ハードウェア強制されたスタック保護について
今回解説した「Exploit protection」は、あくまで各アプリを守るための機能です。 Windows のシステム自体(カーネル)を守る「カーネルモード ハードウェア強制スタック保護」については、以前こちらの記事で詳しく解説しています。
合わせて設定を確認しておきたい方は、こちらをご覧ください。

【注意】基本的には「触らない」のが正解
ここは「既定値(デフォルト)」のままにしておくのが最も安全です。
むやみに設定を変更すると、古いアプリやゲームが突然起動しなくなったり、システムが不安定になったりする原因になります。
特定の企業内システムや、古いアプリを動かすために「どうしてもこの機能をオフにしないといけない」という特別な事情がない限り、設定を変更する必要はありません。
【重要】設定変更のリスクと復元方法
この機能(Exploit protection)は、むやみに変更するとアプリが動かなくなるなどの不具合につながります。 特に理由がない限り、「既定値(デフォルト)」のままにしておくことを強く推奨します。
もし設定を変更する必要がある場合は、以下の方法で復元の準備をしてください。
1. 「システム設定」の戻し方
システム設定は項目数が少ないため、手動で元に戻すのが最も確実です。 バックアップファイル(XML)を作成しても、システム設定の「既定値」は正しく反映されない場合があるため、以下のリスト(初期値)を見て手動で戻してください。
▼ システム設定の初期値(デフォルト)
- 制御フロー ガード (CFG): 既定値を使用する (オン)
- データ実行防止 (DEP): 既定値を使用する (オン)
- イメージのランダム化を強制する (必須 ASLR): 既定値を使用する (オフ) ※ここだけオフ
- 仮想メモリの割り当てをランダム化する (ボトムアップ ASLR): 既定値を使用する (オン)
- 高エントロピ ASLR: 既定値を使用する (オン)
- 例外チェーンを検証する (SEHOP): 既定値を使用する (オン)
- ヒープの整合性を検証する: 既定値を使用する (オン)
2. 「プログラム設定」の戻し方
「プログラム設定」タブには、Windows があらかじめ最適化したアプリケーション設定が登録されています。これを手動で元に戻すのは不可能です。 もしここをカスタマイズする場合は、XMLファイルでのバックアップが必須です。
バックアップ手順:
- 「設定のエクスポート」をクリックし、XMLファイルを保存します。
復元手順(PowerShell を使用): この画面には「インポート」ボタンがありません。復元するには管理者権限で以下のコマンドを実行する必要があります。
1.スタートボタンを右クリック>「ターミナル(管理者)」をクリックします。
2.次のコマンドを入力して Enter を押します。
Set-ProcessMitigation -PolicyFilePath "C:\保存したXMLファイルのパス\ファイル名.xml"
3.コマンド実行後、PC を再起動すると設定が反映されます。
まとめ
「アプリとブラウザー コントロール」は項目が多く見えますが、一般ユーザーが気にするべきポイントはシンプルです。
- 評価ベースの保護: すべてのチェックボックスを「オン」にする。
- スマート アプリ コントロール: 使えるなら「オン」または「評価」のままで OK。(フリーソフト愛好家は「オフ」でも可)
- Exploit protection: 基本的には触らない。
これだけで、Web からの脅威に対して十分な防御力を発揮できます。
Windowsセキュリティ 完全解説シリーズ












コメント