マイクロソフト セキュリティ アドバイザリ 4022344
Microsoft Malware Protection Engine 用のセキュリティ更新プログラム
[URL] https://technet.microsoft.com/ja-jp/library/security/4022344.aspx
Windows Defender 自体の定義の更新と一緒に更新されるので、Windows Update を明示的に実行しなくても、Windows Defender が有効(別の対策ソフトを使っていない場合) なら、定期的な定義の更新で自然と脆弱性は解消されているはずです。気になる人は、Windows Defender のバージョン情報で「エンジンのバージョン:1.1.13704.0」またはそれより新しくなっていれば問題ないです(Windows 10 なら[設定 > 更新とセキュリティ > Windows Defender] でも確認可)。
Windows Defender はWindows 8 以降に搭載され、Windows PowerShell の Defender モジュールも利用可能になっています。Windows 8.1 (Windows 8 は EOS なので省略) や Windows 10 なら、Windows PowerShell を開いて...
PS C:\> Get-MpComputerStatus
または
PS C:\> (Get-MpComputerStatus).AMEngineVersion
でエンジンのバージョンを確認することができる...はずなのですが、Windows 8.1 でなんとなく実行してみたところ、エラーが発生。しかも、Windows Defender 関連のコマンドレット(Defender モジュール)が全滅状態になっていました。(ここから本題。今回の脆弱性とは別の話)
同じ症状を解消する、System Center/Forefront Endpoint Protection 向けの更新プログラムの(2016年3月の)情報がすぐに見つかりました。でも、これは、Windows Defender 向けではありません。
2016年 3 月マルウェア対策プラットフォーム更新の改訂版のクライアントのエンドポイントの保護
[URL] https://support.microsoft.com/ja-jp/kb/3153224/
Import-Module Defender のエラーを見ると、MSFT_MpWDOScan.cdxml が見つからないということで、%Windir%\System32\WindowsPowerShell\v1.0\Modules\Defender を覗いてみると、Defender.psd1のタイムスタンプが2017/02/10 で怪しい(親ディレクトリは2017/04/12でこれも怪しい)。開いてみると、存在しない MSFT_MpWDOScan.cdxml が NestedModules に書いてあって、FunctionsToExport に Start-MpWDOScan (たぶん MSFT_MpWDOScan.cdxml が関係している) が書いてありました。
クリーン インストールしただけで放置していた(起動していない、Windows Update していない) Windows 8.1 仮想マシンでは、ちゃんと動きます。 Defender.psd1 を見ると、MSFT_MpWDOScan.cdxml と Start-MpWDOScan は存在しません。
この問題、いつから発生していたのか分かりませんが、ここ数か月の間にこうなっていたと思います。脆弱性のある「エンジンのバージョン:1.1.13701.0」の Windows 8.1 でもこの問題が発生しました。話題になっていないのは、Windows PowerShell で Windows Defender を使っている人なんていないからか、それとも Windows Defender を使っていないからか...
Defender.psd1 を書き換えてしまえば、簡単に問題を解消できそう。システムファイルの変更は所有権とかアクセス許可が面倒ですが、Windows PowerShell のモジュール問題は経験済み。
Windows Server 2016 TP3 > システムロケールと FailoverClusters モジュール問題(の真相)(2015/08/31)
というわけで、いつかは Windows Defender に対する更新プログラムで修正されると思いますが、待てないという方は、次の方法で問題を解消できます。ただし、するかしないかは、自己責任で。Defender モジュールが使えなくても、Windows Defender の MSASCUI.exe とか MpCmdRun.exe による更新やスキャンには影響しませんので。
C:\Windows\System32> mkdir C:\work
(一時フォルダーの作成)
C:\Windows\System32> cd WindowsPowerShell\v1.0\modules\Defender
C:\..\Defender> copy Defender.psd1 c:\work\
(Defender.psd1を編集用にコピー)
C:\..\Defender> copy Defender.psd1 c:\work\Defender.psd1.bak
(念のためバックアップ)
C:\..\Defender> notepad C:\work\Defender.psd1
@{
GUID = 'C46BE3DC-30A9-452F-A5FD-4BF9CA87A854'
Author="Microsoft Corporation"
CompanyName="Microsoft Corporation"
Copyright="ゥ Microsoft Corporation. All rights reserved."
ModuleVersion = '1.0'
NestedModules = @( 'MSFT_MpComputerStatus.cdxml',
'MSFT_MpPreference.cdxml',
'MSFT_MpThreat.cdxml',
'MSFT_MpThreatCatalog.cdxml',
'MSFT_MpThreatDetection.cdxml',
'MSFT_MpScan.cdxml',
'MSFT_MpSignature.cdxml'
'MSFT_MpWDOScan.cdxml'
AliasesToExport = @()
FunctionsToExport = @( 'Get-MpPreference',
'Set-MpPreference',
'Add-MpPreference',
'Remove-MpPreference',
'Get-MpComputerStatus',
'Get-MpThreat',
'Get-MpThreatCatalog',
'Get-MpThreatDetection',
'Remove-MpThreat'
'Start-MpWDOScan
PowerShellVersion = '3.0'
HelpInfoUri="http://go.microsoft.com/fwlink/?linkid=390762"
}
(
C:\..\Defender> robocopy C:\work\ .\ Defender.psd1 /B
(Robocopy のバックアップ モードで編集後のファイルをコピー)
問題解決!
・・・
された Windows Defender Offline のオフライン スキャン (WinPE で起動してスキャン) を開始する機能です(→)。「エンジンのバージョン:1.1.13704.0」なら、Windows Defender Offline も「エンジンのバージョン:1.1.13704.0」になっていました。
関連:
Windows 10 1607 に Windows Defender Offline が内蔵 (2016/08/04)
Windows 10 Anniversary Update で Windows Defender Offline を使うと自動修復が自動起動しなくなる件(追記あり)(2016/08/31)
↑この問題は 1703 で治っていました。
Windows Defender Offline を搭載していない Windows 10 バージョン 1511 でも同じ問題が発生するのでは... と思いきや、Defender モジュールの読み込みに失敗することはありませんでした(MSFT_MpWDOScan.cdxml もちゃんと存在するから)。
ただし、Windows Defender Offline を搭載していなので、Start-MpWDOScan は機能しません。
追記) 犯人を特定しました
てっきり、Windows Update の定義(エンジンを含む)の更新でやってきた問題だと思っててましがた、違ってました。
%Windir%\System32\WindowsPowerShell\v1.0\Module\Defender ディレクトリのタイムスタンプを手掛かりに、4月の Monthly Rollup が怪しい。と思って、府更新プログラムの全ファイルリスト (4015550.csv)を見てみたら、タイムスタンプ 2017/2/10 の Defender.psd1 は、4月(2017/4/11)の Monthly Rollup KB4015550(3/22 Monthly Rollup Preview KB4012219 にも含まれる) でインストールされていました。累積的なので、そのまま 5月(2017/5/9) の Monthly Rollup KB4019215 にも含まれています。前月の3月(2017/3/14)の Monthly Rollup KB4012216 には含まれていません。
つまり、4 月 12 日の更新以降、Windows 8.1 の Defender モジュールのコマンドレットは全滅状態。来週出る 5 月の
Montly Rollup Preview でもタイムスタンプが変わっていなければ、6 月も修正の見込みなしってことかな?
この問題に半日も費やしてしまった...(後悔) 。
Windows 8.1 のフィードバックをどこに送るればよいのか考えるのが面倒なので、誰かこの問題(またはここで)見つけてくれることを、祈ります。
2019/8/19 追記)
公式の回避策。2018年10月のMonthly Rollupから見たいに書いてるけど、それ以前からでしたよ。
Windows 8.1: You cannot use Windows PowerShell to manage Windows Defender after installing the October 9, 2018 update (2020/10/29 追記、リンク先、ついこの前まであったのに 404 Error に)
https://support.microsoft.com/en-us/help/4497578/
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。