概要
- 2026年3月、 Trivy関連のDockerイメージとGitHub Actions でサプライチェーン攻撃が発生
- 複数のTrivyバージョンタグ が情報窃取型マルウェアにより改ざん
- GitHub Actions経由で CI/CDパイプラインの機密情報 が流出するリスク
- 攻撃者は force-pushで既存タグを不正コミットへ書き換え
- タグの完全性確認やSHAピン留め など、セキュリティ対策の重要性が浮き彫りに
Trivyサプライチェーン攻撃の概要
- 2026年3月、 TrivyのDockerイメージとGitHub Actions が大規模に改ざんされた事案
- 新たに 0.69.4、0.69.5、0.69.6 のDockerイメージタグが infostealerマルウェア を含むことが判明
- Docker Hubの latestタグ も一時的に悪意あるイメージを指していた
- 詳細は Socket公式ブログ 参照
GitHub Actionsリポジトリでの攻撃手法
- aquasecurity/trivy-action リポジトリの 76タグ中75タグ が攻撃者により force-push で改ざん
- 10,000以上のGitHubワークフロー がこのアクションを参照しているため、影響範囲は極めて広大
- @0.34.2、@0.33.0、@0.18.0 など、広く使われるタグが全て マルウェアを実行 する状態
- 唯一 @0.35.0 のみが正常なタグ
- 正規のTrivyスキャン処理の前に不正コードが実行 されるため、ユーザーは異常に気付きにくい
マルウェアの挙動と流出リスク
- entrypoint.sh の先頭約100行に 情報窃取処理 が挿入
- CI/CDランナーのプロセスメモリやファイルシステムから機密情報を収集
- SSHキーやAWS/GCP/Azure認証情報、Kubernetesトークン などが標的
- 収集→暗号化→外部送信 の3段階構成
- GitHub Actionsランナーの特権昇格 を利用し、 /proc/<pid>/mem からメモリダンプを取得
- GitHubホステッドランナー ではsudo権限が標準で付与されているため実現可能
- 暗号化後、攻撃者制御のエンドポイントへ送信、GitHub経由のバックアップ送信も実装
タグの改ざん手法と痕跡
- 各タグごとに master HEADのファイルツリー+不正entrypoint.sh で新コミット生成
- 元のタグコミットの著者情報やメッセージを偽装
- GPG署名の欠如、 親コミットの日付不整合、 entrypoint.shのみ変更 などが改ざんの痕跡
- GitHubリリースページの「Immutable」バッジ も信頼できない状態
- 攻撃者が意図的にImmutableリリースとしてタグをロックした可能性
攻撃の原因と再発防止策
- TrivyのCI環境から流出した認証情報 が攻撃の起点
- シークレット・トークンのローテーションが不完全 で、攻撃者が新しい認証情報にもアクセス可能な状態が続いた
- force-pushによるタグ書き換え はGitHubの通知や履歴に現れにくい
- GitHubの公式推奨 :「アクションはタグではなく フルコミットSHAでピン留め」が唯一確実な方法
影響確認方法と今後の対応
- Socketダッシュボード の Threat Intel → Campaigns や 公開キャンペーントラッカー で影響有無を確認可能
- Homebrew等の下流エコシステム も影響タグのロールバックを実施
- 全てのCI/CDパイプライン で該当タグの利用有無を点検し、 フルSHA指定 への切り替えが急務
まとめと教訓
- サプライチェーン攻撃の巧妙化 と タグ信頼性の限界 が浮き彫り
- 認証情報管理・ローテーションの徹底、 コミットSHAピン留め、 改ざん検知体制の強化 が必須
- Immutableバッジやタグ名だけでは完全性を保証できない ため、 最新のセキュリティガイドライン に従う重要性