GitHub Repo Squatting攻撃: 公式URLを装うサプライチェーン攻撃
2025年9月頃から、GitHubの公式機能を逆手に取った新しいサプライチェーン攻撃が確認されている。公式リポジトリのURLに見えるリンクからマルウェアが配布されるというもので、GMO Cybersecurity by Ieraeが「Phantom Commit Injection」と命名して詳細な分析を公開した。
従来の「公式のGitHubリポジトリだから安心」という常識が通用しなくなる可能性がある、かなり厄介な攻撃だ。
攻撃手法の概要
Repo Squatting(リポジトリ占拠)と呼ばれるこの手法は、GitHubのフォーク機能とコミット表示の仕様を悪用する。
GitHubでは、フォーク元とフォーク先でコミットが内部的に共有される。これは開発者にとって便利な機能だが、攻撃者にとっても都合が良い。フォーク先で作成したコミットが、親リポジトリのURL形式でもアクセスできてしまうからだ。
技術的な仕組み
コミットの共有
GitHubのフォークは、ストレージ効率のためにコミットオブジェクトを共有している。
親リポジトリ: someone/my-project
フォーク: attacker/my-project
攻撃者がフォーク上で作成したコミット ea14e30 は、以下の両方のURLでアクセス可能になる。
github.com/attacker/my-project/commit/ea14e30(本来のURL)github.com/someone/my-project/commit/ea14e30(親リポジトリのURL)
攻撃の流れ
- 攻撃者が公式リポジトリをフォーク
- README.mdのダウンロードリンクを悪意あるURLに差し替えたコミットを作成
- そのコミットIDを含む公式風URLを生成
- Google広告やフィッシングで被害者を誘導
URLが github.com/desktop/desktop/tree/{commit_id} の形式になるため、一見すると公式リポジトリに見える。
実際の被害: GPUGateキャンペーン
2025年9月〜10月にかけて、GitHub Desktopを標的にした大規模なマルウェア配布キャンペーンが確認された。Arctic Wolfが「GPUGate」と命名したこの攻撃は、以下の特徴を持つ。
攻撃の詳細
| 項目 | 内容 |
|---|---|
| 標的 | 西ヨーロッパのIT企業(日本でも感染確認) |
| 配布手段 | Google広告 + 偽ドメイン(git-desktop[.]app等) |
| マルウェア | HijackLoader(Windows)、AMOS Stealer(macOS) |
| 特徴 | 128MBに肥大化したMSI、GPU(OpenCL)ベースの復号 |
解析妨害の工夫
配布されたマルウェアには巧妙な解析妨害が実装されていた。
- ファイルサイズの肥大化: 128MBのMSIファイルで自動解析を回避
- GPU依存の復号: OpenCLを使用してペイロードを復号。GPUがない環境(VM/サンドボックス)では動作しない
- 環境チェック: 仮想環境を検出すると処理を中断
セキュリティ研究者の解析を困難にする意図が明確だ。
GitHubの対応状況
GMO Cybersecurity by Ieraeは2025年9月9日にGitHubへ報告したが、2025年12月29日時点でもこの手法は再現可能な状態にある。
GitHubは「リポジトリに元々存在しないコミットへのリンクを開いた際に警告を表示する機能」を追加したが、根本的な対策には至っていない。フォーク間でコミットを共有する仕様はGitHubの設計に深く組み込まれており、簡単には変更できないと思われる。
関連する攻撃手法
GitHub関連のサプライチェーン攻撃は他にもある。
RepoJacking
ユーザーがアカウント名を変更または削除した後、元のユーザー名を取得してリポジトリを乗っ取る手法。AquaSecの調査によると、約900万のGitHubプロジェクトがこの攻撃に脆弱とされる。
Shadow Commit
削除したフォークからのコミットを使ってタグを作成する手法。監査ログに残らないため検出が困難。2025年3月のtj-actions/changed-files事件(Coinbaseが標的)で悪用された。
対策
開発者向け
- 公式Releasesページから直接ダウンロード: README内のリンクやコミットURLを信用しない
- GPG署名の検証: 可能であれば署名を確認する(ただしGitHubでは署名は任意)
- 依存関係のロックファイル使用: 直接のGitHub URLへの依存を避け、バージョンを固定する
一般ユーザー向け
- 検索広告に注意: 正規ドメインに見せかけた偽サイトへの誘導が多い
- ドメインを確認:
git-desktop.appとdesktop.github.comは全く別物
組織向け
- EDRの導入: HijackLoaderなどのローダー型マルウェアを検出
- ネットワーク監視: 既知のC2サーバーへの通信をブロック