2014/09/02

Windows 8/8.1 の Windows Defender の定義の更新間隔を確実に短縮する方法

Windows 8/8.1 に標準搭載されているマルウェア対策 (アンチ ウイルス、アンチ スパイウェア、ネットワーク検査システム (NIS)) の定義ファイルは、既定では Windows Update を通じて更新されます。Windows Defender の UI を開いて [更新] タブから手動更新することもできます。が、Windows Defender って定義の更新が少ないような気がしません?

どうやら、既定のままだといくら自動/手動で更新しようとしても、リリース済みの定義ファイルの数バージョンはスキップされるようです。というわけで、例えば、1 時間に 1 回、自動で更新して、常に最新バージョンの定義ファイルを確実に受け取る方法を考えてみました。

MpCmdRun.exe -SignatureUpdate のコマンドラインをタスク スケジューラで自動実行するんでしょって思ったあなた。それじゃあ、ダメなんです。

Windows Defender の定義ファイルは Microsoft Security Essentials や System Center Endpoit Protection、Windows Intune Endpoint Protection と共通で、定義ファイルのリリース状況は http://www.microsoft.com/security/portal/definitions/whatsnew.aspx で確認できます。


Windows Update で自動更新された定義ファイルや、Windows Defender の[更新]ボタンや MpCmdRun.exe -SignatureUpdate で手動更新された定義ファイルのバージョンが、最新の定義ファイルより古いことがあります。いくら更新しようとしても、途中のバージョンがスキップされるように見えます。例えば、朝イチで更新されたとして、次の更新は夕方って感じです。ちなみに、Microsoft Security Essentials の場合は、こんなことはなく、常に最新のものに更新できると思います。


このような状況でも、MpCmdRun -SignatureUpdate -MMPC を実行すると、常に最新バージョンにすぐに更新できます。



-MMPC オプションは、Microsoft Malware Protection Center から直接、更新を取得するオプションです。MpCmdRun.exe のログ %PROGRAMFILES%\AppData\Local\Temp\MpCmdRun.log (ユーザーの実行ログ) および %Windir%\Temp\MpCmdRun.log (SYSTEM や NetworkService による実行ログを含む) を見ると良く分かりますが、-MMPC オプションなしだと Microsoft Update/Windows Update を検索しますが、-MMPC オプション付きだと http://go.microsoft.fwlink/?LinkID=...... を検索しています。

試しに、Windows Server 2012 R2 の Windows Server Update Services (WSUS) を使用して、Windows Defender の定義ファイルを同期してみました。すると、リリースされた定義ファイルの 4 回に 1 回しか (別の日には 5 回に 1 回ってときもありました) 、Update カタログに来ないようです。ちなみに、Endpoint Protection の定義ファイルも同様でした。

定義ファイルのリリース間隔は不定ですが、短いときで 2 時間おきにリリースされています。3 つのバージョンが飛ばされると、だいたい 6 時間に 1 回の更新ということになりますね。つまり、MpCmdRun.exe -SignatureUpdate をタスク スケジューラで 1 時間間隔で実行するようにしても、5 回くらいは空振りってことになります。

というわけで、MpCmdRun.exe -SignatureUpdate をタスク スケジューラに登録している方は、さらに -MMPC オプションを追加しておくことをお勧めします。なお、このタスクは SYSTEM で、最上位の特権で実行するように構成するといいみたい。

Windows 8/8.1 の Pro や Enterprise を使用している場合は、タスク スケジューラを使用しなくても、ローカル ポリシーで定義ファイルの更新動作を細かく構成できます。

ポリシーの場所は「コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\署名の更新」です。「定義の更新をチェックする間隔を指定する」に 1 を設定すれば、1 時間ごとに更新をチェックしてくれます。「定義の更新をダウンロードするための更新元の順序を定義する」ポリシーに「MMPC | MicrosoftUpdateServer」のように設定すれば、最初に Microsoft Malware Protection Center を優先的に検索し、失敗したら Windows Update/Microsoft Update に切り替えてくれます。

なお、「定義の更新をダウンロードするための更新元の順序を定義する」ポリシーの設定は、-MMPC オプションなしの MpCmdRun -SignatureUpdate や [更新]ボタンによる手動更新にも反映されるようです。


Windows Defender には、まだまだ謎なところが多いので、ただいま調査中 。例えば、→VDI と Windows Defender (Windows 8 以降の) とか。いずれ、どこかのオンライン記事でまとめようかな?

最後に。私は Windows Defender ではなく、マルウェア対策製品を購入して使ってます。

2014/09/02 追記)
Windows 7 以前向けの Microsoft Security Essentials の場合は、-MMPC オプションの使用について考える必要は無いと思います。既定の動作で、自動または手動で Microsoft Update から最新の定義ファイルを取得できています。


2 件のコメント:

kanipan さんのコメント...

いつも参考にさせてもらっています

記事に従ってWin 8.1 Proのローカルポリシーで「定義の更新をダウンロードするための更新元の順序を定義する」を設定しようとしたのですが、
有効にチェックをして設定値を入力して「適用」を押してもポリシーが未構成のままとなり有効になりません。
何か他に必要な設定があるのでしょうか?

山市 良 さんのコメント...

それ、バッグっぽいです。設定しても見た目は有効になりませんが、設定は反映されます(レジストリに変更が反映さえます)。