Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover — CVE-2025-59359(Chaos-Meshにおける重大なOSコマンドインジェクションの脆弱性)に関するハンズオン形式のフォレンジック解説。攻撃者がGraphQLミューテーションを介してKubernetesクラスターを乗っ取る方法と、ELKを使用して侵害を検出・分析・報告する方法を学べます。 | Kitploit
ツール/GitHubGitHub/mrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover
特権昇格コンテナセキュリティ脆弱性分析エクスプロイト横移動フォレンジッククラウドセキュリティコマンド&コントロール学習と教育

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
インシデントレスポンス
ログ分析
GitHubmrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

CVE-2025-59359(Chaos-Meshにおける重大なOSコマンドインジェクションの脆弱性)に関するハンズオン形式のフォレンジック解説。攻撃者がGraphQLミューテーションを介してKubernetesクラスターを乗っ取る方法と、ELKを使用して侵害を検出・分析・報告する方法を学べます。

リポジトリを見る
11ヶ月前未レビュー

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

CVE-2025-59359の実践的なフォレンジックウォークスルーです。Chaos-Meshの重大なOSコマンドインジェクションの脆弱性について、攻撃者がGraphQLミューテーションを介してKubernetesクラスタを乗っ取る方法と、ELKを使用して侵害を検出・分析・報告する方法を学びます。

Mark Mallia 著


エグゼクティブサマリー

CVE-2025-59359は、Chaos-Meshのコントローラーマネージャーにおける重大なOSコマンドインジェクションの脆弱性を露呈させます。この脆弱性により、攻撃者はKubernetesポッド全体で任意のシェルコマンドを実行でき、クラスタ全体の侵害につながる可能性があります。この記事では、エクスプロイトをシミュレートし、そのフォレンジック上の痕跡をマッピングし、技術チームと経営幹部のステークホルダーの両方に関連する検出および緩和戦略を概説します。


このCVEが注目される理由

進化し続けるKubernetesセキュリティの世界において、CVE-2025-59359は、たった1つの見落とされた入力がクラスタ全体を崩壊させ得ることを痛烈に思い出させるものです。この重大な脆弱性(CVSS 9.8)はChaos-Meshのコントローラーマネージャーに影響を与え、ユーザーが指定したパラメータがチェックもサニタイズもなしにシェルコマンドに無造作に連結されます。その結果は? クラスタ内の認証されていない攻撃者がポッド全体で任意のコマンドを実行し、驚くほどの容易さで完全な制御を獲得できます。これはコマンドインジェクションによる権限昇格の教科書的なケースであり、クラウドネイティブ環境における安全なコーディングの戒律がなぜ重要なのかを示す強力な例です。


技術的詳細

この欠陥はcleanTcsミューテーション内に存在します。このミューテーションは、カオス実験後にLinuxトラフィックコントロール(TC)設定をクリーンアップするもので、実験仕様からユーザーが指定したパラメータを受け入れます。
攻撃者がそれらのパラメータに細工した値を指定すると、結果として得られるシェルコマンドは文字列連結によって構築されます。このコマンドがコントローラーマネージャーの権限で実行される前に防御的チェックは実行されません。つまり、認証されていないユーザーがクラスタによって制御される任意のポッドまたはネームスペースに任意のコマンドを注入できるということです。

以下は、そのミューテーションのソースコードからの抜粋です(Go実装の文脈で示しています)。

root@kitploit:~
// cleanTcsMutation.go
func executeCleanTcs(ctx context.Context, payload Payload) error {
    // Build command string using user input directly
    cmd := fmt.Sprintf(
        "tc qdisc add dev %s root handle 1: htb rate %s ceil %s",
        payload.Device,
        payload.Rate,
        payload.Ceil,
    )
    log.Debugf("Running command: %s", cmd)
    if err := ctx.RunCommand(cmd); err != nil {
        return fmt.Errorf("tc clean mutation failed: %w", err)
    }
    return nil
}
  • このミューテーションは、Device、Rate、Ceil の3つのパラメータを受け入れます。
  • これらはサニタイズ処理なしでコマンド文字列に連結されます。
  • 結果として得られるシェル呼び出しは、通常すべてのネームスペースのすべてのポッドにアクセスできるChaosコントローラーマネージャーの権限で実行されます。

攻撃者がこれを悪用する方法

Chaos-Meshを実行しているKubernetesクラスタを想像してください。攻撃者は一見無害な実験仕様を作成します。しかし、トラフィックコントロールを調整する代わりに、Device、Rate、Ceil などのフィールドに ; rm -rf /tmp のようなペイロードを忍ばせます。UIまたはAPIを介して送信されると、ミューテーションは盲目的にコマンドを構築して実行します。サニタイズも保護策もありません。そして、コントローラーマネージャーの権限で実行されるため、注入されたコードはポッド全体に急速に広がります。さらに悪いことに、攻撃者がCVE-2025-59358も利用して認証なしでGraphQLエンドポイントにアクセスする場合、認証情報すら必要ありません。

本番環境で悪用された場合、CVE-2025-59359により攻撃者はサービスを妨害し、機密性の高いワークロードにアクセスし、ネームスペース間を横断できるようになる可能性があり、事業継続と法令遵守に重大なリスクをもたらします。Chaos-Meshを使用している組織は、パッチ適用、RBACの強制、GraphQLエンドポイントの監査を優先する必要があります。


MITRE ATT&CK マッピング

TacticTechnique
実行T1059 – Command and Scripting Interpreter
権限昇格T1068 – Exploitation for Privilege Escalation
横展開T1021 – Remote Services
影響T1499 – Endpoint Denial of Service

検出戦略

  • 即時対応: cleanTcsミューテーションにおけるユーザー入力の処理に関するポリシーを見直します。
  • 緩和策のアドバイス: シェルコマンド文字列を構築する前にサニタイズ手順を追加するか、連結を完全に回避するパラメータ化されたクエリに切り替えます。
  • 長期的な計画: Chaosコントローラーマネージャーにロールベースのアクセス制御を実装し、承認されたユーザーのみが実験仕様を送信できるようにすることを検討します。

Logstash パイプライン設定

Logstash設定ディレクトリに logstash-tcs.conf というファイルを作成します。

root@kitploit:~

input {
  beats {
    port => 5044
    codec => "json"
  }
}

filter {
  # The Python script will be referenced here.
  python {
    code => "/opt/elk/python/process_tcs.py"
    add_field => { "[tcs]" => "%{[message][device]}-%{[message][rate]}-%{[message][ceil]}" }
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "chaos-tcs"
    document_type => "experiment"
    codec => "json"
  }
}

### Python フィルタスクリプト – process_tcs.py

root@kitploit:~
#!/usr/bin/python3

def process(event):
    """
    Transforms the raw event from Logstash into a JSON document suitable for Elasticsearch.
    Expected input format (example):

      {
        "message": {
          "device": "eth0",
          "rate":   "100mbit/s",
          "ceil":   "200mbit/s",
          "timestamp": "2025‑09‑18T14:33:00Z"
        }
      }

    The script extracts the three key values, normalises them and returns a dictionary.
    """
    # 1. Grab nested fields
    device = event.get("message", {}).get("device", "")
    rate   = event.get("message", {}).get("rate", "")
    ceil   = event.get("message", {}).get("ceil", "")

    # 2. Normalise numeric values – remove unit suffixes and cast to float.
    def strip_unit(val, unit):
        return float(val.replace(unit, "").strip())

    rate_val = strip_unit(rate, "mbit/s")
    ceil_val = strip_unit(ceil, "mbit/s")

    # 3. Build output dict
    result = {
        "device": device,
        "rate_mbit_s": rate_val,
        "ceil_mbit_s": ceil_val,
        "ts": event.get("message", {}).get("timestamp", ""),
        "tcs_id": f"{device}-{rate_val}-{ceil_val}"
    }

    # 4. Return the dict
    return result

### Elasticsearch インデックスマッピング

chaos-tcs-mapping.json というマッピングファイルを作成します:

root@kitploit:~
{
  "mappings": {
    "_doc": {
      "properties": {
        "device":      { "type": "keyword" },
        "rate_mbit_s":{ "type":"float"   },
        "ceil_mbit_s":{ "type":"float"   },
        "ts":          { "type":"date",  "format":"yyyy-MM-dd'T'HH:mm:ssZ"},
        "tcs_id":      { "type":"keyword" }
      }
    }
  }
}

Kibana ダッシュボード – “Command Injection Overview”

CVE-2025-59359の影響をリアルタイムで可視化するために、このダッシュボードは生のカオス実験データを実用的な洞察に変える3つの主要パネルを提供します。時系列ラインは、ネームスペースごとに集計されたポッドごとの rate_mbit_s を追跡し、チームがクラスタ全体のトラフィックシェーピングの異常を検出するのに役立ちます。ヒストグラムは、1時間あたりの実験数を示し、レートが平均の1.5倍を超えるとアラートをトリガーし、潜在的な悪用や自動化された攻撃パターンを浮き彫りにします。最後に、フィルタテーブルは各 tcs_id をその実行ステータスと成功フラグとともにリストし、調査担当者が失敗した実行や不審な実行を迅速に特定できるようにします。これらのパネルは、Kubernetes環境でコマンドインジェクションがどのように展開されるかに関するフォレンジックのレンズを形成します。

簡単なアラートルールを追加します:

root@kitploit:~
PUT /chaos-tcs/_settings
{
  "number_of_shards": 2,
  "number_of_replicas": 1
}

上記のPythonスクリプトを使用するインジェストパイプラインを作成し、rate_mbit_s が24時間の移動平均から15 % 以上逸脱したときに発火するKibanaアラートを設定します。


### デプロイメントチェックリスト


結論

CVE-2025-59359は、脆弱性データベースの単なる1行ではありません。見落とされがちな入力サニタイズがKubernetesクラスタ全体のセキュリティをどのように崩壊させ得るかを示す鮮明な例です。このエクスプロイトをウォークスルーすることで、Chaos-Meshの単一のミューテーションが、リモートコード実行、権限昇格、ポッドの完全な侵害へのゲートウェイになり得ることを見てきました。しかし、より重要なのは、可観測性、フォレンジックツール、思慮深い検出ロジックが、カオスを明瞭さに変える方法を示したことです。

このプロジェクトは、厳密に教育および倫理的な使用を目的としています。すべてのデモ、シミュレーション、フォレンジックウォークスルーは、実際の脆弱性への認識を高め、安全なコーディング、責任ある開示、積極的な防御戦略を促進するように設計されています。ここで提示された技術や洞察は、いかなる状況でも、明示的な許可なしにライブシステムを侵害、妨害、または悪用するために使用されるべきではありません。

ツールをダウンロード
項目アクション
Logstashサービスbeats入力がポート5044でリッスンしていることを確認します。
Pythonスクリプトのパーミッション/opt/elk/python/process_tcs.py が実行可能である必要があります(chmod +x)。
Elasticsearchインデックスマッピングファイルを使用して PUT /chaos-tcs/_mapping を実行します。
KibanaダッシュボードJSON定義をインポートし、Command‑Injection Overview として保存します。
セキュリティグループKubernetesノードからポート5044へのトラフィックを許可します。
監視5分ごとに curl -s http://localhost:9200/_cat/indices?v を実行するcronジョブを追加して、インデックスの健全性を確認します。