脅威アクター「TeamPCP」による大規模なサプライチェーン攻撃が、2026年3月19日からAqua Securityの脆弱性スキャナー「Trivy」および少なくとも2つの他のフレームワークを侵害しました。この攻撃は、GitHubのリポジトリタグ機能を悪用してCI/CDパイプラインをハイジャックし、資格情報窃取型マルウェアを注入する手法で行われました。このキャンペーンは、信頼されているセキュリティツールを広範な資格情報窃取のベクトルへと変貌させ、主要3大クラウドプロバイダーすべての機密情報を標的にしました。
MicrosoftのDefender for Cloudチームはセキュリティブログで、「この活動はその後、Checkmarx KICSやLiteLLMを含む追加のフレームワークにも拡大しました」と述べ、各攻撃波においてコアとなる攻撃チェーンは同様であったと指摘しています。「各攻撃波では、侵害されたプロジェクトをテーマにした新しいC2ドメインが使用されていました」
攻撃者は、aquasecurity/trivy-action GitHubリポジトリにある77個のバージョンタグのうち76個、およびaquasecurity/setup-trivyの全7個のタグを強制プッシュ(force-push)し、悪意のあるコードにリダイレクトさせました。また、悪意のあるTrivyバイナリ(バージョン0.69.4)も公式チャンネルに公開されました。このマルウェアは、AWS、GCP、Azureのクラウド資格情報、およびKubernetesシークレットを、scan.aquasecurtiy[.]orgのようなタイポスクワッティングドメインに流出させました。
この攻撃は、信頼されているセキュリティおよび開発ツールを内部脅威へと変え、侵害されたバージョンを含む自動CI/CDパイプラインを使用しているあらゆる組織に重大なリスクをもたらします。広範な資格情報収集に焦点を当てていることは、アクターの目的が後続の攻撃のためにクラウドインフラへの広範なアクセス権を得ることであることを示唆しており、総影響範囲は現在も調査中です。
変更可能なタグがいかにして武器となったか
今回の攻撃は、Gitの設計上の主要な機能である「変更可能なタグ(mutable tags)」を悪用しました。デフォルトでは、特定のソフトウェアバージョンを指すラベルである「タグ」は、リポジトリへのプッシュ権限を持つ者であれば誰でも再割り当てが可能です。脅威アクターは、奪取した資格情報を使用してtrivy-actionの既存の76バージョンとsetup-trivyの全バージョンを再タグ付けし、悪意のあるペイロードを含む新しいコミットを指すように書き換えました。
これらのアクションをバージョンタグで参照していたダウンストリームのCI/CDワークフローは、次回の実行時に攻撃者のコードを自動的にプルすることになりました。その際、GitHubのユーザーインターフェース上には開発者に警告を発するような目に見える変更は現れませんでした。また、アクターはコミットの身元を偽装し、悪意のあるコミットを正当なものであるかのように見せかけました。これは過去の他のサプライチェーン攻撃でも見られた戦術です。この手法は典型的なバージョンチェックを回避し、マルウェアを密かに拡散させることを可能にします。
多段階の認証情報窃盗
CI/CDランナー内で実行されると、マルウェアは広範囲にわたる資格情報収集作戦を開始しました。ホストマシンのフィンガープリントを採取した後、Pythonベースのスティラー(窃取プログラム)がAmazon Web Services、Google Cloud Platform、Microsoft Azureの資格情報を検索し、環境変数とインスタンスメタデータサービスの両方を照会しました。
マルウェアはクラウドキーだけにとどまりませんでした。Kubernetesシークレットを列挙して流出させ、ファイルシステム内の設定ファイルからAPIキーを検索し、SlackやDiscordのウェブフックURLも収集しました。盗まれたデータはtpcp.tar.gzアーカイブに暗号化され、HTTP POST経由で攻撃者が制御するサーバーに送信されました。侵害を隠蔽するため、マルウェアはその後、正規のTrivyスキャナーを実行し、パイプラインが期待通りの出力で正常に終了するように仕向けました。
緩和策と影響を受けるバージョン
組織は直ちにCI/CDパイプラインを監査し、影響を受けるツールの検証済みで安全なバージョンを実行しているか確認することが強く推奨されます。アクションを、変更可能なバージョンタグではなく、不変のコミットSHAに固定することが、最も重要な予防策となります。
Microsoftは、影響を受ける製品と使用すべき最小限の安全なバージョンのリストを以下の通り公開しました:
| 製品 | コンポーネント | 安全なバージョン |
|---|
| Trivy | Trivy binary | v0.69.2 – v0.69.3 |
| trivy-action | v0.35.0 |
| setup-trivy | v0.2.6 |
| LiteLLM | litellm | v1.82.6 以下 |
| Checkmarx | checkmarx.cx-dev-assist | 1.10.0 以上 |
| checkmarx.ast-results | 2.56.0 以上 |
| ast-github-action | 2.3.33 |
| kics-github-action | 2.1.20 |
セキュリティチームは、侵害の痕跡(IoC)を捜索することも可能です。Microsoft Defenderの顧客は、高度なハンティングクエリを使用して、悪意のあるコマンド、攻撃者ドメインへの不審なDNSクエリ、Kubernetesシークレットの列挙を特定できます。たとえば、以下のクエリはTeamPCP攻撃に関連するコマンドラインの特定に役立ちます:
CloudProcessEvents | where ProcessCommandLine has_any ('scan.aquasecurtiy.org','checkmarx.zone','tpcp.tar.gz')
今回の事件は、ソフトウェアサプライチェーンの脆弱性を改めて浮き彫りにしました。投資家にとって、これは厳格な検証プロセスなしにオープンソースソフトウェアに大きく依存している企業が抱える運用上および財務上のリスクを示しています。侵害されたツールを使用していることが判明した企業は、多額の修復費用、潜在的なデータ漏洩責任、および顧客からの信頼喪失に直面し、株価パフォーマンスに影響を与える可能性があります。逆に、この出来事は、サプライチェーンセキュリティやクラウドワークロード保護を専門とするPalo Alto Networks(PANW)やCrowdStrike(CRWD)といったサイバーセキュリティ企業にとっての追い風となるかもしれません。
この記事は情報提供のみを目的としており、投資勧誘を構成するものではありません。