GitHubの5,561リポジトリが6時間で侵害-SafeDepが自動化 サプライチェーン攻撃「Megalodon」を公開

セキュリティニュース

投稿日時: 更新日時:

GitHubの5,561リポジトリが6時間で侵害-SafeDepが自動化 サプライチェーン攻撃「Megalodon」を公開

サプライチェーンセキュリティ企業SafeDepは2026年5月21日、同月18日に発生した大規模な自動化GitHubリポジトリ侵害キャンペーン「Megalodon(メガロドン)」の詳細調査報告書を公開しました。

同キャンペーンでは2026年5月18日の約6時間(UTC 11:36〜17:48頃)の間に、5,561のGitHubリポジトリに対して5,718件の悪性コミットが自動的に注入されました。攻撃者はCI/CDに見せかけた偽の自動化アカウントを使用し、GitHub Actionsワークフローにbase64エンコードされた認証情報窃取ペイロードを埋め込みました。窃取対象にはAWS・GCP・Azure等のクラウド認証情報・SSH秘密鍵・OIDCトークン・GitHubトークン等の30以上の秘密情報が含まれています。

特に深刻なのは、オープンソースのライブチャット・チャットボットプラットフォームを手がけるTiledeskの9つのリポジトリが侵害され、正規のメンテナーが感染に気づかないままnpmに感染版(@tiledesk/tiledesk-server 2.18.6〜2.18.12)を7版にわたって公開してしまった点です。

この記事のサマリー

  • 攻撃名称:Megalodon(メガロドン)
  • 発生日時:2026年5月18日 UTC 11:36〜17:48(約6時間)
  • 規模:5,561リポジトリへの5,718件の悪性コミット
  • C2サーバー216[.]126[.]225[.]129:8443(defanged表記)
  • 攻撃の手口:使い捨てのGitHubアカウントと偽造したCI自動化ボット名を使用し、GitHub Actionsワークフローに認証情報窃取ペイロードを注入。PRなし・直接pushで発覚を回避。
  • 2種類のペイロード変種:①SysDiag(大量変種):全pushおよびPRで自動実行される新規ワークフローを追加。②Optimize-Build(標的型変種):既存ワークフローをworkflow_dispatch(手動トリガー)型に置換し、GitHub API経由で任意のタイミングで起動可能なドアマンバックドアを設置。
  • 窃取対象:AWS・GCP・Azure認証情報・SSH秘密鍵・OIDCトークン・GitHub/GitLab/Bitbucketトークン・Kubernetesコンフィグ・Vaultトークン・Terraform認証情報・.envファイル・30以上のシークレットパターン等。
  • Tiledeskへの連鎖被害:9リポジトリが侵害され、正規メンテナーがnpmに感染版@tiledesk/tiledesk-server(バージョン2.18.6〜2.18.12)を7版公開してしまった。
  • GitHubのTeamPCPによる同時期の内部侵害との関係:同日前後にTeamPCPがGitHub社内リポジトリ3,800件を侵害したことを主張しており(当サイトの記事参照)、GitHubの開発者エコシステムを標的とした攻撃が複数同時進行した状況。ただし両者は別個の独立した攻撃とみられる。
  • IoC(侵害の痕跡):後述のIndicators of Compromiseセクション参照。
  • 即時対応:2026年5月18日に[email protected]または[email protected]からのコミットが確認された場合は即時に変更を取り消し、クラウド認証情報・SSH鍵・トークン類をすべてローテーションする。

SafeDepによる発見の経緯—Tiledeskの感染版npmパッケージが発端

SafeDepがMegalodonキャンペーンを発見したのは、同社のマルウェア解析エンジン「Malysis」が@tiledesk/tiledesk-serverの最新版にGitHub Actionsワークフローファイル内のbase64エンコードされたbashペイロードを検出したことがきっかけでした。

Tiledeskは2019年から公開されているオープンソースのライブチャット・チャットボットプラットフォームです。6人のnpmメンテナーが維持する正規の信頼性の高いパッケージです。2.18.52.18.12の差分を比較すると、変更されたのは1ファイルのみでした。既存のDockerビルドワークフロー(.github/workflows/docker-community-worker-push-latest.yml)が、set +e; echo "..." | base64 -d | bashの1行で構成される「Optimize-Build」という名称のワークフローに丸ごと置き換えられていました。アプリケーションコード自体は無変更でした。

SafeDepはTiledeskの悪性コミット(acac5a9)を追跡することで、同一の攻撃者メールアドレスから他のリポジトリへも同様のコミットが行われていることを発見し、キャンペーン全体の規模を把握するに至りました。

攻撃の全容——6時間で5,561リポジトリを自動侵害

使い捨てアカウントによる痕跡隠滅

攻撃者はrkb8el9rbhlru9nrlo6wt4t6といったランダムな8文字のユーザー名を持つ使い捨てのGitHubアカウントを使用しました。Gitのauthor設定を偽造してCI自動化ボットに見せかけた人物名(build-botauto-cici-botpipeline-bot)とメールアドレスで偽装し、通常のCI保守作業を模倣した7種類のコミットメッセージを使い回しました。

侵害に使用された認証情報は、窃取されたPAT(Personal Access Token)またはデプロイキーと推定されます。プルリクエストも承認プロセスも経ず、master/mainブランチへ直接pushされているため、通常のPRベースのセキュリティレビューでは検出できません。GitHubのAPIでauthor・committerのユーザーフィールドがいずれもnullを返すことも、関連アカウントの特定を困難にしています。

2種類のペイロード変種

①SysDiag(大量変種)として、.github/workflows/ci.ymlという新規ワークフローファイルを追加します。on: push(全ブランチ)およびon: pull_request_targetイベントでトリガーされ、開発者がコードを更新するたびに自動実行されます。広範なリポジトリへの大量感染を目的とした変種です。

②Optimize-Build(標的型変種)として、既存のワークフローファイルをworkflow_dispatchトリガー型に丸ごと置換します。workflow_dispatchは外部からGitHub API経由で手動起動できるトリガーであり、通常は動作せず警告も発しないドアマン型バックドアとして機能します。攻撃者が任意のタイミングでGitHub APIを使ってリモートから起動することができます。Tiledeskへの侵害はこの標的型変種が使われた事例です。

両変種ともにid-token: writeactions: readの権限を要求します。id-token: writeOIDCトークンの取得に必要な権限であり、クラウドプロバイダーへのアイデンティティ偽装に直結します。

窃取対象の認証情報——AWSからOIDCトークンまで

base64デコードされた111行のbashスクリプトが実行されると、以下の情報をC2サーバー(216[.]126[.]225[.]129:8443)に送信します。

CI環境変数として、全CI環境変数・/proc/*/environ・PID 1のenvironmentを取得します。AWS認証情報として、全プロファイルのアクセスキー・シークレットキー・セッショントークンをaws CLI経由で取得、さらにAWS IMDSv2エンドポイントからインスタンスロールの認証情報を取得します。GCP認証情報として、gcloud auth print-access-token経由でアクセストークンを取得し、GCPメタデータエンドポイントへもクエリします。Azure認証情報として、Azure IMDSエンドポイントへクエリします。開発インフラ認証情報として、SSH秘密鍵・Docker認証情報(.docker/config.json)・.npmrc.netrc・Kubernetesコンフィグ(~/.kube/config)・Vaultトークン・Terraform認証情報・シェルヒストリーを取得します。ソースコードの秘密情報として、ワークスペースと共通サーバーパスに対してAPIキー・データベース接続文字列・JWT・PEM秘密鍵・クラウドトークン等の30以上の正規表現パターンでgrepスキャンを実行。.envファイル・credentials.jsonservice-account.json等も対象です。

特に危険なのが、GitHub ActionsのOIDCトークンの窃取です。OIDCトークンリクエストURLとトークンを窃取することで、攻撃者は連携しているクラウド環境において正規のGitHub Actionsワークフローとして偽装できます。OIDCを使用したパスワードレスなクラウド認証(AWS・GCP・Azureのいずれも)が突破される可能性があります。

Tiledeskへの連鎖被害——正規メンテナーが気づかず感染版を7版npmに公開

Megalodonキャンペーンの最も深刻な被害例がTiledeskです。攻撃者はTiledeskの9つのGitHubリポジトリ(tiledesk-servertiledesk-dashboardtiledesk-telegram-connectortiledesk-llmtiledesk-docker-proxytiledesk-community-apptiledesk-campaign-dahboardtiledesk-helpcenter-templatetiledesk-ai)を侵害しました。

重要なのは、攻撃者はTiledeskのnpmアカウントには一切触れていない点です。攻撃者はGitHubリポジトリのみを侵害し、その後は何もしていません。正規のメンテナー(eljohnnyアカウント)が感染したソースから通常業務としてパッケージを公開したことで、5月19日から21日にかけて@tiledesk/tiledesk-serverのバージョン2.18.6〜2.18.12(計7版)がnpmに公開されてしまいました。

このパターンは今回のセッションで既に報じたShai-Hulud系npmサプライチェーン攻撃と本質的に同様であり、「GitHubリポジトリの侵害 → 正規メンテナーによる感染版パッケージの無意識の公開」という連鎖がサプライチェーン攻撃の最も危険なパターンの一つであることを改めて示しています。

SafeDepの報告書執筆時点(2026年5月21日)において、悪性コミット(acac5a9)はTiledeskのmasterブランチ上に残存していることが確認されています。

同時期のGitHub侵害との関係

今回の攻撃と前後して、TeamPCPが毒入りVS Code拡張機能でGitHub社員の端末を侵害し、社内の約3,800リポジトリに不正アクセスしたことをGitHubが公式に確認しています(当サイトの続報記事参照)。

MegalodonはGitHubのプラットフォームを通じた公開リポジトリの大量自動侵害を目的とする独立したキャンペーンであり、TeamPCPによるGitHub社内インフラへの標的型侵害とは別個のものと分析されています。ただし、両者が同時期(2026年5月18日前後)に発生しているという事実は、GitHubの開発者エコシステム全体が複数の独立した脅威アクターから同時に標的にされているという深刻な状況を示しています。

Indicators of Compromise(侵害の痕跡)

以下の情報を参照し、自社の環境での侵害を確認してください。

IoC種別
C2サーバー hxxp://216[.]126[.]225[.]129:8443
キャンペーン名 megalodon
攻撃者メールアドレス build-bot[.]github[at]outlook[.]comauto-ci[.]github[at]outlook[.]com
偽装author名 build-botauto-cici-botpipeline-bot
コミットメッセージ “ci: add build optimization step” / “build: improve ci performance” / “chore: optimize pipeline runtime” / “chore: sync ci configuration” / “chore: update ci/cd pipeline” / “ci: update build config” / “fix: correct build workflow”
大量変種ワークフロー名 SysDiag(ファイル:.github/workflows/ci.yml
標的型変種ワークフロー名 Optimize-Build(既存ワークフローを置換)
要求パーミッション id-token: writeactions: read
感染npmパッケージ @tiledesk/tiledesk-server バージョン2.18.6〜2.18.12
Tiledesk悪性コミット acac5a9

確認・対応すべき事項

即時確認事項として、2026年5月18日前後のGitHubリポジトリのコミットログを確認し、上記の偽装author名・メールアドレス・コミットメッセージに一致するコミットがないかを確認してください。

感染コミットが確認された場合の対応として、感染コミット以前の安全なコミットへ即時にリセット・リバートしてください。CI/CD環境で使用しているすべてのクラウド認証情報(AWS・GCP・Azure)・SSH秘密鍵・OIDCトークン・GitHub PAT・npmトークンをローテーションしてください。同一リポジトリから公開したnpmパッケージが感染版を含む場合は、npmからdeprecateまたはunpublishし、利用者に通知してください。

GitHub Actionsワークフローの定期的なレビューとして、workflow_dispatchトリガーのみを持つワークフローが不審なコードを含んでいないかを確認してください。id-token: writeパーミッションを要求するワークフローは特に精査が必要です。

npmパッケージ利用者への注意として、@tiledesk/tiledesk-serverバージョン2.18.6〜2.18.12を利用している場合は即時に2.18.5以前の安全なバージョンへダウングレードし、CI/CD環境の認証情報をローテーションしてください。


参考情報(1次ソース)