2017/05/15

WannaCry (MS17-010) 対策状況の超簡易的なチェックツール(無保証)

注: 6 月に新しい更新プログラム (旧 OS を含む) がリリースされたため、この記事に書いてあるスクリプトではチェックできないと思ってください。バッチ スクリプトの書き方の参考として残しておきます。

WannaCry (WannaCrypt) 対策として、MS17-010 のセキュリティ更新プログラムが適用されているかどうかをチェックするバッチを作りました。Windows Server 2003 R2 でしかテストしていませんが、私が間違っていなければ Windows XP SP3 ~ Windows 10 Creators Update を判定できるはず。Windows XP 以降のすべての OS 環境で使える WMIC コマンドのバッチ実行で、対策済みのセキュリティ更新が適用済みであるか単純にチェックしています。

対策済み:

未対策:



実行時の管理者権限不要。コードはこちら。

本当に適当に作ったものなので、問題があってもご勘弁。コピー&ペーストすれば、余計な空白行が入るかもしれませんが、そのまま使えると思います。Windows 10 Creators Update には影響しないようなので、バージョン 10.0.15063 で除外しています。

なお、セキュリティ更新の適用状況をチェックしているだけで、それ以上のこと (感染状況のチェックとか、SMBv1 の有効/無効とか)は一切何もしていません。また、2017 年 5 月時点のセキュリティ更新をチェックしています。6 月以降は正しくない結果を返す可能性があります。Windows 2000 以前と Windows 10 Insider Preview は、まったく考慮していません。


 [check_ms17-010.cmd]
@ECHO OFF
REM http://yamanxworld.blogspot.jp/2017/05/wannacry-ms17-010.html
REM WINDOWS 10 CREATORS UPDATE
WMIC OS GET VERSION|FIND "10.0.15063" > Nul
IF %ERRORLEVEL% == 0 GOTO CREATORSUPDATE

REM WINDOWS 10 1607 AND WINDOWS SERVER 2016
WMIC QFE LIST | FIND "KB4019472" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015217" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015438" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

REM WINDOWS 10 1511
WMIC QFE LIST | FIND "KB4019473" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015219" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4013198" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

REM WINDOWS 10 1507
WMIC QFE LIST | FIND "KB4019474" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015221" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012606" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

REM WINDOWS 8.1 AND WINDOWS SERVER 2012 R2
WMIC QFE LIST | FIND "KB4019215" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015550" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012216" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012213" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

REM WINDOWS SERVER 2012
WMIC QFE LIST | FIND "KB4019216" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015551" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012217" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012214" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

REM WINDOWS 7 AND WINDOWS SERVER 2008 R2
WMIC QFE LIST | FIND "KB4019264" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4015549" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012215" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
WMIC QFE LIST | FIND "KB4012212" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED
  
REM WINDOWS VISTA AND WINDOWS SERVER 2008
REM WINDOWS XP, WINDOWS SERVER 2003, 2003 R2, WINDOWS 8
WMIC QFE LIST | FIND "KB4012598" > Nul
IF %ERRORLEVEL% == 0 GOTO PACHED

ECHO Probably MS17-010 vulnerable. You have to install MS17-010 patch.
ECHO More info:
ECHO https://docs.microsoft.com/en-us/msrc/customer-guidance-for-wannacrypt-attacks
ECHO https://blogs.technet.microsoft.com/jpsecurity/2017/05/14/ransomware-wannacrypt-customer-guidance/
ECHO *************************************************************
ECHO *** This batch did not check for updates after June 2017. ***
ECHO *************************************************************

GOTO END
:PACHED
ECHO No MS17-010 vulnerability.
GOTO END
:CREATORSUPDATE
ECHO This computer is running Windows 10 Creators Update. No MS17-010 vulnerability.
:END
PAUSE

チェックしている更新プログラムの KB 番号は、こちらを参考にしています。Windows 7、Windows Server 2008 R2 SP1 以降は累積的な更新なので、ここ数か月(3 月から)累積的な更新が失敗し続けてるっていう方は、泣きたくなるかも。

[WannaCrypt] MS17-010 の適用状況の確認方法について (WSUS)
[URL] https://blogs.technet.microsoft.com/jpwsus/2017/05/15/wannacrypt-ms17-010-wsus/


なお、上記パッチは、Windows 7、Windows Server 2008 R2 SP1 以降の、2017年3月以降の「マンスリーセキュリティロールアップ」と「セキュリティのみの更新プログラム」をカバーしていますが、「マンスリロールアップのプレビュー」はチェックしていませんので、ご注意ください。


Windows 7 SP1およびWindows Server 2008 R2 SP1の更新履歴
[URL] https://support.microsoft.com/ja-jp/help/4009469
Windows Server 2012 の更新履歴
[URL] https://support.microsoft.com/ja-jp/help/4009471/windows-server-2012-update-history
Windows 8.1 および Windows Server 2012 R2 の更新履歴
[URL] https://support.microsoft.com/ja-jp/help/4009470/windows-8-1-windows-server-2012-r2-update-history
Windows 10 および Windows Server 2016 の更新履歴
[URL] https://support.microsoft.com/ja-jp/help/4000825/windows-10-windows-server-2016-update-history


Windows XP、Windows 8、Windows Server 2003、Windows Server 2003 R2 は、Windows Update や Microsoft Update を実行しても KB4012598 は検出されないので(↓)、Microsoft Update Catalog (http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012598) から手動でダウンロード&インストールしてください(↓)。企業の場合は WSUS にも同期されることはないみたいです(手動でインポートできるらしい)。 

※ Windows XP のスタートメニューと IE メニューにある Windows Update のリンク(http://windowsudpate.microsoft.com/) は存在しなくなったようです(↑)。http://www.update.microsoft.com/ほにゃららを直接 IE で開けば、Windows Update できます(↑)。が、KB4012598 は検出されませんでした。


追記)
バッチに追記した https://docs.microsoft.com/en-us/msrc/customer-guidance-for-wannacrypt-attacks にいくと、旧 OS 向けの更新プログラムへの直リンク(ダウンロードセンターでも公開されている) があります。
Download localized language security updates: Windows Server 2003 SP2 x64, Windows Server 2003 SP2 x86, Windows XP SP2 x64, Windows XP SP3 x86, Windows XP Embedded SP3 x86, Windows 8 x86, Windows 8 x64

2 件のコメント:

M_M さんのコメント...

KB4012598でぐぐったところ、ダウンロードセンターでもXP用が公開されていました。
https://www.microsoft.com/ja-JP/download/details.aspx?id=55245

ところで、SMBv1の脆弱性対策で感染は防げるけど、共有しているフォルダ内のファイルが感染したPCによって暗号化されてしまうことまでは防げないと思いますが…

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

この記事は「セキュリティ更新の適用状況をチェックしているだけ」です。

現在、巷を騒がせているランサムウェアがどういうものなのか、MS17-010パッチで感染を本当に防止できるのか、どうやって感染を広げるのか、社内に感染した PC が出た場合どうするのか、などまったく考えていませんのでご了承ください。

なお、XP 向けのダウンローセンターのものは公開直後、更新プログラムのタイトルとは違う XP Embedded 向けの更新プログラム(ほにゃらら-Embedded-Custom-JPN.exe)がダウンロードされる状況にありました。現在は修正されているので、記事内に直リンクを追記しました。もし、5/15 以前にダウンロードしてしまった人は、XP にインストールしようとしても「インストールされているWindowsのバージョンは、インストールしようとしている更新に一致しません」と出てインストールできないのでご注意ください。