概要
- 近年のオープンソースサプライチェーン攻撃は GitHub Actionsワークフロー の脆弱性に集中。
- pull_request_targetやissue_commentなどの 危険なトリガー が多用されている現状。
- キャッシュ汚染、タグの不変性欠如、過剰な権限 などが共通要因。
- セキュリティ対策は 一部オプトイン であり、デフォルトの安全性が不足。
- zizmor 等の外部ツール利用やワークフロー見直しが急務。
近年のオープンソースサプライチェーン攻撃の実態
- ほぼ全ての事例で .github/workflowsのYAMLファイル が攻撃の起点。
- UltralyticsによるPyPIへの 仮想通貨マイナー混入、nxパッケージの 資格情報窃取 化、tj-actions経由での 23,000リポジトリの秘密漏洩、Trivyの 短期間での二度の侵害、elementary-dataの コメント経由マルウェア公開 など、多様な攻撃例。
- 各事例で GitHub Actionsの仕様通りの挙動 が悪用。
- uses: 行 が毎回可変タグを解決することで、 依存性の固定や検証が困難。
- ワークフローの多くが プライベートCI前提の安全設計 のまま、公開リポジトリやフォークでも利用されている状況。
主なインシデントの流れと特徴
- 2024年11月のspotbugs事件
- pull_request_target トリガーで 信頼されないフォークのコード をビルド・実行。
- PAT流出 が後のtj-actions/changed-files侵害につながる。
- Ultralytics事件
- pull_request_targetで キャッシュ汚染、後続のリリースワークフローで マルウェア実行。
- tj-actions事件(2025年3月)
- mutableタグ を利用した 間接依存関係の乗っ取り。
- 23,000リポジトリが 秘密情報を漏洩。
- s1ngularity事件(nx)
- PRタイトルのテンプレート展開 経由で コードインジェクション、npmトークン悪用。
- Trivy事件
- pull_request_targetワークフローの 設定ミス で 複数回侵害。
- 過去バージョンのタグ書き換え による“安全なバージョン”の裏切り。
- elementary-data事件
- issue_commentトリガー、 $展開 による bash実行 で即座に PyPIへマルウェア公開。
共通する要因
- pull_request_target や issue_comment など、 未検証イベントでフル権限ワークフロー実行。
- シェルスクリプトの$展開 による 無検証テキスト挿入。
- GITHUB_TOKENのデフォルト権限 (2023年2月以前作成リポジトリはwrite)。
- アクションのバージョン管理がmutableなgit ref、タグ書き換えが容易。
- キャッシュの信頼境界を超えた共有。
GitHubの対応と課題
- セキュリティロードマップ 発表(2024年)
- ワークフローロックファイル、 pull_request_targetの禁止ポリシー、 ワークフロー単位のシークレットスコープ、 egressファイアウォール などを計画。
- すべて オプトイン、 公開まで数か月のプレビュー、 既存ワークフローの互換性重視。
- 既存の危険なデフォルト が温存されており、 長期的なリスク が継続。
効果的な対策
- zizmor 等の サードパーティ製リンター 活用。
- 4行程度のYAML追加で 危険なワークフローの自動検出。
- pull_request_targetやissue_commentの利用見直し、 明示的なpermissions:ブロック の設定。
- uses: のSHA固定、 外部アクションの信頼性検証。
- キャッシュの書き込み制御と信頼境界の明確化。
- 必要なら GitHub Actionsからの移行 も検討。
Trusted Publishingの現状とリスク
- PyPI, npm, RubyGems, crates.io等が OIDCベースのTrusted Publishing を採用。
- 長期APIトークンのリポジトリ内保存を避けられる利点。
- ワークフローの安全性がパッケージ配布の根幹に。
- GitHub Actionsの脆弱性がサプライチェーン全体のリスク へ直結。
- OIDC連携の大半がGitHub Actions 経由で実施されている現状。
今後の展望と提言
- セキュア・バイ・デフォルト な設計への転換が急務。
- オプトイン方式ではなく、危険なデフォルトの見直し が必要。
- 既存のワークフロー破壊を恐れず、安全性を最優先 する判断。
- 外部ツールによる監査・自動検出 と プラットフォーム自体の改善 の両輪推進が重要。