「SMBv1 の NAS に Windows10 をつなげる」
https://qiita.com/nanbuwks/items/c0338966b33606b62034
では Windows10 で SMBv1 プロトコルが切られているというお話をしました。
MS-Windows のファイル共有プロトコルとしての SMB ですが、SMBv1 はアレなので切れということが強く言われています。
以下の Microsoft の Techブログにおいても、利用の停止が強く言及されています。
Stop using SMB1
https://techcommunity.microsoft.com/t5/storage-at-microsoft/stop-using-smb1/ba-p/425858
The Deprecation of SMB1 – You should be planning to get rid of this old SMB dialect
https://docs.microsoft.com/ja-jp/archive/blogs/josebda/the-deprecation-of-smb1-you-should-be-planning-to-get-rid-of-this-old-smb-dialect
理由として以下のようなことが挙げられています。
-
WannaCry が感染を広げるのに SMBv1 の脆弱性を利用していた
-
セキュリティ的に脆弱
-
パフォーマンスが悪い
-
実装が複雑怪奇
-
については実装ミスによる脆弱性、2. は実装の仕様自体の問題として分けて考えることとします。
1.実装ミスによる脆弱性
MS17-010
WannaCry は 2018 年に世界中で蔓延した身代金マルウェアです。SMBv1の脆弱性を利用して感染を拡大します。
この脆弱性については以下のセキュリティパッチが公開されています。
マイクロソフト セキュリティ情報 MS17-010 - 緊急
Microsoft Windows SMB サーバー用のセキュリティ更新プログラム (4013389)
公開日: 2017 年 3 月 15 日
https://docs.microsoft.com/ja-jp/security-updates/securitybulletins/2017/ms17-010
CVE-2020-1301
MS17-010に相当するものは最近も発見されており、以下のように公開されています。
「複数の Microsoft Windows 製品におけるリモートでコードを実行される脆弱性」
https://jvndb.jvn.jp/ja/contents/2020/JVNDB-2020-006534.html
ここでは例として2つの脆弱性を挙げましたが、これらは即 SMBv1 の利用停止に結びつけて考えるべきでしょうか?
実装ミス的なところから出た脆弱性であれば、例えば以下は SMBv3 で同様のものが発見されており SMBv1 が危険というのにはすぐには結びつかないです。
CVE-2020-0796 | Windows SMBv3 クライアント/サーバーのリモートでコードが実行される脆弱性
https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/CVE-2020-0796ry/CVE-2020-0796
2.実装の仕様自体の問題
SMBv1 の仕様上のセキュリティ問題がどこにあるかという件。
LMハッシュ
SMBv1 は元々認証方法として LMハッシュを使っていたらしいですが、LMハッシュは脆弱な関数らしいです。
「LMハッシュ」
https://ja.wikipedia.org/wiki/LM%E3%83%8F%E3%83%83%E3%82%B7%E3%83%A5
には
LMハッシュは、標準化されたブロック暗号であるDESを使ってはいるものの、設計段階でいくつもの脆弱性を抱えた実装であり、元のパスワードを決定可能となってしまっている[5]。
とあります。
Wikipediaによると、以下のように羅列されています。
- パスワードが最長14文字に制限されている
- 7文字以上のパスワードは半分に分けてそれぞれをハッシュ化するため、7文字ごとに解析することができる
- LMハッシュにはハッシュ値の事前計算を防ぐためのソルト (暗号)が使われていない。
- 7文字以下のパスワードを使った場合、後半7バイトはすべてヌル文字で埋められ、0xAAD3B435B51404EEという決まった値を生成するので、短いパスワードを簡単に判別できる。
- LMハッシュの使い方にも問題があり、パスワードの代わりにハッシュをそのまま送ることで認証を突破可能となる。
しかしながら現在は SMBv1 においても NTLMv2 を使うことができるらしいです。
3.パフォーマンスが悪い
SMB1は暗号化強度の面や通信効率の面からも好ましくないとされるようになる。
の「通信効率」に該当します。
4.実装が複雑怪奇
Wikipedia の 「Server Message Block」
https://ja.wikipedia.org/wiki/Server_Message_Block
では、SMB2の説明として以下のようにあります。
コマンド/サブコマンドの種類が100以上あったものを19にまとめ、
SMB1ではコマンド/サブコマンドの種類が100以上あったということですね。
1〜4以外の理由
1.〜4.それぞれ調べていましたが、特に 2. の実装の仕様自体の問題について現在はLMハッシュの問題しか行き当たりませんでした。ということはLMハッシュを使わなければ良いということで、SMBv1全体について致命的な問題は他には何でしょうか?
こちらの記事
https://xtech.nikkei.com/it/atcl/column/15/061500148/051500108/?P=2
では、WannaCry が蔓延するより前に MS17-010 の脆弱性が情報機関や裏社会で把握されていたことが示されています。
これと同じように、現時点では表社会では伏せられているけれどもゼロデイがあるので SMBv1 を使うなと言われているのでしょうか?
冒頭に出した Microsoft のTechブログなどでも、肝心の SMBv1 のどこがダメかというのは奥歯に物が挟まったような説明しか無くて、やっぱり某政府機関や裏社会の闇が関係しているのか?という妄想が捗ってしまいます。
妄想としては楽しいのですが、表向きの理由として、メンテできてないないから使うな! という中の人のメッセージではないかと考えることにしました。