7月18日、The Hacker Newsが「New NadMesh Botnet Hunts Exposed AI Services for Cloud Keys and Kubernetes Tokens」と題した記事を公開した。この記事では、公開状態のAIサービスを標的にクラウド認証情報やKubernetesトークンを収集する新型ボットネット「NadMesh」の手口と実態について詳しく紹介されている。
狙いはホストではなく「ログイン情報」
NadMeshのオペレーターダッシュボードには3,811件のユニークなAWSキーが記録されており、その収集規模が今回の調査の出発点になっている。このボットネットが他と一線を画すのは、その目的にある。調査した中国のセキュリティ企業QiAnXin XLabは端的にまとめている。「攻撃者が求めているのはホスト自体ではなく、そこにあるクラウド認証情報とKubernetesクラスター権限だ」と。
ボットが送り返す情報は以下の通りだ。
- 環境変数から抽出したAWSキー
- Kubernetesのサービスアカウントトークン
~/.aws/config、.env、~/.docker/config.jsonの内容
7月10日時点のスクリーンショットで確認された直近100件のインテルフィードには47件の認証情報窃取と41件のモデルインベントリが含まれ、後者にはDeepSeek・GLM・Kimiの識別子が:cloudタグ付きで記録されていた。ローカル環境だけでなく、クラウド上のモデルサービスまで索引していることを示唆している。
4月に別のオペレーターがComfyUIのGPUを使ってMoneroをマイニングしていたケースとの比較が象徴的だ。「4月の攻撃者はGPUが欲しかった。NadMeshはそのボックスがログインできる先を欲しがっている」。
スキャン対象:AIツールが並ぶターゲットリスト
NadMeshはShodanのハーベスターでスキャンキューを常に補充しており、標的は現場で素早く立ち上げられがちなAIツールが中心だ。
- ComfyUI(ポート8188)― 画像生成UI
- Ollama(ポート11434)― ローカルLLM実行環境
- Gradio(ポート7860)― MLモデルのデモUI
- n8n(ポート5678)― ワークフロー自動化ツール
- Langflow、Open WebUI
これらはチームが素早く立ち上げ、ファイアウォール設定が後回しになりやすいツールだとXLabは指摘する。
スキャンは自己強化する仕組みになっている。ヒットが出たサブネットは5分ごとに高密度で再スキャンされ、過去24時間に「危険」とフラグが立ったIPは15分ごとに/32スキャンがAIポートから優先的に実施される。10回デプロイを試みて結果がゼロのターゲットはハニーポットと判断して自動ブラックリスト入りする設計だ。
MCPが優先ターゲットの筆頭に
コントローラーの優先順位リストではMCP(Model Context Protocol)がKubernetes、Docker API、Redisより上位に位置している。使われる手口はJSON-RPCのtools/callでexecute_commandを呼び出すものだ。CVEは紐付いていない。
なぜMCPが狙われるか。MCPの初期仕様(2024-11-05版)では認証はプロトコルの範囲外とされており、2025年3月に追加された認証フロー(2025-03-26版)も仕様上は依然「任意(optional)」だ。つまり、デプロイ側が認証をスキップしても仕様違反にはならず、認証なし公開状態でも動作するサーバーが量産されやすい構造になっている。
Censysが4月28日時点で調査したところ、8,758のIPアドレスにわたる12,520のMCPサービスがインターネットから到達可能な状態にあり、5月6日時点には21,000超に増加。そのうち約90がコマンド実行ツールを公開しており、**39ではツール名がexecute_command**、つまりNadMeshのエクスプロイトテーブルの先頭と完全に一致する名称だった。
Censysが5月27日にMCPの調査を締めくくった際、公開されたシェルツールが「将来のボットネットや悪用インフラの一部になる」と推測していた。XLabがmcp_cmd_executeをエクスプロイトチャートに含むボットネットを報告したのは、その7週間後だ。
実際のトラフィック分布とCVE
XLabが実際に観測したエクスプロイトトラフィックの内訳は、AIターゲット一辺倒ではない。
| 攻撃ベクター | 割合 |
|---|---|
| Docker Containers API RCE | 30.31% |
| Jenkins ScriptText RCE | 22.28% |
| Telnet 弱いパスワード | 10.36% |
| Redis | 8.29% |
| CVE-2022-22947(Spring Cloud Gateway) | 6.48% |
| CVE-2017-12611(Struts Freemarker) | 4.15% |
| mcp_cmd_execute | 0.78% |
AIサービスへの標的設定は「入口」と「戦利品」では現実だが、エクスプロイトトラフィックの主力はDockerソケットとJenkinsコンソールだ。
パッチが必要な脆弱性には公開直後のものも含まれる。CVE-2026-39987はMarimoノートブック0.23.0未満の認証不要のRCEで、CISAが開示後数時間で悪用されたとしてKEVに追加した。CVE-2026-41176は、HTTPなしで起動したrclone RCサーバー(1.45.0〜1.73.5)に対し、未認証の呼び出し元がrc.NoAuthを有効化できる脆弱性だ。rcloneの設定ファイルはクラウド認証情報そのものであり、CVE-2026-39987と同様、悪用されれば即座に認証情報の流出につながる深刻度の高い欠陥として扱われている。
検出・対処の要点
XLabはダッシュボードの「傍証」を紹介している。オペレーターのスコアボードが「成功」にカウントする条件がOllamaとAWSの収穫を明示的に除外しているという点だ。オペレーターが最も重視しているものを、自分のスコアボードで数えていない。
対処として確認すべきパスは以下の通りだ。
~/.ssh/authorized_keys(身に覚えのない鍵がないか)/dev/shm/.a、/var/tmp/.a、/tmp/.a/etc/cron.d/.sys_monitor、/etc/cron.d/.s
侵害が確認された場合、認証情報を「ローテーション」ではなく「無効化(revoke)」すること。マルウェアの永続化機構(3種類が同時に動作する)を除去する前に新しいキーを発行しても、新キーも同様に窃取される。古いキーが有効だった期間中にどこで使われたかも追跡が必要だ。
C2サーバー:209.99.186[.]235、ドメイン:cdnorigin[.]net、エージェントサンプルのSHA1:31c69b3e12936abca770d430066f379ec1d997ec。ただしビルドごとにGarble難読化・UPX圧縮・ランダムパディングが施されており、このハッシュは該当ビルド1件しか捕捉できない。
詳細はNew NadMesh Botnet Hunts Exposed AI Services for Cloud Keys and Kubernetes Tokensを参照していただきたい。