Trivy→Checkmarx→LiteLLMと5日間で3つの主要OSSを連鎖的に侵害した攻撃グループTeamPCPの全容を解説。ブロックチェーンC2の世界初事例や、2万リポジトリに影響した攻撃手法、開発者が取るべき対策を詳しく紹介します。
2026年3月、オープンソースのセキュリティツールやAIライブラリが次々と侵害される事件が発生しました。犯行グループは「TeamPCP」。セキュリティスキャナーのTrivy、コード解析ツールのCheckmarx、AIライブラリのLiteLLMと、わずか5日間で3つの主要プロジェクトを連鎖的に攻撃し、2万以上のリポジトリに潜在的な影響を与えました。
本記事では、TeamPCPの正体、攻撃の全体像、そしてこの事件が示すソフトウェアサプライチェーンの脆弱性について詳しく解説します。
TeamPCPとは何者か
基本プロフィール
| 項目 | 詳細 |
|---|---|
| グループ名 | TeamPCP(別名: PCPcat, Persy_PCP, ShellForce, DeadCatx3) |
| 活動開始 | 2025年12月頃 |
| 連絡手段 | Telegram(@Persy_PCP, @teampcp) |
| ペイロード識別子 | "TeamPCP Cloud stealer"の文字列を埋め込み |
| 特徴的な命名 | tpcp.tar.gz, tpcp-docs-* リポジトリ |
| インフラ | Spaceship, Inc.(レジストラ)/ DEMENIN B.V.(ホスティング) |
TeamPCPは2025年末に出現した比較的新しいサイバー犯罪グループですが、その技術力は高く、CI/CDパイプラインとオープンソースエコシステムに対する深い理解を持っています。
攻撃の共通基盤
3つの攻撃すべてで以下の共通要素が確認されており、同一グループによる計画的な犯行と断定されています。
- 同一のRSA鍵ペア(暗号化に使用)
- **
tpcp.tar.gz**という命名規則のアーカイブ - **
tpcp-docs-**プレフィックスのGitHubリポジトリをC2ステージングに使用 - 同一のレジストラ・ホスティングで管理されたドメイン
5日間の連鎖攻撃:全タイムライン
LiteLLMへの攻撃はTeamPCPの内部分類で「Phase 09」と位置づけられています。つまり、公開されている3つの攻撃以外にも、まだ判明していない攻撃フェーズが存在する可能性があります。
Phase 1: Trivy — セキュリティスキャナーが武器になった日
攻撃の経緯
TrivyはAqua Securityが開発するオープンソースのセキュリティスキャナーで、コンテナイメージやIaCの脆弱性をスキャンするツールです。多くの企業がCI/CDパイプラインに組み込んで使用しています。
攻撃は実は2026年2月下旬から始まっていました。
なぜ「セキュリティスキャナーが武器になった」のか
皮肉なことに、Trivyはセキュリティのために導入されるツールです。しかし以下の理由から、攻撃者にとって理想的な侵入経路でした。
- 広く信頼されている:セキュリティツールは高い権限でCI/CDに組み込まれることが多い
- 自動実行される:プルリクエストやプッシュのたびに自動で走る
- シークレットにアクセスできる:脆弱性スキャンのためにリポジトリの認証情報にアクセスできる環境にいる
Phase 2: Checkmarx — 連鎖する侵害
攻撃の手法
Trivyの侵害で窃取したCI認証情報を利用して、別のセキュリティベンダーであるCheckmarxのツールにも攻撃を展開しました。
侵害されたコンポーネント:
- Checkmarx KICS(Keep Infrastructure as Code Secure)のGitHub Action
- Checkmarx ASTのGitHub Action
- OpenVSX拡張機能(
cx-dev-assist 1.7.0とast-results)
C2ドメインにはcheckmarx.zoneというCheckmarx社を模倣したドメインが使用されました。
攻撃の連鎖メカニズム: Trivyで盗んだトークンがCheckmarxのリポジトリへの書き込み権限を持っていた場合、そのトークンでCheckmarxのアクションにも悪意あるコードを注入できます。1つの侵害が次の侵害を生む「カスケード型サプライチェーン攻撃」です。
Phase 3(Phase 09): LiteLLM — AI開発者を狙い撃ち
攻撃の詳細
CI/CDパイプラインから盗んだPyPI公開用トークンを使い、GitHubリポジトリには存在しないバージョンをPyPIに直接アップロードしました。
2つの異なる感染手法:
# v1.82.7: ソースコード注入
# litellm/proxy/proxy_server.py に base64エンコードされたペイロードを埋め込み
# litellm.proxy をimportした時に実行
# v1.82.8: .pthファイル注入(より危険)
# litellm_init.pth を site-packages に配置
# Pythonインタプリタ起動時に自動実行(import不要)
マルウェアの3段階構造
第1段階(認証情報収集): SSH鍵、環境変数、AWS/GCP/Azure認証情報、Kubernetes設定、DB接続情報、Slack/Discordウェブフック、仮想通貨ウォレット情報を収集。さらに発見した認証情報を能動的に使用してAWS APIクエリやKubernetesシークレットへのアクセスも実行。
第2段階(暗号化・送信): AES-256-CBCで暗号化し、4096ビットRSA公開鍵で保護。tpcp.tar.gzとしてC2サーバー(models.litellm.cloud)にHTTPS POSTで送信。
第3段階(永続化): ~/.config/sysmon/sysmon.pyにバックドアを設置しsystemdサービス化。Kubernetes環境では全ノードに特権Podをデプロイして横展開。
CanisterWorm:ブロックチェーンを悪用したC2
TeamPCPの攻撃で特に注目すべきは、CanisterWormと呼ばれる自己複製型ワームの存在です。
Internet Computer Protocol(ICP)をC2に利用
従来のC2(Command & Control)通信はドメインやIPアドレスを使うため、ドメインレジストラやホスティング会社が停止できます。しかしTeamPCPは**Internet Computer Protocol(ICP)**のキャニスター(スマートコントラクト)をC2チャネルとして利用しました。
ICPキャニスターはドメインレジストラやホスティング会社によるテイクダウンができません。 サプライチェーン攻撃でのICP利用は世界初の事例として報告されています。これは攻撃者のインフラ遮断を極めて困難にする新しい脅威です。
破壊機能
CanisterWormには特定条件で発動する破壊機能も確認されています。
- Farsi(ペルシア語)が主要言語として設定されている場合
- テヘランのタイムゾーンが検出された場合
上記の条件を満たすと、Kubernetesクラスターを破壊する機能が発動します。特定の国・地域を標的にした地政学的な動機が示唆されていますが、詳細は不明です。
攻撃のC2ドメイン一覧
| ドメイン | 模倣先 | 使用フェーズ |
|---|---|---|
| scan.aquasecurtiy[.]org | Aqua Security(Trivy開発元)のタイポスクワッティング | Phase 1 |
| checkmarx[.]zone | Checkmarx社の模倣 | Phase 2 |
| models.litellm[.]cloud | LiteLLM公式の模倣 | Phase 3 |
すべてのドメインが正規ベンダーに見せかけたものであり、ネットワーク監視での検知を困難にしています。
影響規模
開発者が今すぐやるべきこと
よくある質問
サーバー管理、丸ごとお任せください
サーバー保守・運用
監視・障害対応・パフォーマンス改善まで、安定稼働をサポートします
※ 通常1営業日以内にご返信します
まとめ
TeamPCPによる一連の攻撃は、現代のソフトウェアサプライチェーンがいかに脆弱かを浮き彫りにしました。
この事件の核心:
- 信頼の連鎖が逆手に取られた — セキュリティツールへの信頼が攻撃の起点に
- 1つの侵害が連鎖する — Trivy → Checkmarx → LiteLLMとカスケード
- タグベースの参照は危険 — Gitタグは書き換え可能であり、安全ではない
- 攻撃インフラが進化している — ブロックチェーンC2でテイクダウンを回避
TeamPCPはまだ活動中であり、「Phase 09」という番号が示すように、今後も新たな攻撃が発生する可能性があります。すべての開発者がCI/CDパイプラインのセキュリティを見直す必要があります。