連載
» 2014年11月05日 18時00分 UPDATE

その知識、ホントに正しい? Windowsにまつわる都市伝説(17):“Windows Defenderの定義更新は少ない?”の怪

前回は「Windows Defender」の「スケジュールスキャンの謎」を解明しました。今回はもう一つの謎、「定義ファイルの更新」に関する疑問に迫ります。

[山市良,テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

連載目次

Windows Updateを止めると定義ファイルは更新されないの?

 Windows 8およびWindows 8.1に標準搭載されているマルウェア対策用の「Windows Defender」は、前回説明したように「Microsoft Security Essentials」や「System Center Endpoint Protection」(旧称、Forefront Client Security)、「Windows Intune Endpoint Protection」と共通の対策エンジンを持ち、定義ファイルも共通しています。

 Windows Defenderの定義ファイルは、既定ではWindows Updateを通じて更新されます(画面1)。Windows Updateの「自動更新」を有効にしている場合は、自動メンテナンスの処理の一部としてWindows Updateによる更新のチェックとインストールが行われ、その中にWindows Defenderの定義ファイルが含まれます。

画面1 画面1 Windows Defenderの定義ファイルは、既定ではWindows Updateで更新される

 自動メンテナンスの開始時刻にPCが起動していなくても、次回起動後のアイドル時間に自動メンテナンスが行われるため、毎日PCを利用しているなら少なくとも1日1回は定義ファイルが更新されるはずです。

 最近、度々発生するWindows Updateのトラブルを避けるため、自動更新をオフにしている人もいるでしょう。そうすると、当然のことながら、Windows Updateでの定義ファイルの自動更新はありません。

 その場合、Windows DefenderのGUIから手動で更新するしかないのかというと、そうではありません。前回の「スケジュールスキャン」もそうでしたが、Windows Defenderには定義ファイルを更新するためのオプションがいくつか用意されているのです。

定義の更新もローカルポリシーで制御できる

 Windows 8以降のProまたはEnterpriseエディションの場合は、「ローカルグループポリシーエディター」(Gpedit.msc)を使用して、定義の更新方法を細かく設定できます。具体的には、次の場所にあるポリシー(ローカルコンピューターポリシー)を設定します。

コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\スキャン

  • スケジュールされたスキャンの実行前に最新のウイルスおよびスパイウェア定義をチェックする

コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\署名の更新

  • 定義の更新をチェックする時刻を指定する
  • 定義の更新をチェックする間隔を指定する
  • スタートアップ時に最新のウイルスおよびスパイウェア定義をチェックする

 これらのポリシーにより、Windows Updateや自動メンテナンスとは別のタイミングで定義ファイルのチェックを開始させ、自動更新させることができます(画面2)。1〜24時間の間隔で定期的にチェックさせることも可能です。

画面2 画面2 スケジュールスキャンと同様に、定義ファイルの更新もポリシーでカスタマイズできる

ポリシー非対応のWindows 8/8.1無印ではどうする?

 ProまたはEnterpriseエディションではない、ホームユーザー向けのWindows 8およびWindows 8.1(無印)は、残念ながらローカルコンピューターポリシーによるシステム構成に対応していません。

 そこで、前回のスケジュールスキャンでも説明したコマンドライン版のユーティリティ「C:\Profram Files\Windows Defender\MpCmdRun.exe」を使用します。例えば、手動で定義ファイルの更新を開始するには、以下のコマンドラインを実行します。

MpCmdRun -SignatureUpdate


 このコマンドラインを設定したタスクを「タスクスケジューラ」に登録することで、希望の間隔(毎日、毎週)の指定した時刻に、定義ファイルの更新を自動実行させることができます(画面3)。「基本タスクの作成ウィザード」でスケジュールとコマンドラインを設定したら、詳細設定を開き、タスクをシステムアカウント(SYSTEM)が最上位特権で実行するように変更してください。

画面3 画面3 Windows Defenderのコマンドライン版をタスクに登録して、定義ファイルの更新を自動実行させる

新しい定義ファイルがあるのに更新されない謎

 筆者は1時間ごとに定義ファイルの更新をチェックするように構成し、しばらく様子を見てみました。すると、何時間も更新されない状態が続くことに気が付きました。比較のため、Windows 7のMicrosoft Security Essentialsで更新してみると、Windows Defenderが更新されない間も、Microsoft Security Essentialsの方はより短い間隔で更新されていました。

 マイクロソフトのマルウェア対策製品の最新の定義ファイルは、「Malware Protection Center」(マルウェア対策センター)からダウンロードできます。ここからは、Windows Defenderも最新の定義ファイルを取得できます。

 以下のサイトの変更履歴を見ると、筆者が確認した日については新しい定義ファイルがほぼ2時間おきにリリースされていました。Microsoft Security Essentialsの場合、手動で更新すると常に最新の定義ファイルを受け取れるようです。

 一方、Windows Defenderの場合はどうかというと、丸1日かけて追跡してみたところ、数バージョンをスキップして、おおよそ8時間に1回ほど、1日に3回程度しか更新が提供されませんでした(画面4)。

画面4 画面4 定義ファイルの新しいバージョンがリリースされているのに、Windows Defenderには検出されない状況が数時間続く

Microsoft Updateではなく、MMPCを参照させるようにするには

 どうやら、Microsoft UpdateサイトにはWindows Defender向けに全ての定義ファイルの更新がアップされるわけではないようです。「Windows Server Update Services」(WSUS)の同期結果や、WSUSの同期元である「Microsoft Update Catalog」で調べてみると、System Center Endpoint Protectionも同じようなリリース間隔になっていました。

 Windows Defenderで定義ファイルを手動で更新した場合、既定ではMicrosoft Updateを優先的に参照し、失敗した場合にMalware Protection Centerから定義ファイルの取得を試みます。Microsoft Updateがダウンすることはほとんどないので、通常はMicrosoft Updateだけをチェックすることになります。

 次のコマンドラインを実行すると、Microsoft Updateではなく、「Microsoft Malware Protection Center」(MMPC)から更新を取得させることができます。こちらの方法であれば、常に最新の定義ファイルに更新できました(画面5)。

MpCmdRun -SignatureUpdate -MMPC


画面5 画面5 「MpCmdRun -SignatureUpdate -MMPC」を実行すると、Malware Protection Centerから直接定義ファイルの更新を受け取ることができる

 定義ファイルの更新をタスクスケジューラで自動実行する場合は、前述のコマンドラインではなく、こちらのコマンドラインを登録しておくと、より短い間隔で定義ファイルを更新できるようになります。

ポリシーで既定の参照順序を変更する(バグあり)

 Windows Defenderが定義ファイルの更新に使用する参照先は、既定の順序を変更することもできます。それには、以下のポリシーを構成します。

コンピューターの構成\管理用テンプレート\Windows コンポーネント\Windows Defender\署名の更新

  • 定義の更新をダウンロードするための更新元の順序を定義する

 このポリシーを有効にして、更新元の順序を「MMPC|MicrosoftUpdateServer」のように設定します(画面6)。これで、Microsoft UpdateよりもMalware Protection Centerを優先するようになります。ちなみに、既定の順序は「InternalDefinitionUpdateServer(WSUSのこと)|MicrosoftUpdateServer|MMPC」です。

画面6 画面6 更新元の順序を「MMPC|MicrosoftUpdateServer」と設定する

 なお、このポリシーは、ポリシーを「有効」に設定しても「未構成」のままになるという不具合があるようです(画面7)。ポリシーをもう一度開いて、「有効」に切り替えて更新元の順序に「MMPC|MicrosoftUpdateServer」と表示されれば設定は有効になっています。あるいは、ポリシーが適用されていることをレジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender\Signature Updates\FallbackOrder」で確認してください。

画面7 画面7 「定義の更新をダウンロードするための更新元の順序を定義する」ポリシーには、「有効」に設定しても「未構成」と表示されるという不具合がある
「その知識、ホントに正しい? Windowsにまつわる都市伝説」バックナンバー

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2014)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。