• ひとことでElasticsearch の初期設定で、外から送った命令文を実行されてしまう弱点です。
  • 深刻度8.1 重要CVSS v3.1
  • まずやることElasticsearch を 1.2 以降に更新する

何をすればいいかを詳しく読む

基本情報(データから表示)

CVE番号CVE-2014-3120
製品Elastic Elasticsearch
深刻度(CVSS)8.1 重要CVSS v3.1
NVD による評価
詳細(ベクター)CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:N
KEVへの追加日2022-03-25
米国政府機関の対応期限2022-04-15
ランサムウェアでの悪用不明(確認されていない)
弱点の種類(CWE)CWE-284(アクセス制御の不備)

何が起きた

検索エンジンのソフト Elasticsearch の初期設定では、動的スクリプト(検索の依頼の中に書いた命令文をその場で実行する機能)が有効になっていました。そのため、_search への依頼の source パラメータに命令文を入れると、任意の MVEL の式や Java のコード(攻撃者が好きに選べる命令)を実行される可能性があります。NVD の評価では、離れた場所から、一般利用者程度の権限を持つ攻撃者が悪用できるとされています。実際の攻撃での悪用も確認されています。

攻撃の流れ

データをもとに、AIを使用して作成した図です。実際の攻撃は、これと異なる場合があります。

攻撃の流れ: 1. 攻撃者が外から届く Elasticsearch を探す → 2. _search に命令文入りの依頼を送る → 3. 動的スクリプトとして命令文が実行される → 4. サーバー上で攻撃者のコードが動く1攻撃者が外から届く Elasticsearch を探す2_search に命令文入りの依頼を送る3動的スクリプトとして命令文が実行される4サーバー上で攻撃者のコードが動く攻撃の流れ: 1. 攻撃者が外から届く Elasticsearch を探す → 2. _search に命令文入りの依頼を送る → 3. 動的スクリプトとして命令文が実行される → 4. サーバー上で攻撃者のコードが動く1攻撃者が外から届く Elasticsearch を探す2_search に命令文入りの依頼を送る3動的スクリプトとして命令文が実行される4サーバー上で攻撃者のコードが動く攻撃の流れ: 1. 攻撃者が外から届く Elasticsearch を探す → 2. _search に命令文入りの依頼を送る → 3. 動的スクリプトとして命令文が実行される → 4. サーバー上で攻撃者のコードが動く1攻撃者が外から届く Elasticsearch を探す2_search に命令文入りの依頼を送る3動的スクリプトとして命令文が実行される4サーバー上で攻撃者のコードが動く

誰が影響を受ける

Elasticsearch を使っている組織が対象です。NVD の説明では、1.2 より前のバージョンの初期設定が影響を受けます。Elastic の公式ブログでは、1.2.x より前は、Elasticsearch が外部に公開されていると、動的スクリプトを使ってサーバー上で任意のコードを実行される可能性があると説明しています。

何をすればいい

Elastic は 1.2.x で、依頼の中で送られた動的スクリプトを初期設定で無効にしています。1.2 以降に更新されているか確認してください。Elastic の公式ブログでは、Elasticsearch をインターネットに公開せず、ファイアウォールの内側で動かし、9200 番と 9300 番のポートを関係のない機器から遮断すること、root(管理者)ではなく専用のユーザーで動かすことも勧めています。あわせてメーカーの公式の案内を確認してください。

やることチェックリスト

  • Elasticsearch を 1.2 以降に更新する
  • 9200 番と 9300 番のポートを外部から遮断する
  • root ではなく専用のユーザーで実行する

用語メモ

動的スクリプト
依頼の中に書かれた命令文を、ソフトがその場で受け取って実行する機能です。
ファイアウォール 用語集で見る
ネットワークの出入り口で、許可していない通信を止める仕組みです。
ポート 用語集で見る
1台のコンピューターの中で、通信の行き先を見分けるための番号です。

次に読む

公式情報と元データ

公式情報

元データ(英語・CISA KEV より)を開く

Elasticsearch Remote Code Execution Vulnerability

概要

Elasticsearch enables dynamic scripting, which allows remote attackers to execute arbitrary MVEL expressions and Java code.

推奨対応

Apply updates per vendor instructions.

この元データの出どころ: CISA KEV カタログで見る