みっきー申す

ITに関する興味関心のまとめ、サイバーセキュリティニュースのまとめ、Twitterで配信中の情報まとめなどを公開します。

Windows10などで用いられるファイル共有プロトコルSMBv3の脆弱性について

f:id:micro_keyword:20200311215337p:plain:w400


【2020/3/13更新】

本件に関して、SMBv3の脆弱性CVE-2020-0796の修正パッチKB4551762がマイクロソフトよりリリースされました。 該当される方はパッチの適応をご検討ください。

https://support.microsoft.com/en-us/help/4551762/windows-10-update-kb4551762

また、脆弱性の概要を記載する以下のリンクにて、回避策である「SMBv3の圧縮の無効化」について、適応によるパフォーマンス影響がないことが、追記されています。

SMB Compression is not yet used by Windows or Windows Server, and disabling SMB Compression has no negative performance impact.

https://portal.msrc.microsoft.com/en-US/security-guidance/advisory/CVE-2020-0796

パッチの適応が難しい場合、回避策の実施だけでもご検討いただければと思います。

にしても、まだ使われていない機能の脆弱性だったとは。。


以下、3月11日、投稿時点の内容になります。

本日は、Patch Tuesdayと呼ばれるMicrosoft製品のセキュリティ更新プログラムが配信される日です。

毎月第2火曜日は、この日に該当するのですが、日本では、時差の関係で第2水曜日または第3水曜日になります。

そんな本日、極めて極めて影響度の高い脆弱性に関する情報が公開されました。

https://portal.msrc.microsoft.com/ja-jp/security-guidance/advisory/adv200005

2020年3月11日21時45分の現時点では、まだ、日本語ページでも本文が翻訳されていない状況です。

今回のリリースは、簡潔に伝えると、Wannacryで大きな被害をもたらした、SMBv1の脆弱性について、その最新バージョンであるSMBv3に関する脆弱性が公開されたということです。

本件について、脆弱性のパッチが公開されてない一方で、その影響度が大きいことを鑑みて、以下にまとめます。


目次


脆弱性の概要

現在、マイクロソフトの公式情報として、以下の内容が公開されています。

  • 対象は、Microsoft Server Message Block 3.1.1(SMBv3)プロトコル
  • 特定のリクエストを処理する方法に、リモートコード実行の脆弱性がある
  • 脆弱性の悪用により認証されていない攻撃者が細工したパケットをSMBv3サーバに送信することで任意のコードを実行できる可能性がある
  • SMBクライアントの脆弱性を悪用する際には、認証されていない攻撃者がユーザからSMBv3サーバへの接続を誘導する必要がある

脆弱性の回避策

マイクロソフトの公式リリースによると、2020年3月11日21時45分現在、脆弱性に対応する更新プログラムは提供されていません。

We will update this advisory when updates are available.

そして、今回個人的に気になっている回避策についてですが、公式からは以下のように述べられています。

  • SMBv3の圧縮を無効にする

以下のPowerShellコマンドを実行してSMBv3の圧縮を無効にせよとのことです。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" DisableCompression -Type DWORD -Value 1 -Force

たまたま、AWS上にSMBサーバの環境(Windows Server 2019)があったのでSMBのバージョンを確かめました。 実行環境はPowershellで実行コマンドは以下です。

Get-SmbConnection
ServerName      ShareName      UserName      Credential      Dialect      NumOpens
----------      ---------      --------      ----------      -------      --------
EC2AMAZ-UEJC6FT      NFSshare      EC2AMAZ-UEJC6FT\Administrator      EC2AMAZ-UEJC6FT\Administrator      3.1.1      2

Dialect 3.1.1。。。

オワタ

ということで、早速回避策として、推奨コマンドを実行してみました。

んでもって確認コマンドの実行。

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters"
EnableAuthenticateUserSharing : 0
NullSessionPipes              : {}
ServiceDll                    : C:\Windows\system32\srvsvc.dll
ServiceDllUnloadOnStop        : 1
autodisconnect                : 15
enableforcedlogoff            : 1
enablesecuritysignature       : 0
requiresecuritysignature      : 0
restrictnullsessaccess        : 1
Guid                          : {194, 52, 148, 214...}
DisableCompression            : 1
PSPath                        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service
                                s\LanmanServer\Parameters
PSParentPath                  : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service
                                s\LanmanServer
PSChildName                   : Parameters
PSDrive                       : HKLM
PSProvider                    : Microsoft.PowerShell.Core\Registry

しっかり、DisableCompressionが 1 になっていますね。

OSがWindows 10やWindows Server2016では「SMB3.1.1(Dialectが3.1.1)」が使われるとの記事が多数見られますので、一度確認してみるのが良いかと思います。

ただし、注意しなくてはならないのが、マイクロソフトのアドバイザリでも太字で書かれている通り、SMBクライアントの悪用は防げないとのことなので、注意が必要です。

この回避策を実行しても、SMB クライアントの悪用を防ぐことはできません。


もう一つの回避策?

マイクロソフくの公式情報では、よく寄せられる質問として、

と記載しています。

ただ、気になるのが、米国のCERT/CCなどからは、あたかも上記の回避策と同列のものとして、ローカルネットワークからWANへのSMBのブロック(TCP/445)が書かれています。

Consider blocking outbound SMB connections (TCP port 445 for SMBv3) from the local network to the WAN.

https://kb.cert.org/vuls/id/872016/

一方で、マイクロソフトが2019年12月25日に公開した記事では、以下のように書いております。

SMBv2 または SMBv3 を無効にしないことをお勧めします。

docs.microsoft.com

つまり、今回のアドバイザリで、あえて、「回避策」としてではなく、「よく寄せられる質問」と分類して、無効化を記載したのは、このような背景があるためだと考えています。

事実、同ページでは、SMBv3 を無効にした場合に非アクティブになる機能について書かれてあり、システムを運用している組織においては、慎重な判断が必要だと、個人的には考えています。


過去のSMBの脆弱性について

SMBv1の脆弱性とWannacryの関係を厳密に伝えると、Wannacry自体というよりは、Wannacryが感染拡大時に用いるEternalBlueがこの脆弱性を悪用していたことがポイントです。

昨年話題になったランサムウェアGandCrabにおいてもこのEternalBlueが用いられていました。

以下は、GandCrab終息宣言時に書いた記事ですので、ご参考にしてください。

micro-keyword.hatenablog.com


まとめ

今回、脆弱性のパッチが用意できておらず、悪用が確認されていないにもかかわらず、マイクロソフトがアドバイザリを出した理由を考えていました。

すると、BleepingComputerからは、このような記事が書かれていました。

Even though the vulnerability advisory was not published by Microsoft (no explanation for this was released by Redmond so far), a number of security vendors part of Microsoft Active Protections Program who get early access to vulnerability information did release details on the security flaw tracked as CVE-2020-0796.

www.bleepingcomputer.com

つまり、マイクロソフトとの脆弱性情報共有を行なったセキュリティベンダからのリークということになりますね。。。

同記事からは、それがどこかも語られていますが。

こういうのは契約違反になるんですかね。。。 何かまた違うところで火がついているのかもしれません。