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

2018/04/26 初版
2018/05/02 更新
NTTデータ先端技術株式会社
鈴木 涼太

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

1. 本脆弱性の概要

「Spring Data Commons」は、Spring Frameworkの拡張ライブラリとしてデータベースへのアクセスに利用される汎用インターフェイスのライブラリです。Spring Frameworkを中心としたライブラリの開発プロジェクトの一つであるSpring Dataによって開発され、Pivotal Software社からオープンソースにより提供されています。
同社は当該ライブラリの実装において、リモートから認証を必要としない任意のコード実行が可能となる脆弱性(CVE-2018-1273)が存在することを公表しました。
同社では本脆弱性の深刻度をCriticalと評価しています。※1

F5 Networks社の研究者の分析によれば、本脆弱性は当該ライブラリに含まれるMapDataBinderクラスに、Spring Expression Language(SpEL)式を評価する際に、正しく処理されない問題があると指摘しています。このSpEL式の処理の不備により、攻撃者から送信された特殊な演算子を含む文字列によって任意のコード実行が引き起こされます。※2

また、本脆弱性に関連して、認証されていないリモートのユーザによるサービス停止の脆弱性(CVE-2018-1274)が公表されています。

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

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

図1は、本脆弱性に対する攻撃の一例として、インターネットから内部ネットワークへ攻撃者が不正な演算子を含んだHTTPリクエストによるパケットを送信する例を示しています。

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

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

  • Spring Data Commons 1.13 to 1.13.10 (Ingalls SR10)
  • Spring Data REST 2.6 to 2.6.10 (Ingalls SR10)
  • Spring Data Commons 2.0 to 2.0.5 (Kay SR5)
  • Spring Data REST 3.0 to 3.0.5 (Kay SR5)
  • その他サポート外の旧バージョン

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

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

3.1. 検証環境

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

3.2. 攻撃手法

Spring Data Commonsを使用したWebアプリケーションに対して、任意のシェルコマンド実行を試みる攻撃を行います。

図2. 攻撃コードの送信

図2. 攻撃コードの送信

図2は、標的となるWebアプリケーションが動作するサーバーに対しての攻撃コードの送信内容と、送信した結果返されたサーバからのレスポンスの一部です。

攻撃方法として、curlによって上図に示すHTTPリクエストを作成します。
標的サーバー上で実行させるOSコマンドを、不正な演算子による攻撃コード内に記述し、HTTPリクエストとして送信します。これにより、攻撃者は実行させたい任意のOSコマンドをWebアプリケーションが動作するサーバーの権限によって攻撃対象サーバー上で動作させることが可能です。

本検証では、攻撃が成功した場合に標的サーバー上でブラウザを開き、任意のURLに対してアクセスさせる攻撃を試みました。

3.3. 検証結果

図3に示す結果の通り、攻撃コードの実行に成功しました。
図2にはPOSTに対してのレスポンスも示されており、攻撃の結果HTTPステータスコード500のエラーを受け取っていますが、標的サーバー上でFirefoxを起動し、googleに対してアクセスさせる操作に成功しています。

図3. 標的サーバー上でブラウザを起動し、任意のURLにアクセスさせた結果

図3. 標的サーバー上でブラウザを起動し、任意のURLにアクセスさせた結果

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

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

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

  • Spring Data Commons 2.0.6
  • Spring Data Commons 1.13.11
  • Spring Data REST 2.6.11 (Ingalls SR11)
  • Spring Data REST 3.0.6 (Kay SR6)

その他の有効な回避策については現在公開されていません。

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

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

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

表2. 製品ベンダーによるシグネチャー提供状況(2018年5月2日時点)
種別 製品ベンダー/
製品
製品ベンダー提供のシグネチャー 検知
結果
IDS/IPS IBM
QRader
Network Security
GX/XGS Series
メーカーからのシグネチャーは現在未提供です。 -
McAfee
Network
Security Platform
NS/M Series
メーカーからのシグネチャーは現在未提供です。 -
WAF Imperva
SecureSphere
メーカーからのシグネチャーは現在未提供です。 -
NGFW Palo Alto
PA Series
Application and Threat Content:Version 8010
・Spring Data Commons Remote Code Execution Vulnerability [36274]
Check Point
NGFW Series
IPS Software Blade:
・Pivotal Spring Commons Remote Code Execution (CVE-2018-1273)
-
表3. 当社によるカスタムシグネチャー提供状況(2018年5月2日時点)
種別 製品ベンダー/
製品
当社カスタムシグネチャーの提供状況 検知
結果
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/26 初版作成
2018/05/02 IBM、CheckPointのカスタムシグネチャ検証結果更新

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

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

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

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