Spring Frameworkに含まれるリモートコード実行に関する脆弱性(CVE-2018-1270)についての検証レポート

2018/04/10 初版
2018/04/13 更新
2018/04/25 更新
NTTデータ先端技術株式会社
鈴木 涼太

2018年04月05日にPivotal Software社によって公表された、Spring Frameworkに含まれるリモートからの任意のコード実行が行われる脆弱性(CVE-2018-1270)についての検証を実施し、脆弱性の悪用が可能であることを確認しました。

1. 本脆弱性の概要

「Spring Framework」とは、Pivotal Software社からオープンソースにより提供されている、Java Webアプリケーションを開発するためのフレームワークです。
同社は当該フレームワークのMessagingの実装において、リモートから認証を必要としない任意のコード実行が可能となる脆弱性(CVE-2018-1270)が存在することを公表しました。
本脆弱性は、軽量のメッセージングプロトコルSTOMP(Streaming Text Oriented Messaging Protocol)をWebSocket上で利用している状態で、攻撃者から細工されたメッセージを受け取った場合に、Spring Expression Languageにおいて適切な処理が出来ないことに起因しています。
同社では本脆弱性の深刻度をCriticalと評価しています。※1

本脆弱性に関連して、不正に細工したURLを使用することにより、ディレクトリトラバーサルが可能となる脆弱性(CVE-2018-1271)、マルチパート要求によるコンテンツ汚染の脆弱性(CVE-2018-1272)が同社により公表されています。※2

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

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

図1は、本脆弱性に対する攻撃の一例として、インターネットから内部ネットワークへ攻撃者が不正なメッセージを含んだSTOMP over WebSocketのパケットの送信することによる攻撃例を示しています。

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

本脆弱性の影響を受ける可能性がある環境は以下の通りです。

  • Spring Framework 5.0から5.0.4
  • Spring Framework 4.3から4.3.15
  • サポート外のバージョンのSpring Framework

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

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

3.1. 検証環境

表1. 検証に使用した環境
  疑似攻撃者 疑似被害者
OS Kali Linux 2017.01 64bit CentOS 7.0 64bit
アプリケーション 概念実証コード Spring Boot 2.0.0
Spring Framework 5.0.4
OpenJDK Runtime Environment 1.8.0_102

3.2. 攻撃手法

Spring FrameworkによるWebアプリケーションにおいては、STOMP over WebSocketを使用したMessaging機能の使用が可能です。当該機能の実装を利用して攻撃コードを送信します。

攻撃コードの送信

図2. 攻撃コードの送信

図2は、標的となるWebアプリケーションが動作するサーバーに対して送信する攻撃コードの内容の一部です。

具体的な実行方法として、標的サーバー上で実行可能となるOSコマンドを、javaによる攻撃コード内に記述し、図2に示されるWebアプリケーション上のフォーム内から攻撃対象サーバーへ送信します。
これにより、攻撃者は実行させたいOSコマンドを任意に攻撃対象サーバー上で動作させることが可能です。
本検証では、攻撃が成功した場合に標的サーバー内のユーザー情報を任意の場所にコピーするファイル操作を行う攻撃を試行します。

3.3. 検証結果

図3に示す結果の通り、攻撃コードの実行により、標的サーバー上でのファイル操作に成功しました。

標的サーバー上でのファイル操作に成功した結果

図3. 標的サーバー上でのファイル操作に成功した結果

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

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

2018年4月10日現在、開発元より本脆弱性が修正された
以下バージョンが公開されており、当該バージョンへのアップデートが推奨されています。

  • Spring Framework 5.0.5
  • Spring Framework 4.3.16

その他の有効な回避策については現在公開されていません。
開発元によれば、メッセージの認証と承認を設けることにより、攻撃を受ける範囲を許可されたユーザーからのみに限定できるとしています。

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

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

各製品ベンダーの本脆弱性への対応状況に関する情報、および本検証による各製品での検知結果は以下の通りです。表2に公式シグネチャーの提供状況、表3に当社のカスタムシグネチャー提供状況、また、本検証によって得られた各製品のシグネチャー検知可否の結果を記載します。

表2. 製品ベンダーによるシグネチャー提供状況(2018年4月25日時点)
種別 製品ベンダー/
製品
製品ベンダー提供のシグネチャー 検知
結果
IDS/IPS IBM
QRader
Network Security
GX/XGS Series
メーカーからのシグネチャーは現在未提供です。 -
McAfee
Network
Security Platform
NS/M Series
Signature Set 9.8.19.5:
・HTTP : Spring Framework STOMP RCE Vulnerability [0x45230300]
-
WAF Imperva
SecureSphere
メーカーからのシグネチャーは現在未提供です。 -
NGFW Palo Alto
PA Series
Application and Threat Content:
・Spring Framework Spring-Messaging Remote Code Execution Vulnerability [40625]
-
Check Point
NGFW Series
IPS Software Blade:
・Pivotal Spring Spring-Messaging Remote Code Execution
(CVE-2018-1270; CVE-2018-1275)
表3. 当社によるカスタムシグネチャー提供状況(2018年4月25日時点)
種別 製品ベンダー/
製品
当社カスタムシグネチャーの提供状況 検知
結果
IDS/IPS IBM
QRader
Network Security
GX/XGS Series
- -
McAfee
Network
Security Platform
NS/M Series
- -
WAF Imperva
SecureSphere
- -
NGFW Palo Alto
PA Series
- -
Check Point
NGFW Series
- -

参考文献

機器別当社対応サービス

IDS/IPS

WAF

NGFW

更新履歴

2018/04/10 初版作成
2018/04/13 PaloAlto/CheckPointのシグネチャー提供状況を更新
2018/04/25 McAfeeのシグネチャー提供状況、CheckPoint検知検証結果を更新

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

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

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

Spring Frameworkに含まれるリモートコード実行に関する脆弱性(CVE-2018-1270)についての検証レポート