本稿では、Windows の中核的なファイル共有プロトコルである SMB の解説と、必要な設定について解説します。
SMB とは
Windows の通信を支える SMB
SMB(Server Message Block)とは、Windows の “ファイル共有” の仕組みで、ネットワーク越しのフォルダの参照、ファイルの読み書き、認証を伴うリソースの利用などを提供します。ネットワーク上にあるファイルサーバーやパソコンを “自分のローカルディスク” のように扱える通信プロトコル(手順)であり、Windows のネットワーク機能の中核を司ります。
SMB の歴史
SMB はパソコンの黎明期から使用されており、1983年に IBM が開発し、1984年に IBM PC-DOS に搭載されたのが始まりです。その後、1987年に Microsoft が LAN Manager に SMB を採用、1996年には、CIFS (Common Internet File System) と改称され、インターネット対応がなされました。その後、2006年に SMBv2 (Windows Vista / Server 2008)がリリースされ応答性能が強化、2012年には、SMBv3 (Windows 8 / Server 2012)で、暗号化対応がなされました。2022年にはSMB over QUICK というクラウド時代を見据えた高速化と安全な暗号化(TLS1.3対応)がなされ、モバイルや不安定なネットワークでも高速な通信を提供しています。
| バージョン | 登場時期 | 主な特徴 | セキュリティ |
|---|---|---|---|
| SMB v1/CIFS | 1980s-1990s | NetBIOS依存、非効率 | ✕(脆弱で危険) |
| SMB v2 | 2006 | パフォーマンス改善 | △ 要SMB署名 |
| SMB v2.1 | 2009 | パフォーマンス改善。署名強化。 | 〇 |
| SMB v3.0 | 2012 | 暗号化(AES-128)、マルチチャネル | ◎ |
| SMB v3.1.1 | 2016 | 前方秘匿性(Pre-auth Integrity)、 AES-128-GCM | ◎◎ |
SMB v1 が危険な理由
SMB v1 は以下の理由で使用が非推奨となっており、Windows Update を適用すれば、自動的に SMB v1 は無効化されます。
- インターネットがなかった30年前の古い規格で、“現代の攻撃手法からすると、まったく無力”。
- 署名や暗号の仕組みがほぼなく、“情報漏洩の恐れ”。
- “使用が即時無効化” となっている “致命的な脆弱性を有する NTLM v1認証”1 を使用している。
- 2015年に猛威を振るった WannaCry の「EternalBlue」の原因となり、“世界中で数十万台の PC が感染、被害” にあった。
▼ 実際の攻撃例
- パッチ未適用の Windows に SMBv1 が有効化されている
→ 攻撃者が SMB の脆弱性を使い 勝手に侵入
→ ファイル暗号化(ランサムウェア)などの “ウイルスを送り付けて実行” が可能 - SMB 署名が有効化されていない (成りすましが可能)
→“ファイルの内容を書き換える” ことが可能
→“ファイルを差し替える”(ランサムのドロッパ等)ことが可能
SMB v1 の対策 ~無効化と署名の強制~
SMB v1 の完全無効化
Windows に管理者権限でログオンし、 “PowerShell(管理者)”、もしくは “ターミナル(管理者)” を起動し、以下のコマンドを実行し、SMB v1 が有効化を確認します。“PowerShell(管理者)“、“ターミナル(管理者)“ のいずれも、“スタートボタンを右クリック” すると、メニューに表示されます。
# SMB サーバー機能の確認コマンド
Get-SmbServerConfiguration | Select EnableSMB1Protocol
# SMB クライアント機能の確認コマンド
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
上記のように、サーバー機能が “False” で、クライアント機能が “Disabled” であれば問題ありません。
万一、 “True” や “Enabled” 出会った場合は、次のコマンドを実行します。
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Set-SmbClientConfiguration -EnableSMB1Protocol $falseSMB デジタル署名
Active Directory のグループポリシーで設定します。
[コンピューターの構成]>[ポリシー]>[セキュリティの設定]>[セキュリティオプション]
Microsoft ネットワーク クライアント: サーバーが同意すれば、通信にデジタル署名を行う:有効
Microsoft ネットワーク クライアント: 常に通信にデジタル署名を行う:有効
Microsoft ネットワーク サーバー: クライアントが同意すれば、通信にデジタル署名を行う:有効
Microsoft ネットワーク サーバー: 常に通信にデジタル署名を行う:有効

万一、古い NAS 等でファイルが開けない等が発生した場合は、“常に通信にデジタル署名を行う” を “無効” に設定します。その後、以下のコマンドを実行すれば、ファイルを開くことが可能となります。
#グループポリシーの即時更新コマンド
gpupdate /force
“常に通信にデジタル署名を行う” で障害が発生する状況は、2011年以前の NAS で発生2します。NAS のバージョンアップを行うか、買い替えを検討してください。
