ロシア語を話す Gentlemen ランサムウェアのアフィリエイトが、実際の侵入作戦で Model Context Protocol(MCP)を使ってコマンドを実行していたことが分かりました。AIコーディングアシスタントのツールインターフェースを、実運用のコマンド&コントロール(C2)チャネルに転用した形です。
この活動を特定したのはCloudSEKです。「Azazel」と名乗る攻撃者の公開状態にあったインフラを調査する過程で見つかりました。
Azazelは独立したリークサイト「LEAKNED」も運営していました。このサイトを通じて、Gentlemen のランサムウェア・アズ・ア・サービス(RaaS)運営側に入るはずの恐喝収益を横取りしていたとされています。
最も有力な証拠は、va.py というスクリプトです。このスクリプトは、社内の6台のホストに身代金要求メモが正しく配置されているかを検証していました。
スクリプトは、127.0.0.1:35367 にバインドされたMCPサービス経由で exec_in_session を呼び出していました。認証には固定のBearerトークンを使い、侵害した環境内でSSHベースの検証コマンドを実行していました。
検証の対象は8か所に及びます。システムのログインメッセージ、ホームディレクトリ内の身代金要求メモ、SSHバナー、PostgreSQLの設定、pgAdminのテンプレート、そして被害組織のGitLabリポジトリとイシュートラッカーです。
このワークフローは、理論上のプロンプトインジェクションのシナリオではありません。実際にコマンドが実行されていた事例です。
Azazelは、リバースシェルのハンドラーを、AIコーディングアシスタントから利用できるツールとして登録していました。
ほかに mcp_test.py と recon_mcp.py というスクリプトも見つかっており、開発を繰り返していたことがうかがえます。スキャナーのログには「internet-census-mcp-scanner」というフィンガープリントが残っていました。公開状態のMCPサービスを組織的に探索していたとみられます。
CloudSEKは、犯罪キャンペーンにおけるMCPの exec_in_session 悪用を確認した事例だと説明しています。
ただし、これはMCP自体が新たに発見されたソフトウェアの脆弱性を突かれた証拠ではない点に注意が必要です。
Hacking& Cracking
以前の報告でも、Gentlemen のアフィリエイトが Penelope のMCPインターフェースを運用していたことが確認されています。ランサムウェアの侵入プロセスにAI連携ツールが入り込む動きが広がっていることを裏付けています。

CloudSEKの調査では、6か国にまたがる24件超の被害組織のディレクトリが見つかりました。被害は、物流、保険、製薬、人工知能、医療機器、政府関連インフラに及びます。
侵害の大半は、GitLabのCI/CD変数とリポジトリ履歴を狙った認証情報の窃取という共通の手口でした。
ランサムウェア・アフィリエイトの活動
使用されたツールは、glato、nord-stream、gitlab-secrets、gitlab-watchman、gitleaks などです。これらを使い、データベースのパスワード、APIトークン、SSH秘密鍵を抜き出していました。

侵害されたGitLabインスタンスの1つでは、無関係の2組織の情報が露出していました。別のSaaS事業者への侵入では、アクセス範囲が150超のデータベースや決済ゲートウェイ、さらに事業者とその顧客にまたがる数百のリポジトリにまで広がったと報告されています。
政府関連の金融登記システムへの侵入では、Azazelは12万件超のレコードを盗み出しました。その後、PostgreSQLを停止し、本番データのディレクトリを削除しています。通常のファイル暗号化にとどまらず、破壊を伴う恐喝に踏み込んでいたことがわかります。
別のAIプラットフォームへの侵入は、検証が不十分だったサーバーサイドのURL取得エンドポイントが発端でした。
攻撃者はその後、Jasyptのマスターキーを入手し、設定ファイル内の機密情報を復号しました。さらにGit履歴から認証バイパス用のトークンを取得し、オフラインでクラックするためにGrafanaのパスワードハッシュも抜き出しています。

調査中もオブジェクトストレージの継続的な同期は止まっておらず、盗まれたデータセットは観測のたびに数百GBずつ増えていました。
その後の検索では、Kubernetesの設定、SSH鍵、認証情報を含むコンテナファイルが狙われていました。
露出していたコマンドサーバー 23.236.169.183 では、ポート8000でディレクトリ一覧が公開され、ポート9999でアップロード用のリスナーが稼働していました。
データの集約先は、forgitlab.com に関連する 162.220.163.26 でした。66.179.30.155 は、リーク情報の公開やアーカイブ用のインフラをホストしていました。
CloudSEKによると、29.2TBのステージング用マシンと、別の22TBのボールトが確認されています。合計容量は50TBを超えます。
転送には aws s3 sync、scp、pg_dump、MinIO Client、MEGAcmd が使われ、最終的な保存先はMEGAでした。
防御側は、MCPの実行ツールを特権インターフェースとして扱う必要があります。呼び出しの監査やクライアントIDの制限を行い、ループバック以外にサービスを公開しないことも重要です。
GitLabのシークレットのローテーションも、現在のパイプライン変数だけでは不十分です。リポジトリ履歴や、連携する下流システムまで対象に含める必要があります。
CloudSEKによると、特定された被害組織には公表前に連携して通知を行いました。セキュリティ担当者向けには、技術的な詳細を限定して提供したということです。
SecurityProducts & Services
IOC(侵害指標)
| 指標 | 種別 | 値 |
|---|---|---|
| C2/オープンディレクトリ | IPv4 | 23.236.169[.]183 |
| forgitlab/戦利品リポジトリ | IPv4 | 162.220.163[.]26 |
| 攻撃者が所有するGitLabのホスト名 | ドメイン | forgitlab[.]com |
| novostnik/LEAKNED | IPv4 | 66.179.30[.]155 |
注: IPアドレスとドメインは、誤って名前解決やハイパーリンク化が行われるのを防ぐため、意図的に無害化(例:[.])しています。無害化を元に戻すのは、MISP、VirusTotal、SIEMなど、管理された脅威インテリジェンス基盤の内部に限ってください。
サイバー脅威を被害が出る前に阻止し、MTTRを21分短縮。ANYRUNのSandboxをSOCに導入する。
翻訳元: https://gbhackers.com/ransomware-affiliate-operations/