ハッカーが約5,000のGitHubアカウントを侵害しソフトウェア開発の秘密を盗む
2026年11月10日から始まった攻撃キャンペーンでは、ハッカーが4,837のGitHubアカウントの認証情報を使用し、61,764のリポジトリを調査しました。この攻撃により、少なくとも1,806のリポジトリから認証情報が流出したことが確認されています。攻撃者は、悪意のあるワークフローをリポジトリに注入し、継続的インテグレーションの資格情報を主に狙いました。特に、AWSやGoogle Cloud、Azureへのアクセスが危険にさらされる可能性があります。攻撃者は、GitHub Actionsの秘密や変数、ワークフロートークンを収集し、様々なエクスフィルトレーションメカニズムを使用しました。これにより、開発者の機密情報が漏洩するリスクが高まっています。
メトリクス
このニュースのスケール度合い
インパクト
予想外またはユニーク度
脅威に備える準備が必要な期間が時間的にどれだけ近いか
このニュースで行動が起きる/起こすべき度合い
主なポイント
- ✓ 攻撃者は、GitHubアカウントの認証情報を使用して、61,764のリポジトリを調査しました。
- ✓ 少なくとも1,806のリポジトリから認証情報が流出したことが確認されています。
社会的影響
- ! この攻撃は、ソフトウェア開発のセキュリティに対する信頼を損なう可能性があります。
- ! 開発者や企業は、機密情報の管理と保護に対する意識を高める必要があります。
編集長の意見
解説
約4,800件のGitHubアカウント侵害でCI/CD秘密が狙われ、クラウド鍵への横展開が現実化です
今日の深掘りポイント
- 攻撃は「開発者アカウント」から始まり、「CI/CDの秘密」へと直結するアイデンティティ平面の侵害です。ソースコードより先に資格情報を奪い、クラウド環境へ横展開する設計です。
- 悪性ワークフロー注入は、GitHub Actionsの既定権限やトリガー設計の“フットガン”を突く定番手口です。特にpull_request系トリガーの扱いとGITHUB_TOKENの権限設定が焦点です。
- 下流影響はパッケージ配布系(npm/Go等)に波及し得ます。少数のメンテナが持つ公開権限が「一対多」の爆発半径を生みます。
- 組織は「トークンの全面ローテーション」「Actionsの既定権限をreadに」「環境保護+OIDCの絞り込み」「pull_request_targetの再点検」を初動とすべきです。
- ログは遅行指標です。検知偏重では漏れます。回復可能性(リカバリ容易な短命鍵・再署名可能なビルド・環境ゲートの人手承認)を先に整えるのが現実解です。
はじめに
開発プラットフォームは今や最前線の攻撃面です。今回報じられた一連の攻撃は、GitHubアカウントの乗っ取りを皮切りに、悪意のあるワークフローを注入してCI/CDの秘密やトークンを吸い上げ、AWS・Google Cloud・Azureなどのクラウド鍵に迫る流れを持つものです。サプライチェーンの上流(開発者)から下流(配布・運用)へ、認証情報を媒介に一気に駆け上がるため、検出が一歩遅れるだけで被害が指数的に広がります。現場は「いますぐの止血」と「構造的な再発防止」を同時に走らせる必要があります。
深掘り詳細
事実関係(確認済み)
-
2026年11月10日以降、攻撃者は少なくとも4,837件のGitHubアカウント認証情報を用いて、61,764件のリポジトリを探索しています。少なくとも1,806リポジトリから秘密情報の流出が確認されています。主標的はGitHub Actionsの秘密・変数・ワークフロートークンなどCI/CD関連の資格情報です。AWS・Google Cloud・Azureへのアクセスが危険に晒された可能性が指摘されています。また、少なくとも50ユーザーがnpmやGo等のパッケージ公開者であり、下流供給への影響が懸念されます(報道に基づく事実)です。
-
攻撃は「通常のドキュメント変更を装うPR」や「悪性ワークフロー注入」によって、秘密・変数・ワークフロートークンを収集し、複数の経路で外部へ送出(エクスフィルトレーション)する手口が観測されています(報道)です。
インサイト(編集部の考察)
- 本件の本質は「開発者アイデンティティの侵害」が「CI/CD平面の横展開」を招き、さらに「クラウド制御プレーンの乗っ取り」へ到達し得る三段跳びの設計にあります。開発アカウントの認証情報を得た攻撃者は、コード改ざんだけでなく、より即金性の高い「秘密情報の収穫」に向かいます。異常が検出される前にクラウド短命トークンの発行や長命鍵の窃取を済ませるのが合理的だからです。
- 悪性ワークフロー注入は、次の“フットガン”が重なると致命的になります(以下は一般的リスクの指摘であり、本件での個別適用は仮説です)。
- pull_request_targetの誤用により、外部PR起因でベースリポジトリの権限・秘密が露出する設計になっていること(仮説)です。
- GITHUB_TOKENの既定権限がwriteのままで、ブランチ保護や環境保護のゲートが薄いことです。
- OIDC(id-token: write)の付与範囲が広く、クレーム制約(sub, aud, repository, environment等)や環境レビューが甘いことです。
- 少数のパッケージメンテナが持つ公開権限は「ハブ・スポーク」の軸です。1人の認証情報流出が複数パッケージの改ざん機会に転化し、さらに下流のCI/CDで「信頼済み依存」として自動実行される負の連鎖を生みます。検知アプローチだけでは遅く、公開フロー自体を人手承認・再署名・短命権限で包む“構造的鈍化”が不可欠です。
脅威シナリオと影響
以下はMITRE ATT&CKに沿った仮説シナリオです。個別環境での再現性は設定依存のため、監査で実証してください。
-
シナリオ1:盗難認証情報からのリポジトリ乗っ取りと秘密吸い上げ
- 初期侵入: 有効アカウント悪用(T1078)です。
- 実行: ランナー上でのスクリプト実行(T1059)です。
- 資格情報アクセス: 未保護の資格情報(T1552、例: ActionsのSecrets/Variables、ワークフロートークン)です。
- 発見回避: 難読化/圧縮(T1027)です。
- 流出: Webサービス経由のエクスフィルトレーション(T1567)です。
- 影響: クラウドAPI鍵・OIDCトークンの窃取を通じ、S3/GCS/Blob等へのデータアクセスやIAM権限昇格に波及します。
-
シナリオ2:PRワークフローの設計不備を用いたSecretsの露出(仮説)
- 初期侵入: 信頼関係の悪用(T1199)やPRを用いたソーシャル手口(T1566の文脈)です。
- 実行: pull_request_target等の誤設計ワークフローで攻撃者コードがベース権限で走行(T1059)です。
- 資格情報アクセス: 未保護の資格情報(T1552)です。
- 流出: Webサービス経由のエクスフィルトレーション(T1567)です。
- 影響: リポジトリ・組織シークレットや環境用デプロイ鍵の流出により、次のビルドやデプロイで改ざんのチャンスが生じます。
-
シナリオ3:配布エコシステムへのサプライチェーン汚染(npm/Go)
- 初期アクセス: サプライチェーン妥協(T1195)です。
- 永続化/権限維持: アカウント操作(T1098、例: 新規トークン/デプロイキーの追加)です。
- 影響: パッケージの悪性リリース、署名/プロベナンスの偽装(T1553の文脈)を通じ、下流CIでの自動実行を誘発します。
- 事業インパクト: 顧客環境でのデータ流出・暗号資産窃取・ランサム展開など、被害の外部化が加速します。
セキュリティ担当者のアクション
優先度順に「止血→縮退運転→構造改革」で並べます。すべて“期限付きで完了”を宣言できる粒度に落とし込むことが肝要です。
-
0〜24時間(止血)
- GitHubトークン・PAT・デプロイキー・GitHub Appトークンを全件ローテーションします。組織/リポジトリ/環境Secretsも含め棚卸しと無効化を進めます。
- クラウド側の長命鍵(AWS Access Key、GCP SA鍵、Azure App登録のClient Secret/証明書)を棚卸しし、無効化→再発行→最小権限で再配線します。直近30日以内に使用された鍵から優先します。
- GitHub Actionsの既定権限を組織/リポジトリで「GITHUB_TOKEN: read-only」に強制し、必要Jobのみ明示的にwriteを付与します。
- 直近7日間のActions実行履歴を全件レビューし、未知ドメインへのcurl/wget、環境変数/Secretsの列挙、base64やOpenSSLによる難読化といった不審ステップを隔離します。
- 異常ログイン・新規トークン発行・ブランチ保護無効化・ワークフロー変更の監査ログを横断確認し、影響リポジトリをリスト化します。
-
24〜72時間(縮退運転)
- pull_request_targetの全面点検を行い、ベース権限で外部PRのコードをcheckout/実行していないかを確認します。該当すれば一旦無効化か権限をreadに絞ります。
- OIDCのid-token付与はデフォルト無効とし、必要ジョブに限定して付与します。クレーム(sub, repository, ref, environment)に強い条件を課し、環境保護(required reviewers)で本番秘密への到達に人手ゲートを設けます。
- 外部アクションの許可範囲を「GitHub公式+検証済み出版社」へ制限し、SHAピン留めを徹底します。
- パッケージ公開(npm/Go等)は一時的に人手承認と多要素必須にし、過去数リリースの差分・依存・ポストインストールスクリプトを重点監査します。
-
7〜30日(構造改革)
- 長命クラウド鍵を撤廃し、OIDC+短命STSへの移行を完了します。GitHub OIDCのSubject制約と環境保護で「誰が・どこから・何に」デプロイできるかを明文化します。
- ビルドの再現性と署名を導入し、改ざん時に「再ビルド・再署名・再配布」で巻き戻せる設計にします。公開前に人手承認と二者分離を仕組み化します。
- ブランチ保護(強制レビュー、ステータスチェック必須、管理者例外なし)とワークフロー変更時の強制レビューを組織ポリシーで固定します。
- 開発者端末の秘密管理を強化し、ブラウザ保存トークン/PATの棚卸し、SSHエージェントのロック、クリップボード/シェル履歴の取り扱いを再教育します。2FAは全ユーザー強制にし、リカバリコードの安全保管を徹底します。
- 検知とインテリジェンス: “不審なActions実行”と“新規トークン発行”の相関検知、未知の国・ASNからのトークン使用、短時間に多数のリポジトリを横断するAPI呼び出しを高優先でアラート化します。
参考情報
編集後記 インシデントの数字は目を引きますが、真に怖いのは“設計の癖”です。開発の快適さを保つために緩めたネジが、CI/CDからクラウドへ一直線に通じていた——そんな組織は少なくないはずです。良いニュースは、直せることです。権限をデフォルトで絞り、秘密を短命化し、人が要所で頷かない限り本番に届かないようにする。手触りのある対策を積み上げれば、供給網全体の信頼は必ず回復します。今日の止血を、明日の強さにつなげていきたいです。
背景情報
- i GitHubはソフトウェア開発者にとって重要なプラットフォームであり、攻撃者はこのプラットフォームを利用して機密情報を盗むことを狙っています。攻撃は、通常のドキュメント変更を装ったプルリクエストから始まり、リポジトリへの書き込みアクセスを試みる手法が用いられました。
- i 攻撃者は、悪意のあるスクリプトを使用して、GitHub Actionsの秘密や変数を収集し、AWSやAzureなどのクラウドサービスへのアクセスを危険にさらすことができます。これにより、開発者の機密情報が漏洩するリスクが高まります。