Microsoft SMBv3におけるリモートコード実行の脆弱性(CVE-2020-0796)についての検証レポート

2020/03/19
2020/03/31更新
上原 渓一郎、松本 拓也、鈴木 涼太

2020年3月12日にMicrosoftが公表した、Microsoft Server Message Block 3.1.1(SMBv3)におけるリモートコード実行の脆弱性(CVE-2020-0796)についての検証を実施し、脆弱性の悪用が可能であることを確認しました。

1. 本脆弱性の概要

「Microsoft SMB」は、Microsoftによって提供されている、ファイル共有やプリンター共有等に利用される通信プロトコルです。Microsoftにより、SMB Version3.1.1には、細工したリクエストを送信することで、リモートコードの実行が可能となる脆弱性(CVE-2020-0796)が存在することが報告されました。[1]

本脆弱性は、SMBv3プロトコル通信の処理中に、通信の圧縮データが適切に処理されないことに起因します。この脆弱性が悪用された場合、リモートの攻撃者が任意のコードを実行できる可能性があります。

図1. 本脆弱性を悪用した攻撃の例

図1. 本脆弱性を悪用した攻撃の例

図1は、本脆弱性に対する攻撃の一例として、脆弱性を含むSMBv3を利用するWindowsマシンに対し、外部の攻撃者が細工した不正なリクエストを送信し、Windowsマシン上で任意のコードを実行する攻撃例を示しています。

2. 本脆弱性の影響を受ける環境

本脆弱性の影響を受ける可能性があるバージョンは以下の通りです。[2]

  • Windows 10 Version 1903
  • Windows 10 Version 1909
  • Windows Server Version 1903
  • Windows Server Version 1909

なお、本脆弱性はWindows 10 Version 1903で追加された新機能に存在するため、Version 1809以前のWindows OSは影響を受けません。

3. 本脆弱性を利用した攻撃の検証

概念実証コードを用いて本脆弱性に対する攻撃を試行し、脆弱性の悪用が可能であることを検証しました。

3.1. 検証環境

表1. 検証に使用した環境
  疑似攻撃者 疑似被害者
OS Kali Linux 2020.01 64bit Windows 10 Pro 64bit Version 1909
アプリケーション/
プロトコル
概念実証コード Microsoft Server Message Block 3.1.1

3.2. 攻撃手法

まず、本脆弱性が存在するWindows上で、SMBプロトコル通信を受け付ける445番ポートが開放されていることを確認します。

次に、ヘッダー内に不正なオフセットを含むリクエストを攻撃対象マシンに対して送信します。送信された不正なリクエストのデータが圧縮されている場合、圧縮データの処理中に値の符号の有無が適切にチェックされずに処理が行われることにより、攻撃対象マシン上でバッファオーバーフローが発生します。[3]

本検証では、概念実証コードを利用して不正なリクエストを送信することにより、攻撃対象マシン上でバッファオーバーフローを発生させ、OSのクラッシュを試みます。

3.3. 検証結果

図2に示す結果の通り、攻撃対象のWindowsマシンに対して攻撃者サーバーから細工したリクエストを送信することで、Windowsマシン上でバッファオーバーフローを発生させ、ブルースクリーンを表示させることができました。

また、本脆弱性によるバッファオーバーフローを応用することで、攻撃対象マシン上でリモートから任意のコードが実行される可能性があります。

図2. Kali Linux上での概念実証コードの実行とそれによりWindowsがクラッシュした結果

図2. Kali Linux上での概念実証コードの実行とそれによりWindowsがクラッシュした結果

4. 本脆弱性に対する対策

4.1. 現在推奨されている対策

2020年3月19日現在、Microsoftより本脆弱性の修正パッチが提供されています。[4]

修正パッチの適用が難しい場合は、以下の回避策を実施することで本脆弱性の影響を回避可能です。[4]

  • SMBv3の圧縮処理を無効にする
  • SMBプロトコルに利用される445番ポートをブロックする

4.2. 不正アクセス監視機器による対策

当社が確認している不正アクセス監視機器の対応状況

各製品ベンダーの本脆弱性への対応状況に関する情報、及び本検証による各製品での検知結果は以下の通りです。表2に公式シグネチャーの提供状況を記載します。

表2. 製品ベンダーによるシグネチャー提供状況(2020年3月19日時点)
種別 製品ベンダー/
製品
製品ベンダー提供のシグネチャー 検知
結果
IDS/IPS IBM
QRader
Network Security
GX/XGS Series
XPU 4003.11154:
SMBv3_Windows_Compression_Exec [2104531]
McAfee
Network
Security Platform
NS/M Series
Signature Set 10.8.7.8:
NETBIOS-SS: Samba Remote Code Execution Vulnerability (CVE-2020-0796) [0x43c0e600]
WAF Imperva
SecureSphere
HTTP通信ではないため、シグネチャー提供対象外です。 -
F5 Networks
BIG-IP
HTTP通信ではないため、シグネチャー提供対象外です。 -
NGFW Palo Alto
PA Series
Application and Threat Content: Version 8250
・Microsoft Windows SMBv3 Client/Server Remote Code Execution Vulnerability [57836]
Check Point
NGFW Series
IPS Software Blade:
・Microsoft Windows SMBv3 Remote Code Execution (CVE-2020-0796)
総合サーバーセキュリティ対策 Trend Micro
Deep Security
Trend Micro Deep Security DPI Rule:
・1010192 – Microsoft Windows SMBv3 Remote Code Execution Vulnerability (CVE-2020-0796)

参考文献

機器別当社対応サービス

IDS/IPS

WAF

NGFW

総合サーバーセキュリティ対策

更新履歴

2020/03/19 初版作成
2020/03/31 「表2. 製品ベンダーによるシグネチャー提供状況」のWAF、NGFW、総合サーバーセキュリティ対策の情報を更新

本件に関するお問い合わせ先

NTTデータ先端技術株式会社
お問い合わせフォーム

  • ※ 各規格名、会社名、団体名、製品名は、各社の商標または登録商標です。

Microsoft SMBv3におけるリモートコード実行の脆弱性(CVE-2020-0796)についての検証レポート