
2026/06/18 20:45
トロージャンマルウェアの配布用に 1 万カ所の GitHub リポジトリを発見しました
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
数値のニュアンス、具体的なファイル形式、および著者がツールをリリースする能動的な役割に関する微妙な点を捉えるために、改善されたバージョンの使用が推奨されます。
改善されたサマリー:
2026 年 6 月時点での GitHub マルウェア分散に関する故事への最近の更新は、フォークではなく新しいリポジトリを利用してトロイの木馬マルウェアを分散させる高度なキャンペーンを明らかにしています。攻撃者は明確なパターンに従います:独自の名称とコントリビューターを持つリポジトリを作成し、合法的なプロジェクトからコミット履歴を複製して元の履歴を消去し、README に悪意のある ZIP アーカイブへのリンクで置換します。これらのアーカイブは特定の可执行ファイル(例:
Application.cmd、Launcher.cmd、loader.exe)およびランダムな DLL を含んでおり、特に VirusTotal の直接リンクスキャンでは通常クリーンな結果が返される一方、アーカイブファイル自体をスキャンするとトロイの木馬が検出されます。以前の調査では、日間のリポジトリ更新の約 10% が数ヶ月または数年間継続する悪意ある脅威であることが特定されましたが、GitHub の手動報告プロセスは当初、応答期間が週間単位に及ぶため非効率的でした。この問題を解決するために著者は「Git Malware Finder」というスクリプトをリリースし、特定されたリポジトリの完全なリストを公開しました。最近、GitHub はこのツールでフラグ付けされたリポジトリを自動的に削除し始めており、既知のケースの大部分を排除しています。ただし、なぜ検出が現在主に新しいリポジトリに限られているか、キャンペーンの実際の規模と確認された一致との違い、そして検索インデックスおよび検出アルゴリズムから回避するために使用される具体的な戦術についてはまだ未解明な点が残っています。本文
GitHub 上に存在するトロイの木馬型マルウェア配布リポジトリ 1 万件の発見と分析
はじめに
2026 年 6 月 18 日、著者は GitHub 上に少なくとも 1 万件の悪意あるリポジトリが存在していることを確認しました。これらには以下の共通特徴があります:
- トロイの木馬型マルウェア配布サイトである
- 複数の異なる発信者によって作成されている
- 一意の名称を持つ独自のリポジトリ(フォークではない)
- 共通する悪意あるパターンを示しており、検出スクリプトの開発が可能であった
発見の経緯と初期対応
きっかけとなった出来事
プロジェクト名を Google で検索した際、自分のリポジトリが表示されました。一方、Bing で同じ照会を実行すると、別人によって作成された同名かつ同内容のリポジトリが見つかりました。
- そのリポジトリには元のすべてのコミット内容がコピーされており、著者がコントリビューターとしてリストされています
- 1 時間後には新しいコミットが追加され、
ファイルに ZIP アーカイブへのリンクが含まれるようになりましたREADME.md
悪意ある行動パターン
追跡調査により、以下の循環的な行動様式が明らかになりました:
- 数時間ごとに前のコミットを削除する
- ZIP アーカイブへのリンクを追加した変更内容だけを再プッシュ(再アップロード)する
初期対応の結果
GitHub サポートチームやフォーラムへ報告しましたが、即時の対応はありませんでした。約 1 ヶ月後に削除完了の確認メールが届きました。現在も同様の活動が続いているリポジトリの例は以下の通りです:
- https://github.com/lucasheriq4374/welink
- https://github.com/lucioloprey/OcyShield-Framework
- https://github.com/luigi1973/AssetRipper-CLI
マルウェアの内容分析
配布される ZIP アーカイブには通常、以下の 4 ファイルが含まれています:
またはApplication.cmd
(起動スクリプト)Launcher.cmd
,loader.exe
など(実行ファイル)luajit.exe
またはrandom_name.cso
(ランダム名付けのファイル)random_name.txtlua51.dll
検出特性:
- ZIP アーカイブへのリンクを VirusTotal に提出すると、ウイルス検出結果は 0
- ZIP ファイルそのものを分析すると、内部にトロイの木馬が検出される
検出スクリプトの開発プロセス
検索パターンの特定
マルウェア配布リポジトリの特徴的な指標は以下の通りです:
- 数時間ごとに前回のコミットを削除し、新しいものをプッシュする
- コミットで更新されるのは
ファイルのみREADME.md
に ZIP アーカイブへのリンクが含まれているREADME.md- コミット内容は別のリポジトリからコピーされている
- 新規リポジトリであり、フォークではない
- 異なるコントリビューターと名称が割り当てられている
検索の最適化戦略
全 5 億のリポジトリを逐一分析することは不可能(API リクエスト制限:時あたり 5,000)であるため、以下の戦略をとりました。
使用ツール:
gharchive(特定の日付以降の GitHub イベントデータをダウンロード)
- 直近数日のイベントアーカイブをダウンロード
- コミットプッシュイベントのみをフィルタリング
- 10 時間ごとに 2〜10 回更新されたリポジトリを特定
初期フィルタリングの結果
- 過去 5 日間のコミットプッシュ総数:1,600 万件
- 頻繁に更新されていたリポジトリ:3,000 件(ただし、どのファイルが変更されたかという詳細情報不足)
フィルタ条件の精査と訂正
スクリプトを実行後、初期の結果に対するフィルタ条件を追加しました:
- コミット実行ユーザーがボットではないこと
- 最後のコミットと前回のコミットの間に少なくとも 1 ヶ月以上の間隔があること
- リポジトリに少なくとも 2 人以上のコントリビューターがいること
問題点の発見: 上記条件を適用した結果、一致したのはわずか 14 件。しかし、後ほど確認すると、これら 14 件のすべてはたった 20 時間前に更新されていたことが判明しました。
- 「数時間ごとに更新」という条件が誤りであり、間隔の長い更新を有するリポジトリがフィルタリングされていた
最終的な分析結果
フィルタ条件を見直し、「24 時間ごとに 1〜24 回更新されたリポジトリ」を検索対象に変更しました。
- 候補数: 40,000 件
- 完全一致するマルウェアパターン: 10,000 件
これはフィルタリング対象全体の 25% に相当します。これら 10,000 件のリポジトリは:
- トロイの木馬を含む ZIP アーカイブを配布している
- 数ヶ月〜1 年以上も存在していた
- GitHub が自動的に検出・削除を行わなかった
著者はこれらの情報を公開し、検出スクリプトを Git Malware Finder として提供しています。
未解決の問題点
以下の点は依然として不明瞭です:
- なぜ新規リポジトリだけをクローンするのか?
- なぜ数時間ごとにコミットを削除して再プッシュするのか?
- GitHub が自動検出・削除を行わない理由は何か?
- アーカイブから抽出される実行ファイルが実際に何を破壊しているのか?
- このキャンペーンの実態規模はどの程度なのか?
著者の仮説
著者は以下の 3 つの仮説を立てています:
-
システム脆弱性の理解
- ゴールはシステムの仕組みを理解し、制限や脆弱性を発見・悪用すること
- コミットの書き換えによって GitHub のセキュリティアルゴリズムを回避する
-
ウイルスの拡散戦略
- 新規リポジトリのみを対象とするのは、低検索ボリュームのキーワードに対し検索上位を表示するため
- 人気の GitHub タグにも登録することでインデックス化と可視性を高めている
-
信頼構築(偽装)
- 全てのコミットとコントリビューターをコピーすることで「公式」「本物」に見せる
- コントリビュータープロフィール(コミット履歴)を確認可能なため、短期間ユーザーではないように見せかけ
- 「昨日にはまだ存在しなかった」という実績を示して GitHub の検知アルゴリズムを回避する
注意: これらはあくまで仮説であり、実際の事情とは異なる可能性があります。
おわりに
GitHub API のリクエスト制限(時あたり 5,000)の影響により、著者はスクリプトを最適化しましたが、全マルウェアリポジトリのわずかな割合しか発見できていないと推測しています。
- GitHub チームにはそのような技術的制限は存在しないはずであり、全 5 億のリポジトリを分析し、アーカイブや実行ファイルを特定してウイルススキャンを実施可能です。
- 今回は規模が大きすぎるため、GitHub への直接リクエストは控えています。
本記事に興味を持たれる方は、以下のアップデートをご確認ください。
アップデート情報
-
アップデート 1:
- 4 月 18 日付けの記事「How 109 Fake GitHub Repositories Delivered SmartLoader and Steal C.」を発見。
- 著者は当時にすでに109 件のリポジトリを発見しており、マルウェアの動作詳細が説明されていました。
-
アップデート 2:
- GitHub はスクリプトで発見されたすべてのリポジトリの削除を開始しています。
- これらのリポジトリの多くは現在既に削除されています。
-
アップデート 3:
- Reddit にある投稿(2025 年 2 月付け、約 1 年半前)でこのスキームについて言及されていました。
- 当時の記述:「新しいリポジトリを作成している場合、それらはマルウェアをホストするために偽装されている」
著者は全ての最新情報・メモを Telegram、Bluesky、X で公開しています。