2026年10月16日、ソフトウェアサプライチェーンの脅威を調査するOpenSourceMalwareは、GitHubを標的とする攻撃キャンペーン「GhostAction」で、新たに開発者のPCを狙うマルウェアが使われていると報告しました。66の所有者に属する94のリポジトリが対象として特定され、フォントファイルを装ったJavaScriptとVisual Studio Code(VS Code)のタスク設定を悪用して、クラウドや開発ツールの認証情報を盗み取ろうとしていました。
従来のGitHub Actionsを通じた認証情報窃取に加え、開発者端末へ定期実行の仕組みを残すことが今回の特徴です。リポジトリの改ざんが確認されても、端末上でマルウェアが実行されたとは限らず、VS Codeの信頼設定や自動タスクの許可状況によって影響が異なります。
GhostActionによる94リポジトリ改ざんのサマリー
- 2026年10月16日、OpenSourceMalwareがGhostActionの第2段階攻撃を公表しました。
- 94リポジトリ、66所有者を特定。取得して分析できた79リポジトリすべてに第2段階の不正ファイルが存在しました。
- 残る15リポジトリは削除・名称変更・非公開化などにより、同じ方法では内容を検証できていません。
- 攻撃者はGitHub Actionsの偽の監査ワークフローに加え、
.vscode/tasks.jsonとpublic/fonts/fa-solid-400.woff2を投入しました。 .woff2ファイルの実体はフォントではなく、38行のNode.js用JavaScriptでした。- 実行されるとAWS、GitHub、npm、PyPI、Kubernetes、SSH鍵、ClaudeやGeminiなどの認証情報を収集しようとします。
- macOS・Linuxなどcronが利用できる環境では、5分ごとに外部からスクリプトを取得して実行する設定を追加します。
- VS Codeでフォルダーを開いただけで必ず実行されるわけではなく、信頼済みワークスペースで自動タスクが許可されている必要があります。
- 先行段階のワークフローを削除した後、再び不正ファイルを投入されたリポジトリも確認されています。
| 項目 | 確認内容 |
|---|---|
| 攻撃キャンペーン | GhostAction(第2段階) |
| 調査公表日 | 2026年10月16日 |
| 対象 | GitHubリポジトリ94件、所有者66件 |
| 詳細解析できた件数 | 79リポジトリ(全件で第2段階の不正ファイルを確認) |
| 攻撃の入口 | 侵害されたGitHubアカウントを通じたリポジトリ改ざん。個々の認証情報取得経路は一律に特定されていません |
| 改ざんファイル | .vscode/tasks.json、public/fonts/fa-solid-400.woff2、GitHub Actionsワークフロー |
| 主なリスク | 開発者端末とCI/CD環境の認証情報窃取、外部コマンドの継続実行 |
| 認証情報の送信先として報告されたIP | 193[.]32[.]204[.]199(無害化表記) |
| 攻撃主体 | 特定されていません |
GitHub Actionsから開発者PCへ、GhostActionの攻撃が変化
GhostActionは2025年にGitGuardianが報告した、GitHub Actionsのワークフローへ悪意ある処理を追加してシークレットを盗む攻撃キャンペーンです。GitGuardianの2026年10月13日更新の調査では、10月8〜12日の波で3万件を超えるリポジトリが標的となり、約1,900のGitHubアカウントが侵害されたとしています。この3万件超は広範なキャンペーンの集計であり、今回第2段階の不正ファイルが確認された94件とは別の数字です。
10月8日には、侵害された開発者アカウントの書き込み権限を使い、多数のリポジトリにセキュリティ監査を装うGitHub Actionsの設定ファイルが追加されました。このワークフローはActionsのシークレットだけでなく、Gitの過去のコミット履歴も調べ、認証情報を外部に送る機能を備えていました。StepSecurityも同日、2アカウントから計345リポジトリへ短時間に不正なワークフローが追加された事例を分析しています。
OpenSourceMalwareの追跡によると、第2段階にあたるファイルの投入は10月14〜15日(UTC)に集中しました。10月15日に、フォントを装ったファイルとVS Codeのタスク設定などが多くのリポジトリに追加され、攻撃対象がGitHub上の実行環境だけでなく、ソースコードを扱う開発者端末に広がりました。
偽のフォントファイルをVS Codeの自動タスクで実行
第2段階で使用されたpublic/fonts/fa-solid-400.woff2は、一見するとWebサイトの表示に使うフォント資産ですが、実際にはNode.jsで実行できるJavaScriptコードでした。.woff2という拡張子はファイルの実体を保証しません。
同時に追加された.vscode/tasks.jsonには、eslint-checkと名付けたタスクが設定されていました。設定はフォルダーを開いた際の自動実行を要求し、タスクの出力を目立たなくするようになっています。開発者が不審なプログラムだと気づかずにワークスペースを信頼し、自動タスクを許可した場合、偽フォントに含まれるコードが実行される危険があります。
ただし、MicrosoftのVS Code公式文書では、自動タスクは信頼されていないワークスペースでは動作しないと説明されています。task.allowAutomaticTasksが無効で自動実行を許可していない場合、単にリポジトリをクローンしたりフォルダーを開いたりするだけで実行されたとは判断できません。
AWS・開発ツール・生成AIサービスの認証情報を狙う
OpenSourceMalwareが解析したコードは、ホームディレクトリに保存された認証情報ファイルや環境変数などを収集する動作を備えていました。収集対象にはAWSの認証情報、npm・PyPIの発行用トークン、Gitの資格情報、Kubernetesの設定、SSH秘密鍵、Claude・Geminiのログイン関連ファイルが含まれます。また、環境変数やローカルファイルからGitHubトークン、AIサービス関連のキーなどを探索します。
認証情報を盗まれた場合は、クラウド環境への不正アクセス、ソフトウェアパッケージの不正公開、別リポジトリへの改ざん拡大などにつながるおそれがあります。これらは攻撃コードの機能から想定されるリスクであり、各サービスで実際に不正利用が発生したことを示すものではありません。
さらに、cronを使える端末では、5分ごとに攻撃者側のサーバーからスクリプトを取得する定期処理を設置します。調査時点で取得先から実際に返される後続のコードは判明していません。リポジトリ内の不正ファイルを消しても、端末に作成された定期実行設定が残る場合があります。Windowsの標準的な環境では同じcron設定は作成されませんが、認証情報収集機能まで無効になるわけではありません。
先にワークフローを削除しても再び改ざんされた事例
OpenSourceMalwareは、10月9日に不正なGitHub Actionsワークフローを削除した2つのリポジトリに、10月15日になって第2段階のファイルが追加された事例を報告しています。ワークフローの削除だけでは、攻撃者が保持するGitHubのトークンや認可を失効させられません。
また、今回の第2段階は2026年初頭に確認された「PolinRider」の偽フォントを使う方式と似ていますが、OpenSourceMalwareは両者の攻撃基盤に共通する侵害指標を確認しておらず、同じ攻撃主体によるものとは判断していません。
GhostActionの侵害指標(IOC)と調査ポイント
| 種別 | 確認対象・指標 | 確認時の注意 |
|---|---|---|
| VS Codeタスク | .vscode/tasks.jsonにあるeslint-check、runOn: folderOpen |
ファイル名だけで断定せず、実行コマンドを調査 |
| 偽フォント | public/fonts/fa-solid-400.woff2 |
フォント形式を装ったJavaScriptがないか確認 |
| GitHub Actions | .github/workflows/security-audit.yml、lint.yml、ci-check.ymlなど |
同名の正規ワークフローもあるため内容を照合 |
| cronの痕跡 | #ghc2 |
macOS・Linuxなどで定期実行設定を確認 |
| 通信先IP | 193[.]32[.]204[.]199 |
GitHub Actionsや開発者端末からの通信履歴を照合 |
| 偽フォントのSHA-256(例1) | cb3842832267421b9563c7bd32d3582a8fff624860e57c2c9058966735d4da60 |
調査元が示した検体の一つ |
| 偽フォントのSHA-256(例2) | 61eca87b4b4c3e6248dc0fde25ff9cf28637798a8c4be172eaef9843252d12f6 |
複数の検体が存在するため単一ハッシュだけに依存しない |
| VS CodeタスクのSHA-256 | a043f03e89ef55779f4f630138cf5efe1dd37632e176c7a0d9bbfa989ba84eeb |
調査で確認された不正タスクの検体 |
侵害指標はOpenSourceMalwareが公表したものです。IPアドレスは誤アクセス防止のため一部を[.]に置き換えて記載しています。SIEMなどで照合する場合は、組織の管理下で適切な形式に変換してください。
開発部門・情報システム部門が実施したい対策
侵害が疑われるGitHubアカウントは、ファイル削除に先立って攻撃者のアクセスを遮断します。安全な端末からセッション、Personal Access Token、OAuth連携、GitHub App、SSH鍵、デプロイキーなどを調査し、不正な認可を取り消す必要があります。その後、書き込み権限のあるすべてのリポジトリを対象に、既定ブランチだけでなく過去のブランチやフォークも確認します。
GitHub Actionsで不正なワークフローが動いた可能性がある場合は、ワークフローから参照できたシークレットと過去のGit履歴に含まれる資格情報を洗い出し、無効化・再発行します。外部レジストリへの公開権限を持つトークンが含まれていれば、npm・PyPIなどの公開履歴にも不審な変更がないか確認します。
改ざんされたリポジトリをVS Codeで開いた開発者については、ワークスペースの信頼状態と自動タスクの許可状況を確認します。実行の可能性がある端末ではネットワークからの隔離を検討し、cron設定、不審なプロセス、認証情報へのアクセス履歴を調査します。認証情報の再発行は端末の封じ込め後、安全な環境から実施します。
予防面では、VS Codeのtask.allowAutomaticTasksを無効に保ち、提供元を確認していないリポジトリを安易に信頼しない運用が有効です。GitHubではワークフロー変更時のレビュー、権限の最小化、フィッシング耐性のある多要素認証などを組み合わせます。
ソフトウェアサプライチェーンの認証・公開経路の対策については、セキュリティ対策LabのGitHubがnpmサプライチェーン攻撃の防御を強化した際の解説でも紹介しています。
出典
- GhostAction Copycats PolinRider by Hiding a Stealer in a Fake Font File — OpenSourceMalware(2026年10月16日)
- GhostAction Returns: 772 Repos Hit, 30k More in Oct — GitGuardian(2026年10月7日、13日更新)
- GhostAction Returns: Malicious “Security Audit” Workflows Now Mine Credentials from Entire Git Histories — StepSecurity(2026年10月9日)
- Integrate with External Tools via Tasks — Visual Studio Code公式ドキュメント
- Workspace Trust — Visual Studio Code公式ドキュメント






