Attackers Hijack GitHub Desktop Repo to Spread Malware via Official Installer
2026/01/27 gbhackers — GitHub の fork アーキテクチャに内在する設計上の欠陥を悪用する脅威アクターが、正規の GitHub Desktop インストーラを装うマルウェアの配布を成功させている。この攻撃チェーンは、単純に見える極めて効果的な手法から始まる。攻撃者は使い捨ての GitHub アカウントを作成し、公式 GitHub Desktop リポジトリを fork する。その後に、README ファイル内のダウンロード・リンクを悪意のインストーラに差し替え、その変更を commit する。

この攻撃者は、公式リポジトリへの直接的な書き込み権限を一切有していないが、公式リポジトリの名前空間配下に当該 commit ハッシュを、”github.com/desktop/desktop/tree/<commit_hash>” として表示できてしまう点に注目すべきだ。
2025年9月から GMO Cybersecurity が継続的に追跡してきた、この攻撃は “repo squatting” と呼ばれる手法を用いるものである。公式リポジトリ名前空間下に存在するかのように、悪意の commit を見せかけることでユーザーを欺き、トロイの木馬化されたソフトウェアをダウンロードさせるインシデントである。
GitHub の セキュリティ・ドキュメント上で、この挙動は意図されたデザインとして記載されているが、結果として深刻な脆弱性を生み出している。攻撃者が fork やアカウントを削除した場合であっても、commit ハッシュはリポジトリ・ネットワーク 内に永続的に残存するため、完全なクリーンアップは極めて困難である。この GitHub の設計により、攻撃者は公式リポジトリ名前空間内に実質的に居座り、悪意のコンテンツ挿入を可能にしている。
この攻撃キャンペーンを拡散する脅威アクターは、検索エンジン上で GitHub Desktop を宣伝するスポンサー広告を利用した。これらの広告は、README のアンカーを悪用して悪意の commit に直接リンクし、GitHub が提供する警告表示を回避する形で、正規ツールを探している開発者を標的にするものである。
マルチステージ・ローダによる HijackLoader 配布
悪意のインストーラー “GitHubDesktopSetup-x64.exe (SHA256: e252bb114f5c…)” は、ファイル・サイズが 127.68 MB の .NET アプリケーションであり、高度なマルチステージ・ローダとして機能する。分析の結果として判明したのは、2025 年 5 月にまで遡る類似サンプルの存在であり、Chrome/Notion/1Password/Bitwarden などの、著名アプリケーションを装って配布されていたことである。

このローダは、複数の回避手法を実装している。特に注目すべきは、GPU ベースの API である OpenCL (Open Computing Language) を悪用し、GPU ドライバを備えていないサンドボックス環境や仮想環境において、動的解析を妨害している点である。マルウェアは意図的なコード・ミスディレクションを実装しており、復号鍵の静的解析を困難にすることで、物理 GPU を搭載した実機での解析を、研究者に強制する。
さらに GMO Cybersecurity は、OpenCL 実装内に意図的なバグが存在することを発見している。この実装では、引数が参照ではなく値渡しされるため、カーネル実行が失敗する設計となっている。
8 バイトの bundle header-offset は 0x7FAB159 に設定されていることから、このサンプルが単一ファイル・アプリケーションであることが確認されている。この bundle header-offset とシグネチャは、YARA を用いた関連サンプル探索において有効な識別子として活用できる。
このマルウェアの巧妙な手法により、”all-zero” の復号鍵が生成され、動的解析/静的解析の双方が無力化される結果となっている。つまり、リバース・エンジニアリング対策として、きわめて狡猾な性質を持つ。
ペイロード配布と永続化
このマルウェアが実行されると、正規に署名されたバイナリ Control-Binary32.exe/Qt5Network.dll/Qt5Core.dll と、悪意あるペイロードを含む暗号化アーカイブがダウンロードされる。最初に clGetPlatformIDs および clGetDeviceIDs が実行されるが、GeForce RTX 4090 のようなデバイス文字列は返されない。感染は DLL・サイドロード およびモジュール・ストンピング技法を用いて進行し、”vssapi.dll” にシェルコードを注入して HijackLoader を実行する。この HijackLoader は、過去に LummaC2 stealer などのコモディティ・マルウェアを配布していた既知のローダである。
永続化は、WinSvcUpd という スケジュール・タスク を通じて確立され、ユーザーのログオン時に自動実行される。PowerShell ステージャは、AppData/LocalAppData/ProgramData ディレクトリを対象にして、Microsoft Defender の除外設定を追加し、後続ペイロードの実行に対する検知を妨害する。 このキャンペーンは 2025年9月から 10月にかけて最も活発であったが、GitHub は 2025年9月9日の時点で、この脆弱性を認識していたことが確認されている。
2025年12月29日の時点でも、この手法は再現が可能であり、主に欧州のユーザーをマルバタイジングで狙っていたが、日本などの他地域でも感染が確認されている。 GMO Cybersecurity が推奨するのは、必ず公式 Releases ページからインストーラを取得すること、ならびに、スポンサー検索広告に対して最大限の注意を払うことである。
このキャンペーンが浮き彫りにするのは、開発者を標的とする攻撃が、信頼されたプラットフォームを悪用することで、高度なマルウェアを配布している実態である。現代の脅威環境における、サプライチェーン・セキュリティの重要性が示されている。
GitHub のインフラ設計を逆手に取り、公式リポジトリの一部であるかのように偽装してマルウェアを配布する、きわめて巧妙な攻撃が確認されています。この手法は、リポジトリ・スクワッティング (Repo Squatting) と呼ばれ、開発者が日常的に利用する GitHub URL への信頼を悪用するものです。
この攻撃の核となるのは、GitHubのリポジトリ・ネットワークの仕様です。 攻撃者は公式リポジトリを fork し、その README 内のリンクを悪意のものに書き換えます。GitHub の仕様上、fork 先で行われたコミットであっても、そのコミット・ハッシュ (ID) を公式リポジトリの URL の末尾に付けると、あたかも公式リポジトリ内のファイルであるかのように表示できてしまいます。
さらに恐ろしいことに、それらのアカウントや fork を攻撃者が削除しても、一度生成されたコミット・データは GitHub のネットワーク内にキャッシュとして残り続けるため、その URL にアクセスする被害者には、依然として悪意のコンテンツが表示されてしまいます。ご利用のチームは、ご注意ください。よろしければ、GitHub での検索結果も、ご参照ください。


You must be logged in to post a comment.