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

2018/04/24 初版
2018/04/25 更新
2018/05/02 更新
NTTデータ先端技術株式会社
鈴木 涼太
野本 竹春

2018年03月28日にDrupalのオープンソースコミュニティーに所属するJasper Mattsson氏によって報告された、Drupalに含まれるリモートからの任意のコード実行が行われる脆弱性(CVE-2018-7600)についての検証を実施し、脆弱性の悪用が可能であることを確認しました。

1. 本脆弱性の概要

「Drupal」とは、同ソフトウェアを開発するDrupalコミュニティーより、オープンソースで提供されているコンテンツ管理システムです。
同氏はDrupal Coreと呼ばれるDrupalの基本機能の実装において、ユーザー認証を必要とせずリモートから任意のコード実行が可能となる脆弱性(CVE-2018-7600)が存在することを報告しました。本脆弱性は、Drupalユーザー間においてDrupalgeddon2とも呼称されており、コミュニティーにおけるNISTの評価基準に従った本脆弱性の深刻度をHighly criticalと評価しています。※1

CheckPoint社の研究者の分析によれば、本脆弱性の問題は攻撃者から細工されたメッセージを受け取った場合に、DrupalのフォームAPIにおけるAJAXリクエストの処理機構において適切な処理がなされない欠陥に起因するとしています。※2

JPCERTやSANS ISCでは国内外で脆弱性の有無の調査行為や攻撃活動を観測しているほか、当社監視センターにおいても当該脆弱性の悪用を狙った攻撃を断続的に観測しております。今後攻撃者によるさらなる悪用の拡大が予測されることから、本脆弱性の対象となるバージョンのDrupalを利用している場合には早急な対策が必要となります。※3※4

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

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

図1は、本脆弱性に対する攻撃の一例として、インターネットから内部ネットワークへ攻撃者が不正なシェルコマンドを含む攻撃パケットを送信する攻撃例を示しています。

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

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

  • Drupal 8.5.1より前のバージョン
  • Drupal 7.58より前のバージョン
  • サポートが終了したバージョンのDrupal

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

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

3.1. 検証環境

表1. 検証に使用した環境
  疑似攻撃者 疑似被害者
OS Kali Linux 2017.01 64bit CentOS 7.3.1611
アプリケーション 概念実証コード Drupal 8.4.5
MySQL 5.7.21
PHP 5.6.35
Apache HTTP Server 2.4.6

3.2. 攻撃手法

Drupalに対して任意のコード実行を目的とする不正に細工したHTTPリクエストをスクリプト実装し、攻撃コードを送信します。

図2. 送信した攻撃パケットの一部

図2. 送信した攻撃パケットの一部

図2は実際に概念実証コードを使用して送信したパケットの内容を示します。細工したHTTPパケットをDrupalの動作するサーバーに対して送信し、パケット内に含まれる任意のシェルコマンドを実行します。これはDrupal上において攻撃コード内に含まれる不正なフォームアイテムの値が適切に処理されないことにより引き起こされます。

本検証では、シェルコマンドを実行した結果をテキストファイルに出力し、Drupalサーバー上に配置し、Webブラウザによってシステムファイルを参照可能な状態にします。

3.3. 検証結果

図3に示す結果の通り、攻撃コードの実行により、標的サーバー上にシステムファイルを配置し、参照可能な状態にすることに成功しました。また、図4に示す結果では、検証による攻撃が引き起こすコマンド実行については、Drupalが動作するHTTPサーバーの権限によって実行されることを確認しました。

図3. 標的サーバーに対する攻撃が成功した結果

図3. 標的サーバーに対する攻撃が成功した結果

図4. 攻撃によるコマンド実行の権限

図4. 攻撃によるコマンド実行の権限

3.4. 当社監視センターにおける観測事例

4月13日の概念実証コード公開以降、当社監視センターでは本手法と同様の方法で攻撃した事例を14日から23日に掛けて断続的に観測しております。

図5は実際に当社監視センターにて観測した、4月14日の午前1時39分にカナダ保有のIPアドレスより送信された攻撃パケットの内容です。
3.2で検証した攻撃手法とほぼ同様の内容により攻撃を行っており、標的サーバー上に対してコインマイナー(仮想通貨のマイニングを行うマルウェア)を感染させる試みであることを確認しました。

図5. 当社監視センターで観測した攻撃パケットの一部

図5. 当社監視センターで観測した攻撃パケットの一部

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

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

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

  • Drupal 8.5.1
  • Drupal 7.58

また、サポート外のバージョンのDrupalにおいても回避策として以下の修正バージョンの適用もしくは修正パッチの適用が可能とされていますが、8.5系の修正バージョンへのアップデートが推奨されています。

  • Drupal 8.3.9
  • Drupal 8.4.6

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

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

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

表2. 製品ベンダーによるシグネチャー提供状況(2018年5月2日時点)
種別 製品ベンダー/
製品
製品ベンダー提供のシグネチャー 検知
結果
IDS/IPS IBM
QRader
Network Security
GX/XGS Series
XPU 3803.29184
・HTTP_Drupal_Property_Exec [2104460-0]
-
McAfee
Network
Security Platform
NS/M Series
SignatureSet9.8.20.2:
・HTTP:Drupal Remote Code Execution (CVE-2018-7600) (0x45230500)
-
WAF Imperva
SecureSphere
メーカーからのシグネチャーは現在未提供です。 -
NGFW Palo Alto
PA Series
Application and Threat Content:Version 800
・Drupal Core Remote Code Execution Vulnerability [40627]
Check Point
NGFW Series
IPS Software Blade:
・Drupal Core Remote Code Execution (CVE-2018-7600)
表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/24 初版作成
2018/04/25 PaloAltoシグネチャ検知検証結果更新
2018/05/02 IBMのカスタムシグネチャ検証結果、McAfeeのシグネチャー提供状況更新

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

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

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

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