システムエンジニアXの「プログラミング以外」の話 50代会社員SEのお仕事・副業・システム運用の経験談

レジストリでDefenderの監視を無効化しても勝手に戻る理由と対処法

公開:

※本記事には広告を含みます。

はじめに

検証環境や開発用PC、あるいはサードパーティ製セキュリティソフトとの競合回避のために、レジストリやグループポリシー(GPO)で DisableBehaviorMonitoring(振る舞い監視の無効化)や DisableRealtimeMonitoring(リアルタイム保護の無効化)を 1 に設定したにもかかわらず、数秒後やOS再起動後に設定が無視され、勝手に保護が「有効」へ戻ってしまう現象に悩まされたことはないでしょうか。

私も過去に、古いキッティング手順書に沿ってGPOで DisableRealtimeMonitoring を配布したものの、Windows 11端末ではまったく効かず、イベントログに不審な改ざん警告(イベントID 5013)が大量に出力されて原因調査に追われた経験があります。

実は現在のWindows 10 / 11では、マルウェアによる防御回避を防ぐため、ローカルレジストリやオンプレミスGPOからのDefender無効化操作をOS自体がブロック・自己修復するアーキテクチャへと変更されています。

この記事では、レジストリで DisableBehaviorMonitoring や DisableRealtimeMonitoring を書き換えても勝手に戻る技術的な理由と、開発端末やビルド環境で監視負荷を下げたい場合の正しい設定手順を解説します。

読み終えるころには、古いレジストリハック情報に振り回されることなく、現在のWindows仕様に沿った正規の制御・除外設計ができるようになります。

この記事の要点

  • HKLM\SOFTWARE\Policies\Microsoft\Windows Defender 配下に DisableBehaviorMonitoring や DisableRealtimeMonitoring を追加しても、「改ざん防止(Tamper Protection)」 が有効な環境では即座に破棄・無視される
  • このときイベントログには イベントID 5013(改ざん防止による設定変更ブロック)が記録される
  • ビルド遅延や誤検知を防ぐには、監視機能全体を止めるのではなく「フォルダー除外・プロセス除外」を構成するか、Intune / MDEの正規ポリシーで管理する必要がある
項目 動作確認・検証環境
検証年月 2026年9月
対象OS Windows 11 Pro / Enterprise 23H2・24H2
対象レジストリ DisableBehaviorMonitoring / DisableRealtimeMonitoring / DisableAntiSpyware
関連イベントID Microsoft-Windows-Windows Defender/Operational (ID: 5007 / 5013)

結論:レジストリ変更が勝手に戻る犯人は「改ざん防止(Tamper Protection)」

結論からお伝えすると、レジストリやGPOで DisableBehaviorMonitoring や DisableRealtimeMonitoring を 1 に設定しても勝手に有効へ戻るのは、Windows セキュリティの 「改ざん防止(Tamper Protection)」機能がレジストリによる無効化命令をマルウェアの攻撃と同等とみなして遮断・ロールバックしているため です。

Windows 10 バージョン 1903以降およびWindows 11では、改ざん防止が既定で「オン」になっています。この状態では、たとえローカル管理者権限や SYSTEM 権限、さらにはActive Directoryのグループポリシー(GPO)を使って以下のレジストリを書き換えても、Defenderエンジン(MsMpEng.exe)はその値を完全に無視します。

無視・自動復元される代表的なレジストリ値一覧

ネット上の古い技術記事でよく紹介されている以下のレジストリ設定は、現在の環境ではすべて無効化または自己修復の対象となります。

レジストリ値の名前 レジストリパス(HKLM\SOFTWARE\Policies\Microsoft\Windows Defender 配下) 現在のWindows 11(改ざん防止オン時)の挙動
DisableRealtimeMonitoring \Real-Time Protection 無視される(GPOで 1 を配ってもリアルタイム保護は有効のまま維持)
DisableBehaviorMonitoring \Real-Time Protection 無視・自動復元される(振る舞い監視はオフにならずイベントID 5013 を記録)
DisableIOAVProtection \Real-Time Protection 無視される(ダウンロードファイルのスキャン無効化が拒否される)
DisableAntiSpyware Windows Defender 直下 完全に廃止(バージョン 4.18.2007.8 以降、設定自体がコードから削除済み)

特に DisableAntiSpyware については、改ざん防止のオン・オフにかかわらず、Microsoft Defenderのプログラム仕様として機能自体が完全に廃止されています。


【実機検証】レジストリ書き換え時に裏側で何が起きているのか?

実際にWindows 11端末でレジストリやPowerShellを使って DisableBehaviorMonitoring を変更した際、OS内部とイベントログで何が起きるのかを検証しました。

1. レジストリ変更とイベントID 5013の発生

管理者権限のコマンドプロンプトから、以下のコマンドでポリシーレジストリに DisableBehaviorMonitoring = 1 を強制追加してみます。

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows Defender\Real-Time Protection" /v DisableBehaviorMonitoring /t REG_DWORD /d 1 /f

コマンド自体は「この操作を正しく終了しました。」と表示されます。しかし、直後にPowerShellで実際のDefenderの稼働ステータスを確認すると、以下のように BehaviorMonitorEnabled は True(有効) のままビクともしません。

# 実際の稼働状態を確認(レジストリが 1 でも True のまま変わらない)
Get-MpComputerStatus | Select-Object BehaviorMonitorEnabled, RealTimeProtectionEnabled, IsTamperProtected

この瞬間、イベントビューアーの Microsoft-Windows-Windows Defender/Operational を開くと、イベントID 5013 の警告が記録されています。

ログの名前: Microsoft-Windows-Windows Defender/Operational
イベント ID: 5013
レベル: 警告
説明: Microsoft Defender ウイルス対策が改ざんから保護されているため、設定の変更がブロックされました。
 値の名前: HKLM\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection\DisableBehaviorMonitoring

このように、Defenderはレジストリの変更をリアルタイムで監視しており、保護を弱める変更を検知した瞬間にブロックして元の状態(有効)を維持します。

2. なぜオンプレミスのGPO(グループポリシー)まで無視されるのか?

「ローカルの手動変更が弾かれるのはわかるが、なぜドメイン管理者が配布したGPOの設定まで無視されるのか?」と疑問に思う方も多いはずです。

理由はシンプルで、「GPOが最終的に行っている処理も、クライアント端末の HKLM\SOFTWARE\Policies\... レジストリへの書き込みに過ぎないから」 です。

ランサムウェアの多くは、侵入後にローカルGPO(LGPO)やポリシーレジストリ領域を直接書き換えることでGPO適用を偽装します。OSのカーネル側から見れば、「正規のドメインコントローラーから落ちてきたGPOによるレジストリ書き込み」と「ローカルで管理者権限を奪ったマルウェアによるレジストリ書き込み」を厳密に区別できません。そのため、Microsoftは「改ざん防止がオンの端末では、GPOによる保護無効化レジストリも一律で拒否する」という思い切った仕様変更を行いました。


現場での正しい対処法:監視を止めたいケース別の3つの解決策

それでは、業務上の正当な理由で DisableBehaviorMonitoring や DisableRealtimeMonitoring を設定したかった場合、どう対処すべきでしょうか。目的に応じて以下の3つの正規ルートを使い分けます。

ケース1:開発ビルドや特定ソフトが重いため振る舞い監視を外したい場合(除外設定)

Visual StudioやDocker、大量の小さなファイルを生成する業務バッチが MsMpEng.exe の振る舞い監視によって遅延している場合、監視機能全体をオフにするのはセキュリティリスクが高すぎます。

代わりに、対象の作業フォルダーまたはビルドプロセスを「除外(Exclusions)」に登録 してください。除外登録であれば、IntuneやGPOから安全に構成可能です。

# 特定の業務フォルダ・ビルド出力先フォルダをスキャンおよび振る舞い監視から除外
Add-MpPreference -ExclusionPath "C:\BuildWorkspace", "D:\CorpApp\Data"

# 特定の信頼できる業務プロセスが起動するファイル操作を除外
Add-MpPreference -ExclusionProcess "C:\Program Files\CorpApp\BatchWorker.exe"

※なお、改ざん防止が有効かつMDE管理下の端末でローカルの Add-MpPreference による除外追加も制限されている場合は、IntuneまたはGPOの「除外」ポリシーから配布してください。

ケース2:一時的な検証でどうしてもローカル端末の監視をオフにしたい場合

トラブル切り分けのために一時的に DisableBehaviorMonitoring や DisableRealtimeMonitoring を効かせたい場合は、レジストリを触る前に Windows セキュリティのGUI画面から「改ざん防止」を手動でオフ にする必要があります。

  1. スタンドアロン環境(MDE未導入)の場合:
    「Windows セキュリティ」>「ウイルスと脅威の防止」>「設定の管理」を開き、ローカル管理者権限で 「改ざん防止」をオフ にします(UACプロンプトへの同意が必須です)。その後に Set-MpPreference -DisableBehaviorMonitoring $true を実行すれば正常に反映されます。
  2. MDE / Intune組織管理環境の場合:
    GUIの「改ざん防止」がグレーアウトしているため、Microsoft Defenderポータルから対象端末に対して 「トラブルシューティングモード」 をオンにします(最大4時間だけローカルで改ざん防止をオフにできるようになります)。

ケース3:サードパーティ製EDR・AVソフトを導入するため恒久的に停止したい場合

他社製のウイルス対策ソフト(CrowdStrike、Symantec、Trend Micro、ESET等)を導入するためにDefenderを止めたい場合、レジストリで無効化する必要は一切ありません。

Windows クライアントOS(Windows 10 / 11)では、サードパーティ製AVソフトがインストールされ、Windows Security Center(WSC)へ正常に登録された瞬間に、Microsoft Defenderは自動的に「パッシブモード」または「無効状態」へ切り替わる仕組み になっています。手動でレジストリをいじると、かえってWSCの移行判定が狂う原因になるため、そのままサードパーティ製品をインストールするのが正解です。


よくある質問(FAQ)

Q: Windows Server環境ではサードパーティ製AVを入れてもDefenderが自動で止まらないというのは本当ですか?

A: はい、本当です。Windows 10 / 11(クライアントOS)とは異なり、Windows Server(2019 / 2022 / 2025)にはWindows Security Center(WSC)が存在しないため、他社製AVをインストールしてもDefenderが自動でパッシブモードに切り替わりません。Server OSで他社製AVと併用する場合は、GPOまたはレジストリ HKLM\SOFTWARE\Policies\Microsoft\Windows Advanced Threat Protection に ForceDefenderPassiveMode(REG_DWORD: 1)を設定して明示的にパッシブモードへ移行させる必要があります。

Q: レジストリで除外パス(Exclusions)を直接書き込むことはできますか?

A: いいえ、できません。HKLM\SOFTWARE\Microsoft\Windows Defender\Exclusions キーはシステム保護により管理者でも直接書き込みが拒否されます。また、改ざん防止が有効な環境ではポリシー領域(Policies\Microsoft\Windows Defender\Exclusions)への不正な書き換えも監視されています。必ずIntuneのウイルス対策プロファイル、または正規のGPO(管理用テンプレート)経由で配布してください。

Q: 現在端末で改ざん防止が何によって管理されているか確認するコマンドはありますか?

A: PowerShellで Get-MpComputerStatus | Select-Object IsTamperProtected, TamperProtectionSource を実行してください。TamperProtectionSource が UI であればローカルGUI管理、ATP や MDM と表示されていればMDEやIntuneクラウドによって強制ロックされています。


まとめ

レジストリで DisableBehaviorMonitoring や DisableRealtimeMonitoring を設定しても勝手に戻る問題のポイントは以下の通りです。

  • 設定が無視・復元される原因は、Windowsの 「改ざん防止(Tamper Protection)」 がレジストリ経由の無効化を攻撃として遮断しているため
  • ブロックされた形跡は、イベントログ Microsoft-Windows-Windows Defender/Operational の イベントID 5013 で確認できる
  • 動作遅延対策であれば監視全体を止めるのではなく、「フォルダー除外・プロセス除外」 でピンポイントに負荷を下げる
  • 一時的な障害切り分け時は、GUI(またはMDEのトラブルシューティングモード)で改ざん防止をオフにしてから設定を変更する

古いWindows 7 / 10初期時代のレジストリ無効化手順を廃止し、現在のセキュリティアーキテクチャに合わせた運用へアップデートしましょう。

関連記事

免責規定

この記事で提供される情報は、一般的なガイダンスを目的としており、すべての環境やシステムでの動作を保証するものではありません。

OSのバージョンやリリースによっては、記載されている事が実行できない、または異なる結果をもたらす可能性があります。 また、会社所有のパソコン、スマホ、タブレットなどでは、ポリシーや権限によって実行できない場合があります。

この記事の情報を使用することによって生じる問題や結果について、筆者およびサイト管理者は責任を負いません。 すべての操作は自己責任で行ってください。

最後までお読みいただきありがとうございました。
またお会いしましょう!

著者のおすすめ教材 & note実践記事

公式教材 豪華4大特典付き

PowerShell実務スクリプト50選

AD・Windows運用・障害対応をコマンド一発で自動化する現役SEの実務スクリプト集。

最新note 毎日定時で帰る現場ハック

ググっても出ない実務テク20選

社内SE現場の地味で細かすぎる面倒作業を一撃で解消する実践テクニック集。