インフラ・運用 2026.03.26

セキュリティツールが攻撃の武器に?謎のグループ「TeamPCP」による連鎖型サプライチェーン攻撃の全容

約14分で読めます

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日間の連鎖攻撃:全タイムライン

2026/02下旬
Trivyの設定ミスを発見
GitHub Actions環境から特権アクセストークンを抽出
2026/03/01
Trivyチームが事故を公開
認証情報のローテーションを実施(しかし不完全)
2026/03/19
Phase 1: Trivy GitHub Actionを改ざん
76個中75個のバージョンタグを悪意あるコミットに強制上書き
2026/03/23
Phase 2: Checkmarx KICS・VS Code拡張を侵害
Trivyから盗んだ認証情報で連鎖攻撃
2026/03/24 10:39 UTC
Phase 3(Phase 09): LiteLLMのPyPIに悪意あるバージョン公開
v1.82.7とv1.82.8をアップロード
2026/03/24 16:00 UTC
PyPIがパッケージを隔離・削除
約5時間の公開期間

LiteLLMへの攻撃はTeamPCPの内部分類で「Phase 09」と位置づけられています。つまり、公開されている3つの攻撃以外にも、まだ判明していない攻撃フェーズが存在する可能性があります。

サーバー・インフラでお困りですか?

障害対応・移行・パフォーマンスチューニングなど、ご相談ください

無料で相談する

Phase 1: Trivy — セキュリティスキャナーが武器になった日

攻撃の経緯

TrivyはAqua Securityが開発するオープンソースのセキュリティスキャナーで、コンテナイメージやIaCの脆弱性をスキャンするツールです。多くの企業がCI/CDパイプラインに組み込んで使用しています。

攻撃は実は2026年2月下旬から始まっていました。

設定ミスの発見(2月下旬)
TeamPCPがTrivyのGitHub Actions環境の設定ミスを発見。特権アクセストークンを抽出。
不完全な認証情報ローテーション(3月1日)
Trivyチームが侵害を公開し、認証情報のローテーションを実施。しかし一部の認証情報が残存していた。
大規模タグ改ざん(3月19日)
残存した認証情報を悪用し、`aquasecurity/trivy-action`の**76個中75個のバージョンタグ**と`aquasecurity/setup-trivy`の**7個すべてのタグ**を悪意あるコミットに強制上書き。
CI/CDパイプラインの自動感染
`@v0.28.0`などのバージョンタグを参照していたGitHub Actionsワークフローが、自動的に攻撃者のコードを実行。CIランナーのメモリからGitHub PAT(個人アクセストークン)やその他のシークレットを抽出。

なぜ「セキュリティスキャナーが武器になった」のか

皮肉なことに、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.0ast-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[.]orgAqua Security(Trivy開発元)のタイポスクワッティングPhase 1
checkmarx[.]zoneCheckmarx社の模倣Phase 2
models.litellm[.]cloudLiteLLM公式の模倣Phase 3

すべてのドメインが正規ベンダーに見せかけたものであり、ネットワーク監視での検知を困難にしています。

影響規模

0以上
潜在的に影響を受けたリポジトリ
0
LiteLLMの1日あたりDL数
0
改ざんされたTrivyタグ

開発者が今すぐやるべきこと

GitHub Actionsの依存関係をハッシュ固定
バージョンタグ(`@v1`等)ではなく、コミットハッシュ(`@a1c3427f...`)で固定する。タグは書き換え可能だが、ハッシュは書き換えられない。
CI/CDシークレットの棚卸し
パイプラインに渡しているトークンの権限を最小化。長寿命トークンから短寿命認証情報(OIDC等)に移行する。
パッケージのハッシュ検証を導入
`pip install --require-hashes`やnpmの`package-lock.json`のintegrity値を活用し、パッケージの改ざんを検知する。
ネットワーク監視の強化
CI/CDランナーからの外部通信を監視。特にC2ドメイン(aquasecurtiy.org、checkmarx.zone、models.litellm.cloud)への通信をブロック。
GitHub Actionsの許可リストを設定
使用するアクションを明示的に許可リストで管理し、未承認のアクションを自動拒否する設定にする。

よくある質問

A
2026年3月時点で逮捕されておらず、身元も特定されていません。Telegramチャネル(@teampcp)は現在も存在しています。
A
その可能性が高いです。公開されている攻撃はTrivy、Checkmarx、LiteLLMの3つですが、Phase 09という番号は他にも未公開の攻撃フェーズが存在することを示唆しています。
A
セキュリティツールはCI/CDパイプラインに高い権限で組み込まれることが多く、シークレットにアクセスできる立場にあるためです。1つのセキュリティツールを侵害すれば、そこから多数のリポジトリの認証情報を連鎖的に窃取できます。
A
GitHub Actionsのワークフローログを確認し、3月19〜24日の間にTrivy/Checkmarxアクションが実行されていないか確認してください。LiteLLMについてはv1.82.7/1.82.8をインストールしていないか`pip show litellm`で確認してください。
A
従来のC2はドメインやサーバーを使うため、法執行機関やホスティング会社がテイクダウン(停止)できました。しかしICPのスマートコントラクト(キャニスター)は分散型で運用されるため、従来のテイクダウン手法が通用しません。これはサプライチェーン攻撃における世界初の事例です。

サーバー・インフラでお困りですか?

障害対応・移行・パフォーマンスチューニングなど、ご相談ください

無料で相談する

サーバー管理、丸ごとお任せください

サーバー保守・運用

監視・障害対応・パフォーマンス改善まで、安定稼働をサポートします

200件以上の制作実績 顧客満足度97% 初回相談無料

※ 通常1営業日以内にご返信します

まとめ

TeamPCPによる一連の攻撃は、現代のソフトウェアサプライチェーンがいかに脆弱かを浮き彫りにしました。

この事件の核心:

  • 信頼の連鎖が逆手に取られた — セキュリティツールへの信頼が攻撃の起点に
  • 1つの侵害が連鎖する — Trivy → Checkmarx → LiteLLMとカスケード
  • タグベースの参照は危険 — Gitタグは書き換え可能であり、安全ではない
  • 攻撃インフラが進化している — ブロックチェーンC2でテイクダウンを回避

TeamPCPはまだ活動中であり、「Phase 09」という番号が示すように、今後も新たな攻撃が発生する可能性があります。すべての開発者がCI/CDパイプラインのセキュリティを見直す必要があります。

この記事をシェア

サーバー・インフラの課題を解決します

構築・移行・監視・障害対応まで、安定した運用環境をご提供します。 初回相談は無料です。

※ 1営業日以内にご返信いたします

この技術でお困りなら

無料でプロに相談できます

相談する
AIに無料相談