特集
» 2017年05月23日 05時00分 公開

セキュリティパッチ適用詳説:今すぐできるWannaCry対策 (3/3)

[島田広道,デジタルアドバンテージ]
前のページへ 1|2|3       

SMBv1を無効化する

 セキュリティパッチ適用と合わせて、もう1つ実施しておきたいことがある。それが「SMBv1(SMB 1.0、SMB1)の無効化」だ。

 SMBv1とはSMB バージョン1.0のことで、Windows 2000のころから使われている古いファイル共有プロトコルである。そしてWannaCryが悪用したMS17-010の他、MS16-114のようにしばしば脆弱性が見つかっている。今後も、MS17-010と同じくらい危険な脆弱性が新たに発見される可能性は否定できない。

 またWindows Vista/Server 2008以降のOS同士であれば、上位バージョンのSMB 2.0以降で通信できる(しかも性能やセキュリティ上の強度はでもSMBv1より優れている)。つまり、Windows XP/Server 2003以前の古いOSがない環境なら、あえてSMBv1を使う必要はない。SMBv1機能を削除しても、SMBv2/v3の機能は残っているので、ファイルサーバへのアクセスはそのまま行える。

SMBのバージョン 対応しているWindows OS
SMB 1.0(SMBv1) Windows 2000/XP/Vista/7/8/8.1/10、Windows 2000 Server/Windows Server 2003/2003 R2/2008/2008 R2/2012/2012 R2/2016
SMB 2.0 Windows Vista/7/8/8.1/10、Windows Server 2008/2008 R2/2012/2012 R2/2016
SMB 2.1 Windows 7/8/8.1/10、Windows Server 2008 R2/2012/2012 R2/2016
SMB 3.0 Windows 8/8.1/10、Windows Server 2012/2012 R2/2016
SMB 3.02 Windows 8.1/10、Windows Server 2012 R2/2016
SMB 3.11 Windows 10、Windows Server 2016
SMBの各バージョンと、対応しているWindows OS
Windows Vista/Server 2008以降のWindows OS同士であれば、バージョン2.0以降のSMBで通信できるので、SMB 1.0(SMBv1)を無効化してもファイル共有などのサービスを引き続き利用できる。詳細は「Windowsネットワークの基礎:ファイル共有プロトコルSMBの概要」を参照していただきたい。

 マイクロソフトもSMBv1の使用を止めるように推奨している。

  • Stop using SMB1[英語](マイクロソフト公式ブログ「Storage at Microsoft」)

 ただし、前述のMS17-010のセキュリティパッチを適用しても、SMBv1は無効化されない(MS17-010の脆弱性を「回避」する方法として、SMB v1の無効化が紹介されている)。

 そこで、SMBv1を無効化する方法を以下に紹介する。無効化するのは原則として、脆弱性が見つかっているサーバ機能である。SMBのサーバ機能とは、大まかにはネットワークファイル共有サービスでファイル共有を開く側に相当する。「サーバ」と呼ばれるものの、Windows 10などのクライアントWindows OSにも標準装備されているので、SMBv1無効化の対象にはサーバ/クライアント両方のWindows OSが含まれる。

 設定作業・操作にはコマンドプロンプトまたはPowerShellを利用する。慣れればGUIより素早く設定できるだろう。

●Windows Vista/7やWindows Server 2008/2008 R2の場合

 これらのWindows OSでは、次のレジストリエントリの設定を変えることでSMBv1を無効化できる。

項目 内容
キーのパス HKLM\SYSTEM\CurrentControlSet\Services\
LanmanServer\Parameters
値の名前 SMB1
値の型 REG_DWORD
値の内容 0: SMBv1が無効
1: SMBv1が有効(デフォルト)
SMBv1を無効化するためのレジストリエントリ(Windows Vista/7、Windows Server 2008/2008 R2)
値「SMB1」に0を指定した後、システムを再起動するとSMBv1が無効化される。

 管理者権限で開いたコマンドプロンプトで、以下のようにregコマンドを実行すると、SMBv1の無効化やその確認ができる。

C:\>reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 ……SMBv1が有効か無効か確認する

エラー: 指定されたレジストリ キーまたは値が見つかりませんでした ……未設定(=有効)だと、このエラーが生じる

C:\>reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 /t REG_DWORD /d 0 /f ……値「SMB1」に「0」を設定する
この操作を正しく終了しました。

C:\>reg query HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters /v SMB1 ……再度、値「SMB1」を確認する

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    SMB1    REG_DWORD    0x0 ……今度は「0」が設定されている

C:\>shutdown /r /t 0 ……システムを再起動する



●Windows 8やWindows Server 2012の場合

 これらのWindows OSでは、管理者権限で開いたPowerShellで次のコマンドレットを実行することでSMBv1を無効化できる。

PS C:\> Get-SmbServerConfiguration | Select-Object EnableSMB1Protocol ……SMBv1が有効か無効か確認する

EnableSMB1Protocol
------------------
True ……「True」は「真」すなわちSMBv1は有効である


PS C:\> Set-SmbServerConfiguration -EnableSMB1Protocol $false -force ……SMBv1を無効化する
PS C:\> Get-SmbServerConfiguration | Select EnableSMB1Protocol ……再度確認する

EnableSMB1Protocol
------------------
False ……今度は「False」=「偽」すなわちSMBv1は無効化されている


 PowerShellを管理者権限で開くには、[Shift]+[Ctrl]キーを押しながらタスクバーのPowerShellアイコンをクリックする。また、上記のコマンドレットを.ps1ファイルに保存して実行する場合、あらかじめSet-ExecutionPolicyコマンドレットで実行ポリシーを緩めておく必要がある。

 システムの再起動は不要だ(実行するとすぐに反映される)。

●Windows 8.1/10の場合

 これらのWindows OSでは、管理者権限で開いたPowerShellで次のコマンドレットを実行することで、SMBv1の機能そのものをシステムから削除できる

PS C:\> Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object State ……SMBv1がシステムにインストール済みか確認する

   State
   -----
Enabled ……「Enabled」すなわちSMBv1はインストール済み

PS C:\> Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -NoRestart ……SMBv1をシステムから削除する
警告: NoRestart が指定されているため、再起動は抑制されています。

Path          :
Online        : True
RestartNeeded : True ……「True」ならシステムの再起動が必要。「False」なら不要

……必要なら、ここでシステムを再起動する……

PS C:\> Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol | Select-Object State ……再度確認する

   State
   -----
Disabled ……今度は「Disabled」すなわちSMBv1は削除済み


 この場合、SMBのサーバ機能だけではなくクライアント機能(SMBv1サーバに接続する側)も削除される

●Windows Server 2012 R2/2016の場合

 これらのWindows OSでは、管理者権限で開いたPowerShellで次のコマンドレットを実行することで、SMBv1をシステムから削除できる。

PS C:\> Get-WindowsFeature -Name FS-SMB1 ……SMBv1がシステムにインストール済みか確認する

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[X] SMB 1.0/CIFS ファイル共有のサポート                 FS-SMB1                        Installed ……「Installed」すなわちSMBv1はインストール済み

PS C:\> Uninstall-WindowsFeature -Name FS-SMB1 ……SMBv1をシステムから削除する

Success Restart Needed Exit Code    Feature Result
------- -------------- ---------    --------------
True    Yes            SuccessRest... {SMB 1.0/CIFS ファイル共有のサポート}
警告: 削除処理を完了するには、このサーバーを再起動する必要があります。 ……これが表示されたらシステムの再起動が必要

……必要なら、ここでシステムを再起動する……

PS C:\> Get-WindowsFeature -Name FS-SMB1 ……再度確認する

Display Name                                            Name                       Install State
------------                                            ----                       -------------
[ ] SMB 1.0/CIFS ファイル共有のサポート                 FS-SMB1                        Available ……今度は「Available」=「インストールできる」すなわちSMBv1は未インストール(削除済み)


 この場合、SMBのサーバ機能だけではなくクライアント機能(SMBv1サーバに接続する側)も削除される

●Windows XPやWindows Server 2003/2003 R2の場合

 これらのWindows OSはSMBv2以降をサポートしていない。つまりSMBv1を無効化することはSMBそのものの無効化に等しく、ファイル共有機能が使えなくなるなど影響が大きい。ウイルス対策ソフトウェアやIPS(Intrusion Prevention System:不正侵入防御システム)といった別の手段で防御せざるを得ないだろう(言うまでもなく、Windows OSそのものをサポート中のバージョンにアップグレードした方がよい)。


 本稿で紹介したパッチ適用方法は、WSUSなどのパッチ管理ツールはもちろん、Windows Updateと比べても原始的ではある。しかし、それだけに管理が行き届いていないシステムでも実施しやすいといえる。

 また、wmicコマンドsysteminfoコマンドregコマンド、PowerShellコマンドレットはネットワーク経由でリモートPCの情報収集や設定変更ができる。Active Directoryドメインが構築済みで認証が容易なネットワーク環境であれば、こうした機能を活用することで作業の効率をもう少し高められるだろう。

 WannaCryへの対策としては、本稿で紹介したセキュリティパッチ適用やSMBv1無効化の他にも存在する。詳細は次の記事などを参照していただきたい。

■更新履歴

【2017/05/23】SMBv1を無効化するための手順と注意点を追記しました。

【2017/05/17】初版公開。


「特集」のインデックス

特集

前のページへ 1|2|3       

Copyright© 1999-2018 Digital Advantage Corp. All Rights Reserved.

「Windows 7」サポート終了 対策ナビ

RSSについて

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

メールマガジン登録

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