2026年5月、X(Twitter)上でちょっとした騒動が起きた。GMOインターネットグループの熊谷正寿社長が「【危険】GitHub経由で感染します」と投稿し、マネーフォワードの事例を引用した。これに対し、GMOグループ内のセキュリティ会社に所属する社員が「代表一、間違ってますよー💦」と公開訂正したのだ。
これを見た人たちからは「GMOグループ全体での統制取れてないのかな」という声も上がった。しかし技術的な観点では、この訂正は完全に正しい。この一件を通じて、混同されやすい2つのセキュリティ脅威の違いを整理してみたい。
何が起きたのか
2026年5月1日、マネーフォワードが「GitHubへの不正アクセス発生に関するお知らせ」を公表した。同社が開発・運用に使用するGitHubの認証情報が漏洩し、第三者がリポジトリにアクセス、一部ソースコードがコピーされたとのことだった。マネーフォワード ビジネスカード利用者370件分の情報(カード保持者名のアルファベット表記とカード番号下4桁)も流出した可能性があり、銀行口座連携機能を一時停止する事態となった。
一方、2026年3月には「GlassWorm」と呼ばれる大規模なサプライチェーン攻撃が話題になっていた。不可視のUnicode文字を使ってGitHubリポジトリ、npmパッケージ、VS Code拡張機能にマルウェアを仕込む攻撃で、150以上のリポジトリが感染した。
GMO社長はこの2つを結びつけた投稿をしたが、マネーフォワードの事件はGlassWormとはまったく別の問題だった。
GlassWorm:見えない文字に潜む脅威
GlassWormは2025年10月に初めて発見されたサプライチェーン攻撃で、2026年3月に大規模な第2波が発生した。その手口が特に巧妙だ。
不可視Unicodeを使ったコード隠蔽
攻撃者はU+FE00〜U+FE0FおよびU+E0100〜U+E01EFの範囲にある「異体字選択子」と呼ばれる不可視Unicodeコードポイントに悪意のあるペイロードをエンコードして埋め込む。これらの文字は:
- あらゆるエディタ(VS Code、Vim、Emacs)で非表示
- diff表示でも見えない
- リンターや静的解析ツールでもスルー
- コードレビューで人間が目視しても気づかない
実際にどういうことかというと、一見すると普通のJavaScriptコードに見えるが、変数名や文字列の中に不可視文字として悪意のあるコードが仕込まれている。
感染経路
これがサプライチェーン攻撃の本質だ。開発者を標的にして、開発者が作るソフトウェアを通じてエンドユーザーに広がる。
影響範囲
- GitHubリポジトリ:150以上(3月3日〜9日の間に集中)
- npmパッケージ:多数
- Open VSX拡張機能:72件
- 攻撃者はLLMを使って偽装コミットメッセージも生成していたと推定されている
マネーフォワード事件:GitHub認証情報の漏洩
マネーフォワードの事件はGlassWormとは性質が異なる。
原因:認証情報の漏洩
マネーフォワードのGitHub認証情報(Personal Access TokenやOAuthトークンなど)が何らかの形で攻撃者の手に渡り、その認証情報を使って正規のGitHubアカウントとしてリポジトリにアクセスされた。
認証情報が漏洩するパターンとして一般的なのは:
- インフォスティーラー型マルウェア:開発者の端末に感染し、ブラウザに保存されたトークンやキーチェーンのパスワードを窃取する
- 標的型フィッシング:開発者個人を直接狙った攻撃でクレデンシャルを詐取する
- コード中の認証情報の誤コミット:
.envファイルや設定ファイルを誤ってコミットし、トークンが公開されてしまう
Xに流れたコミュニティノートでも「マネーフォワードMEの銀行連携停止はGitHub認証情報漏えいによる不正アクセスが原因で、本スレッドの不可視文字マルウェアとは無関係です」と補足されている。
2つの攻撃の違いをまとめると
| 観点 | GlassWorm | マネーフォワード事件 |
|---|---|---|
| 攻撃の種類 | サプライチェーン攻撃 | 不正アクセス(認証情報漏洩) |
| 侵入経路 | 不可視Unicode文字でコード汚染 | 盗まれた認証情報でログイン |
| 主な被害 | 開発者・エンドユーザーへのマルウェア配布 | ソースコード盗取・個人情報漏洩 |
| 検出の難しさ | 目視不可能(エディタに映らない) | 認証ログを分析しないと気づきにくい |
| 防御策 | 依存パッケージの署名検証、Unicode監査ツール | MFA必須化、短命トークン、シークレット管理 |
GMOグループ内公開訂正の意味するもの
この件でGMOグループ内の社員が公開の場で社長を訂正したことは、賛否両論を生んだ。
「グループ全体で統制が取れていない」という批判は一面では的を射ている。情報セキュリティを事業の柱とするグループのトップが、技術的に不正確な情報を公開発信することは、グループ全体の信頼性を損ないうる。
しかし別の見方をすれば、社員が誤情報をそのまま流させず訂正できる文化は、情報のインテグリティという点では健全とも言える。特にセキュリティの世界では、誤った認識が広まることの害は大きい。
GMOイエラエの@shinji_abeが投稿した解説は技術的に正確で、GlassWorm(不可視文字マルウェア)とGitHub認証情報漏洩の違いをきちんと整理していた。さらに「前者はGMO Flatt SecurityのTakumiで、後者はGMOイエラエのネットde診断(流出監視機能)やSOC(監視・ハンティング)で対応」と自社サービスの棲み分けまで説明していた。
開発者が今すぐできる防御策
GlassWorm対策
# glassworm-hunter でリポジトリをスキャン
git clone https://github.com/afine-com/glassworm-hunter
cd glassworm-hunter
pip install -r requirements.txt
python glassworm_hunter.py /path/to/your/repo
VS Code拡張機能も確認対象に含めること。
GitHub認証情報の保護
# PAT(Personal Access Token)の権限を最小化
# 必要なスコープのみ付与、有効期限を設定(90日以下推奨)
# git credential のトークンをキーチェーンに頼らず
# 環境変数や専用ツールで管理
export GITHUB_TOKEN=$(cat ~/.secrets/github_token)
# シークレットスキャンを有効化(GitHubの設定)
# Settings > Security > Secret scanning > Enable
加えて、GitHubにサインインするすべてのデバイスにEDR(Endpoint Detection and Response)を導入し、インフォスティーラー型マルウェアの検知・除去を行うことが重要だ。
まとめ
今回の騒動は、表面的には「GMO社長が公開訂正された」という話だが、本質はセキュリティ脅威の正確な理解の重要性にある。
- GlassWormは不可視文字を使ったサプライチェーン攻撃。コードレビューでは見えないため、専用ツールによるスキャンが必要。
- GitHub認証情報漏洩はインフォスティーラーや標的型攻撃によるクレデンシャル窃取。MFA・短命トークン・シークレット管理で対策する。
この2つは攻撃の性質も防御策も異なる。混同してしまうと、適切な対策が打てなくなる。セキュリティ情報を発信する立場にある人は特に、正確な理解と言語化が求められる。
