setodaNote

忘れる用のメモ書き for Cybersecurity

Microsoft Defender Antivirus を無効化する

Windows 10 には Microsoft Defender Antivirus (または Windows Defender Antivirus)を設定から無効化したとしても、再起動等で自動的に有効化される仕組みが備わっています。 各種ツールを扱う場合に少し邪魔になる場合があり、再起動しても無効化した状態が保たれるようにしたかったのでその方法について調べました。 *1

f:id:soji256:20210211005725p:plain
Microsoft Defender Antivirus を無効化したい図

Microsoft Defender Antivirus 無効化

最終的に、スマートな方法ではないですが Autoruns というツールを用いて関連するスタートアップをことごとく止めることで無効化することができました。

この操作のためには設定にある「リアルタイム保護」をあらかじめ手作業で無効化しておく必要があります。

Powershell などコマンドベースで無効化する方法について調べていろいろと試したのですが、Microsoft Defender Antivirus は思っていた以上に無効化が難しく、最新に近い Windows 10 で有効な方法はどうしても見つけることができませんでした。*2 *3

動作を確認した環境

  • Microsoft Windows 10 Pro 1909 [Version 10.0.18363.1316]

Autoruns の入手

Autoruns は以下のサイトから入手できます。

f:id:soji256:20210211021423p:plain:w499
Autoruns for Windows v13.98

ダウンロードした zip ファイルを展開すると Autoruns の実行ファイルが確認できます。

「リアルタイム保護」をオフにする

Microsoft Defender Antivirus 関連の設定は変更できないように制限がかかっているので、Autoruns での設定変更に先立ってまずは設定から「リアルタイム保護」を無効化しておきます。*4

  • 設定からたどる方法
    設定 -> 更新とセキュリティ -> Windows セキュリティ ->Windows セキュリティを開く -> ウイルスと脅威の防止 -> 設定の管理 -> リアルタイム保護 をオフにします

  • スタートからたどる方法
    スタートに「改ざん防止」と入力 -> リアルタイム保護 をオフにします

f:id:soji256:20210211012955p:plain:w466
リアルタイム保護をオフにする

Microsoft Defender Antivirus 関連のスタートアップを止める

「リアルタイム保護」がオフになっていることを確認してから Autoruns (Autoruns64.exe) を管理者権限で起動します。

起動したらオプションを開き「Hide Empty Locations」以外のチェックをすべて外した状態にします。

f:id:soji256:20210211011742p:plain:w317
Autoruns のオプション設定

次にフィルター欄に「Windows Defender」と入力します。

f:id:soji256:20210211012010p:plain:w371
Autoruns のフィルター

表示される内容は環境によって若干異なりますが、以下の2つのカテゴリにある PolicyAgent 以外の項目のチェックを外します。

  • Task Scheduler
  • HKLM\System\CurrentControlSet\Services

f:id:soji256:20210211021157p:plain:w324
Autoruns で Microsoft Defender 関連のスタートアップを無効にする

この状態で再起動すると Microsoft Defender が無効化された状態が維持されます。

  • 設定:Windows セキュリティ

f:id:soji256:20210211020101p:plain:w423
Microsoft Defender Antivirus が無効化されている図(1/4)

もしくは

f:id:soji256:20210211025446p:plain:w451
Microsoft Defender Antivirus が無効化されている図(2/4)

  • Get-Service WinDefend
PS C:\> Get-Service WinDefend

Status   Name               DisplayName
------   ----               -----------
Stopped  WinDefend          Microsoft Defender Antivirus Service

f:id:soji256:20210211023259p:plain:w440
Microsoft Defender Antivirus が無効化されている図(3/4)

  • Get-MpPreference
PS C:\> Get-MpPreference
(snip)
DisableRealtimeMonitoring                     : True

f:id:soji256:20210211020150p:plain:w379
Microsoft Defender Antivirus が無効化されている図(4/4)

参考文献

再現できた方法

その他の方法

Microsoft Defender に関して

付録: Windows 10 1909 以降でうまくいかなかった方法集

Set-MpPreference -DisableAutoExclusions $true

Windows 10 の Windows Defender 無効化 で調べると Set-MpPreference -DisableAutoExclusions $true を Powershell で入力することで無効化できるという記事がたくさん見つかりますが、再現させることができませんでした。 *5

Get-Service WinDefend | Stop-Service -Force

FLARE-VM では Get-Service WinDefend | Stop-Service -Force といったコマンドを Powershell で実行することで無効化しようとしていますが、これも確認した限りでは再現させることができませんでした。 *6

PS C:\> Get-Service WinDefend | Stop-Service -Force
Stop-Service : Service 'Microsoft Defender Antivirus Service (WinDefend)' cannot be stopped due to the following error:
 Cannot open WinDefend service on computer '.'.
At line:1 char:25
+ Get-Service WinDefend | Stop-Service -Force
+                         ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.ServiceProcess.ServiceController:ServiceController) [Stop-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.StopServiceCommand

グループポリシーの「Microsoft Defender ウイルス対策を無効にする」を有効にする

グループポリシーで「Microsoft Defender ウイルス対策を無効にする」を有効にすることで無効化できるという記事もありましたが、確認した限りでは再起動することで未構成に強制変更されてしまっており、目的とする形の無効化はできませんでした。

レジストリに「DisableAntiSpyware」を加える

レジストリに DisableAntiSpyware と書き加えることで無効化にできるという記事もいくつかありましたが、確認した限りでは再現させることができませんでした。*7

更新履歴

  • 2021/02/11 新規作成
  • 2021/02/15 誤字を修正

*1:方法としてサードパーティー製のアンチウィルスソフトを導入することでも無効化されるという記事もありましたが、今回の目的には合わなかったこともあり試していません。

*2:Autoruns の設定変更自体は実態としてはレジストリの変更のようなので、コマンドで再現できそうではあるのですが、その前提となる「リアルタイム保護」の無効化をコマンドベースで実行する方法が見つけられませんでした。

*3:仮に見つけられていたら記事にしていなかったと思います。

*4:確認した環境では「改ざん防止」は有効状態でも問題ありませんでしたが、もし設定変更に失敗するようであれば同様に無効化するといいかもしれません。

*5:コマンド自体は特にエラーなく完了しているように見えますが、設定値を確認すると反映がされていませんでした。また、その他の項目や挙動などからも無効化は確認できませんでした。

*6:実行時にエラーが発生します。

*7:これについてはレジストリとして削除された(機能しないように仕様変更された)という記事もいくつかありました。