SMB1とは何か?無効化が必要な理由と具体的な設定方法を解説
SMB(Server Message Block)は、主にWindows環境においてファイル共有、プリンター共有、ネットワーク接続されたコンピューター間の通信に使用されるネットワーク層のプロトコルです。このプロトコルはIBMとマイクロソフトによって開発され、最初の実装はDOSおよびWindows NT 3.1で行われました。その後、SMBはWindows XP、Vista、7、8、10、11といったほぼすべてのWindowsバージョンに搭載され、サーバー向けエディションにも組み込まれています。Windowsネイティブのプロトコルではありますが、Linux(SAMBA経由)やmacOSでもサポートされています。

SMBの動作メカニズム
最もシンプルな形では、SMBクライアントマシンは認証が成功した後、SMBポート(ポート445)を使用してSMBサーバーに接続し、SMBベースの共有リソースへアクセスします。SMB接続が確立されると、ファイルの共同作業、プリンター共有、その他さまざまなネットワークベースの操作が可能になります。

SMBプロトコルの歴史
SMBプロトコルは1980年代にIBMのチームによって開発されました。長年にわたるネットワーク要件の変化に対応するため、SMBは複数のバリエーション(バージョンまたはダイアレクトと呼ばれます)へと進化してきました。現在でも、LANや職場環境におけるリソース共有のための最も広く使われるプロトコルの一つです。
SMBプロトコルのバージョン一覧
常に変化するIT環境との互換性を維持するため、SMBプロトコルは初代の実装から数多くの改良が加えられてきました。主なバージョンは以下の通りです。
- SMB 1:1984年にDOS上でのファイル共有目的で作成されました。
- CIFS(Common Internet File System):1996年、マイクロソフトがWindows 95向けにSMBの独自版として導入しました。
- SMB 2:2006年、Windows VistaおよびWindows Server 2008の一部としてリリースされました。
- SMB 2.1:2010年、Windows Server 2008 R2およびWindows 7で導入されました。
- SMB 3:2012年、Windows 8およびWindows Server 2012でリリースされました。
- SMB 3.02:2014年、Windows 8.1およびWindows Server 2012 R2で登場しました。
- SMB 3.1.1:2015年、Windows 10およびWindows Server 2016で導入されました。
SMBv1の問題点
SMBv1は1980年代にIBMによって開発され、1990年代にマイクロソフトが機能を追加してCIFSと改名しました。当時のSMB 1は大きな成功を収めましたが、今日のようなインターネット接続が常態化した世界向けには設計されていませんでした。30年以上の時が流れ、情報革命が大きく進んだ現在では、時代遅れの技術となっています。マイクロソフトは2013年にSMBv1を非推奨とし、以降のWindowsおよびWindows Serverではデフォルトでインストールされなくなりました。
旧式の技術であるため、SMBv1は非常に安全性が低く、多くの脆弱性が存在します。その多くはターゲットマシンでのリモートコード実行を許してしまうものです。セキュリティ専門家たちはSMB 1の脆弱性について警告を発してきましたが、SMBv1の脆弱性を標的とした悪名高いWannaCryランサムウェア攻撃により、その危険性は明白になりました。

これらの脆弱性を踏まえ、SMB1の無効化が推奨されます。SMB1の脆弱性に関する詳細は、Malwarebytesのブログページで確認できます。また、ユーザー自身がMetasploitを使用して、SMB1の脆弱性(特にEternalBlue)を検査することも可能です。

SMBv2とSMBv3の強化ポイント
SMBv2およびSMBv3は、SMB 1にはない以下の強化機能を提供しています。
- 事前認証整合性(Integrity)
- 安全なダイアレクトネゴシエーション
- 暗号化機能
- 安全でないゲスト認証のブロック
- より強固なメッセージ署名
ここで疑問に思う方もいるかもしれません。「システムにSMBv2やSMBv3があるなら、SMB 1の脆弱性はカバーされるのではないか?」しかし答えはノーです。これらの強化機能は異なるメカニズムで動作するためです。SMBv2・v3が有効なマシンでSMBv1も有効になっている場合、SMBv2やv3まで危険にさらされる可能性があります。なぜなら、SMB 1は中間者攻撃(MiTM)を防げないからです。攻撃者は自分側でSMBv2・v3をブロックし、SMB 1だけを使って標的マシン上で悪意あるコードを実行すればよいのです。
SMB 1を無効化することの影響
どうしても必要な場合(Windows XP稼働マシンやSMB 1を使用するレガシーアプリケーションがある場合など)を除き、すべてのサイバーセキュリティ専門家が、個人システムおよび組織全体でSMBv1を無効化することを推奨しています。ネットワーク内にSMBv1を必要とするアプリケーションやデバイスがなければ、何の影響もありませんが、すべての環境でそうとは限りません。無効化の状況はケースごとに異なりますが、IT管理者は以下の点を考慮すべきです。
- ホストとアプリケーション間の非暗号化・非署名の通信
- LMおよびNTLM通信
- 下位(または上位)レベルクライアント間のファイル共有通信
- 異なるOS間のファイル共有通信(LinuxとWindows間の通信など)
- レガシーソフトウェアやSMB固定型の通信アプリケーション(Sophos、NetApp、EMC VNX、SonicWalls、vCenter/vSphere、Juniper Pulse Secure SSO、Arubaなど)
- プリンターおよびプリントサーバー
- AndroidからWindowsアプリケーションへの通信
- MDB形式のデータベースファイル(SMBv2/v3では破損する恐れがあり、SMBv1が必須の場合があります)
- SMB 1を使用するバックアップやクラウドアプリケーション
SMB 1を無効化する方法
SMB1を無効化する方法は複数あり、自分の環境に最も合った方法を選択できます。
デフォルトで無効になっているか確認する
Windows 10 Fall Creators Update以降では、SMBv1はデフォルトで無効化されています。Windows 11でも同様です。サーバー editionsでは、Windows Server バージョン1709(RS3)以降でデフォルト無効となっています。SMB1の現在の状態を確認するには:
- Windowsキーをクリックし、「PowerShell」を検索して右クリックし、サブメニューから「管理者として実行」を選択します。

- 次のコマンドを実行します:
Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

なお、マイクロソフトはWindows Updateを通じてSMB 1の自動削除を行っていますが、ユーザーが再び有効化すると、今後自動的に無効化されず、マシンが脆弱なままになる可能性がある点に注意してください。
Windows 10/8/7のコントロールパネルを使用する
- Windowsキーをクリックし、「コントロールパネル」を検索して開きます。

- 「プログラム」を選択し、「Windows の機能の有効化または無効化」を開きます。

- 「SMB 1.0/CIFS ファイル共有のサポート」のチェックを外し、「適用」をクリックします。

- システムを再起動すると、SMB 1が無効化されます。

Windows 11のオプション機能メニューを使用する
- Windowsボタンを右クリックし、「設定」を開きます。

- 左ペインの「アプリ」に移動し、右ペインで「オプション機能」を開きます。

- 画面を下にスクロールし、「関連設定」の「Windows のその他の機能」をクリックします。

- 表示されたメニューで「SMB 1.0/CIFS ファイル共有のサポート」のチェックを外し、「適用」をクリックします。

- PCを再起動すると、再起動後にSMBv1が無効化されます。
PowerShellを使用する
上記2つの方法で大多数のユーザーの要件は満たせますが、サーバーシステムでは管理者がPowerShellを使用する必要がある場合があります(クライアントマシンでも同じ手順が機能します)。
- Windowsキーをクリックし、「PowerShell」を検索して右クリックし、「管理者として実行」を選択します。
- 次のいずれかのコマンドを実行します:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force または Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol または Set-SmbServerConfiguration -EnableSMB1Protocol $false サーバーの場合 Remove-WindowsFeature -Name FS-SMB1 または Set-SmbServerConfiguration -EnableSMB1Protocol $false

- システムを再起動すると、再起動後にSMB 1が無効化されます。
レジストリエディタを使用する
PowerShellが利用できないサーバーマシン(Windows Server 2003など)の管理者は、レジストリエディタでSMB 1を無効化できます。この手順はクライアントマシンでも問題なく動作します。
警告:
システムのレジストリ編集は高度な作業です。慎重に進め、自己責任で行ってください。誤った操作を行うと、システム、データ、またはネットワークに深刻な被害をもたらす恐れがあります。
- Windowsキーをクリックし、「regedit」を検索して右クリックし、サブメニューから「管理者として実行」を選択します。

- 次のパスへ移動します:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

- 右ペインで「SMB1」をダブルクリックし、値を「0」に設定します。Windows 7など一部の環境では、SMB1のDWORD(32ビット)値を新規作成し、値を0に設定する必要がある場合があります。
グループポリシーエディタを使用する
上記の手順は個々のマシンに対して有効ですが、組織全体でSMB 1を無効化するには、管理者はグループポリシーエディタを使用できます。
SMB 1サーバーを無効化する
- 「グループポリシー管理コンソール」を起動し、新しい設定を追加したいGPOを右クリックします。
- 「編集」を選択し、次の場所へ移動します:
コンピューターの構成 >> 基本設定 >> Windows の設定
- 左ペインで「レジストリ」を右クリックし、「新規 >> レジストリ項目」を選択します。

- 以下を入力します:
操作: 作成 ハイブ: HKEY_LOCAL_MACHINE キーのパス: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters 値の名前: SMB1 値の種類: REG_DWORD 値のデータ: 0

- 変更を適用し、システムを再起動します。
SMB1クライアントを無効化する
- 「グループポリシー管理コンソール」を起動し、新しい設定を追加したいGPOを右クリックします。
- 「編集」を選択し、次の場所へ移動します:
コンピューターの構成 >> 基本設定 >> Windows の設定
- 左ペインで「レジストリ」を右クリックし、「新規レジストリ項目」を選択します。
- 以下を入力します:
操作: 更新 ハイブ: HKEY_LOCAL_MACHINE キーのパス: SYSTEM\CurrentControlSet\services\mrxsmb10 値の名前: Start 値の種類: REG_DWORD 値のデータ: 4

- 変更を適用し、「DependOnService」のプロパティを開きます。
- 以下を設定して変更を適用します:
操作: 置換 ハイブ: HKEY_LOCAL_MACHINE キーのパス: SYSTEM\CurrentControlSet\Services\LanmanWorkstation 値の名前: DependOnService 値の種類: REG_MULTI_SZ 値のデータ: Bowser MRxSmb20 NSI

- 最終的な画面は以下のようになります。その後、システムを再起動してください。

SMBv2やSMBv3の無効化は推奨されない
SMB 1の脅威度を考慮して、SMBv2やv3も無効化しようと考えるユーザーがいますが、現時点でそれは不要です。SMBv2やv3を無効化すると、以下の機能を失うことになります。
- ローカルキャッシュ
- 大規模ファイル共有ネットワーク
- フェイルオーバー
- シンボリックリンク
- 10GBイーサネット対応
- 帯域幅制限
- マルチチャネルによるフォールトトレランス
- 過去30年間に追加されたセキュリティおよび暗号化の改善
SMB1を使わざるを得ないケース
以下のような状況では、SMB 1の使用を余儀なくされることがあります。
- Windows XPまたは古いWindows Serverマシンを使用しているユーザー
- ネットワーク近隣(ネットワークコンピューター)経由のブラウズを必要とする、老朽化した管理ソフトウェアを使用しなければならないユーザー
- 古いファームウェアのプリンターで「共有へスキャン」機能を使いたいユーザー
他に方法がない場合のみ、SMB1を使用してください。アプリケーションやデバイスがSMBv1を必要とする場合は、代替品を探すのが最善策です。現時点ではコストがかかるように見えても、長期的には有益です。WannaCryの被害を受けたユーザーや組織に聞いてみれば分かるでしょう。
以上で解説は終わりです。ご質問やご提案があれば、コメント欄でお気軽にお知らせください。
-
Windows 10で高速スタートアップを無効にすべき理由と具体的な設定方法
パソコンの起動やシャットダウンを少しでも速くしたい――そんなニーズに応えるため、Windows 10には「高速スタートアップ(Fast Startup)」という機能が搭載されています。多忙な現代において、あらゆる作業をできるだけ短時間で済ませたいと考えるのは自然なことでしょう。PCのシャットダウンにも時間がかかれば、起動にも待ち時間が発生します。こうした待ち時間を短縮するために用意されたのが高速スタートアップです。この機能はWindows 8で初めて導入され、Windows 10にも引き継がれています。 しかし、便利な機能である一方で、いくつかのデメリットも存在します。本記事では、高速スター
-
iPhoneのWi-Fiアシストとは?知っておきたい仕組みと無効化の手順
Wi-Fiアシストは、Wi-Fiの電波が弱くなりインターネット接続が不安定になったときに、自動的にモバイルデータ通信へ切り替えてくれるiPhoneの便利な機能です。動画の視聴中やビデオ通話中でも接続が途切れにくくなり、ストリーミングをスムーズに継続できるのが特徴です。 Wi-Fiアシストを無効にしたほうがよい理由 一方で、この機能には注意点もあります。Wi-Fiの信号が弱いと判断されると、ユーザーが気づかないうちにモバイルデータ通信を消費してしまうことがあるのです。その結果、月間のデータ容量を超過したり、請求書に予想外の高額な通信料が載ったりする可能性があります。 特に、モバイルデータの料金が