GitHub マルウェアキャンペーン: 10,000 のリポジトリがトロイの木馬マルウェアを配布

10,000 の GitHub リポジトリがトロイの木馬マルウェアを配布に使用

セキュリティ研究者は、約 10,000 のリポジトリが関与する大規模なマルウェア配布キャンペーンを GitHub 上で特定しました。これらのリポジトリはフォークではなく、既存プロジェクトの独立したクローンで、正規ソフトウェアを装ってユーザーを騙し、README ファイルにリンクされた zip アーカイブからトロイの木馬マルウェアをダウンロードさせるよう設計されています。

マルウェア配布パターン

このキャンペーンは、セキュリティ検知を回避し検索エンジン結果での可視性を高めるために洗練されたパターンを使用しています。特定された悪意あるリポジトリの特徴は次のとおりです:

  • クローンされたコンテンツ: 正規プロジェクトからすべてのコミットとコントリビュータをコピーし、信頼性と確立された印象を与える。
  • 頻繁なコミット上書き: 攻撃者は数時間ごとに同じコミットを削除してプッシュします。このコミットは通常、README.md ファイルを悪意ある zip アーカイブへのリンクに更新するだけです。
  • SEO 操作: 新規または低ボリュームのリポジトリをクローンし、人気タグに追加することで、これらの偽プロジェクトが検索エンジン(Bing など)や GitHub タグ検索の上位に表示されるようにします。
  • 一貫した命名: 多くの悪意あるコミットは「Update README.md」というタイトルです。

マルウェアペイロードの構成

各悪意ある zip アーカイブには通常、次の 4 つの特定ファイルが含まれます:

  1. Application.cmd または Launcher.cmd
  2. loader.exe または luajit.exe(または他の実行ファイル名)
  3. ランダムな名前の .cso または .txt ファイル
  4. lua51.dll

VirusTotal に直接リンクを送信すると検出がゼロになることがありますが、実際の zip ファイルを送信するとトロイの木馬が存在することが判明します。

検出手法

GitHub の API 制限が 1 時間あたり 5,000 リクエストであるため、研究者は gharchive を使用して GitHub イベントアーカイブをダウンロードしました。検出スクリプトは、24 時間ごとに 1 回から 24 回更新されたリポジトリをフィルタリングし、README のみが変更され、コミットがボットではなくユーザーによってプッシュされたものを対象としました。

このプロセスにより、5 日間で 1,600 万件のコミットプッシュが 40,000 件の候補リポジトリに絞り込まれ、最終的に正確に悪意あるパターンと一致する 10,000 件が特定されました。

技術分析と仮説

想定される目的

マルウェアの分析から、主な目的は暗号通貨の窃盗であることが示唆されています。VirusTotal の「Network Communication」ログを報告したコミュニティメンバーは、マルウェアが IP 情報取得のために GET リクエストを、Polygon RPC ノード(drpc)への POST リクエストを、攻撃者の C2 サーバーへの POST リクエストを行うことを指摘しています。

回避戦術

研究者は、頻繁なコミット上書きが GitHub のセキュリティアルゴリズムを回避する戦術であると仮定しています。偽のコントリビュータとコミット履歴を維持することで、攻撃者は正当性の外観を作り出し、ユーザーがコードを監査したりバイナリを検証したりする意欲を削ぎます。

コミュニティの洞察と反論

技術ユーザー間の議論では、GitHub を介したソフトウェア配布におけるいくつかのシステム的脆弱性が指摘されました:

"オープンソースソフトウェアはソースが公開されているから悪意あることはできないという原則はもはや通用しない…コードを検査する時間が誰にもないし、バイナリと一致しているか確認するのはなおさら難しい。"

他のユーザーは、これは単独の事例ではなく、以前の "SmartLoader" や "StealC" キャンペーンでも同様のクローン手法でマルウェアが配布されていたと指摘しています。また、Bing のような検索エンジンは、Google に比べてこれらのフィッシングやタイポスクワッティング結果が最初のページに表示されやすい可能性があると述べています。

現在の状況

調査結果の公開とリポジトリリストの共有後、GitHub は特定された悪意あるリポジトリの削除を開始しました。研究者は検出スクリプトと影響を受けたリポジトリの完全リストを、"Git Malware Finder" という公開 GitHub リポジトリで提供しています。

Sources