ラボまとめコラムニュース
ブログ/記事一覧/【衝撃】Trivyから始まった連鎖攻撃、10日で4つのOSSが陥落した
teampcp-supply-chain-cascade-trivy-cover

【衝撃】Trivyから始まった連鎖攻撃、10日で4つのOSSが陥落した

セキュリティスキャナーTrivyへの攻撃を起点に、Checkmarx・LiteLLM・Telnyxが10日間で連鎖的に侵害された。CISAがKEVカタログに追加、Microsoft等が一斉分析。攻撃の全貌と対策を解説

ニュース
kkm-horikawa

kkm

Backend Engineer / AWS / Django

2026.03.3010 min8 views
この記事のポイント

セキュリティスキャナーTrivyへの攻撃を起点に、Checkmarx・LiteLLM・Telnyxが10日間で連鎖的に侵害された。CISAがKEVカタログに追加、Microsoft等が一斉分析。攻撃の全貌と対策を解説

2026年3月19日、セキュリティスキャナー Trivyが侵害されました。 それから10日で、 CheckmarxLiteLLMTelnyxが連鎖的に陥落しました。 犯人は「TeamPCP」。1つの侵害から盗んだ認証情報で次の標的に入り込む、ドミノ倒しのような攻撃です。

3月26日、 CISAがKEVカタログに追加しました。 連邦機関は4月9日までに修正する義務があります。 Microsoft、CrowdStrike、Palo Alto Networksが一斉に分析レポートを出しています。何が起きたのか、時系列で見ていきます。

10日間で何が起きたのか

← スワイプで移動

なぜ1つの攻撃が4つに広がったのか

この連鎖攻撃の核心は「GitHub Actionsのタグ」にあります。

多くのCI/CDパイプラインでは、GitHub Actionsを uses: aquasecurity/trivy-action@v0.35 のようにバージョンタグで指定します。このタグは「可変」です。作成者がいつでも別のコミットに付け替えられます。TeamPCPはまさにこれを悪用しました。

正規のタグを悪意あるコミットに付け替えることで、そのアクションを使っているすべてのCI/CDパイプラインが次の実行時にマルウェアを取り込みます。パイプラインの実行環境にはAPI鍵やパッケージレジストリの認証情報といったシークレットが環境変数として存在しています。マルウェアはこれを丸ごと抽出し、AES-256-CBCで暗号化して外部サーバーに送信しました。

盗まれた認証情報の中に、次の標的のGitHubやPyPIの認証情報が含まれていた。だからドミノが倒れ続けたのです。Trivyから盗んだPATでCheckmarxに侵入し、LiteLLMのCI/CDから盗んだPyPI認証情報でTelnyxのPyPIパッケージを乗っ取った。ReversingLabsはこれを「カスケーディング・サプライチェーン攻撃」と呼んでいます。

TeamPCPとは何者なのか

攻撃の帰属は、Endor Labsの分析により確認されています。4つの攻撃すべてで同一のRSA-4096公開鍵、同一の暗号化スキーム(AES-256-CBC + RSA OAEP)、同一のアーカイブヘッダーパターンが使われていました。

TeamPCPの技術的な特徴は、C2(コマンド&コントロール)通信にInternet Computer(ICP)ブロックチェーンの「canister」を使っている点です。従来のC2サーバーはIPアドレスやドメインでブロックできますが、ブロックチェーン上のcanisterはテイクダウンが極めて困難です。

Aqua Security内部の44リポジトリを改ざんした際には、リポジトリ名を「tpcp-docs-*」に変更し、説明文を「TeamPCP Owns Aqua Security」に書き換えています。セキュリティ企業を「所有した」と宣言する挑発行為です。

攻撃手法はどう進化したのか

10日間で攻撃手法が明確に進化しています。

段階標的手法検出回避
Day 1TrivyGitHubランナーの
メモリからシークレット抽出
AES-256-CBC暗号化
タイポスクワットドメイン
Day 4CheckmarxTrivyから盗んだPATで
同一手口を横展開
同上
Day 5LiteLLMCI/CD環境変数から
PyPI認証情報を窃取
systemdサービス+
ICPブロックチェーンC2
Day 8TelnyxLiteLLM経由の
認証情報で侵入
WAVファイルへの
ステガノグラフィ隠蔽

初期のTrivy攻撃では暗号化してドメインに送信するだけでしたが、Telnyx攻撃ではWAVオーディオファイルのフレームデータにペイロードを隠すステガノグラフィ的手法に進化しています。音声ファイルの中にマルウェアが隠されていれば、通常のファイルスキャンでは検出されません。

CISAが動いた意味

2026年3月26日、CISAはTrivy脆弱性をCVE-2026-33634(CVSS 9.4)としてKEVカタログに追加しました。CWE-506(Embedded Malicious Code)に分類されています。

KEVカタログへの追加は、BOD 22-01に基づき連邦民間行政機関(FCEB機関)に法的拘束力のある修正義務が生じることを意味します。修正期限は2026年4月9日。期限内に修正できなければ、未適用理由をCISAに報告する義務があります。

民間企業にとってもこれは事実上の警告です。「CISAが名指しした脆弱性を放置している」状態はコンプライアンスリスクになります。

大手ベンダーが一斉に分析を出した理由

この攻撃が業界に衝撃を与えたのは、「セキュリティツールそのものが攻撃のベクターになった」からです。Trivyはコンテナの脆弱性を見つけるためのツールです。守る側の道具が、攻撃の入り口になった。

Microsoftは検出・調査・防御のガイダンスを公開し、CrowdStrikeは「From Scanner to Stealer」というタイトルの分析を出しました。Palo Alto Networksは「Security Scanners Become the Weapon」と題し、WizSnykLegit Securityも続きました。

セキュリティツールは高い権限で動作し、実行時にほとんど疑われません。CI/CDパイプラインのシークレットにアクセスできる立場にいるため、侵害されたときの被害が桁違いに大きくなります。Palo Alto Networksはこの構造的リスクを「本質的な問題」と指摘しています。

自分のCI/CDは大丈夫か

安全なバージョン

  • Trivyバイナリ: v0.69.3以前(v0.69.4は汚染済み・削除済み)
  • trivy-action: v0.35.0(コミットSHA: 57a97c7
  • setup-trivy: v0.2.6(コミットSHA: 3fb12ec
  • Docker Hub: タグ 0.69.4〜0.69.6 と latest は3月23日までに削除済み
  • LiteLLM: v1.82.7・v1.82.8は削除済み、v1.82.9以降が安全
  • Telnyx Python SDK: v4.87.1・v4.87.2は削除済み

今回の攻撃で業界が合意した最も重要な対策は、GitHub Actionsをフルコミットのコミットハッシュ(SHA)でピンすることです。

# 危険(タグは書き換えられる)
uses: aquasecurity/trivy-action@v0.35

# 安全(SHAは不変)
uses: aquasecurity/trivy-action@57a97c7d44e6e34358ac38b3e15a2f6a92f25e04

タグは便利ですが「可変」です。SHAは不変です。今回の攻撃はまさにタグの可変性を悪用しました。CI/CDパイプラインで使っているすべてのサードパーティActionを、SHAピンに切り替えることを強く推奨します。

今後どうなるのか

TeamPCPの攻撃は止まる気配がありません。10日間で4つのOSSプロジェクトを連鎖的に侵害し、手法を進化させながら次の標的に移っています。影響を受けた可能性のあるリポジトリはKasperskyの分析で20,000以上、Arctic Wolfの推定では1,000以上のエンタープライズSaaS環境が影響を受けています。

「GitHubスター33,000は、セキュリティ監査の費用を支払ってくれない」。OSSのセキュリティツールへの依存は、そのツールのセキュリティ体制への信頼の上に成り立っています。今回の事件は、その信頼の前提を問い直す契機になるでしょう。

参照元