ブログ/記事一覧/GitHubのコードに「見えないマルウェア」が仕込まれている―GlassWorm攻撃の手口と対策
glassworm-invisible-code-attack-cover

GitHubのコードに「見えないマルウェア」が仕込まれている―GlassWorm攻撃の手口と対策

GitHubやnpmに「見えないマルウェア」が仕込まれるGlassWorm攻撃が拡大。433件以上のコンポーネントが汚染。攻撃の仕組みと対策を解説。

ニュース
kkm-horikawa

kkm

Backend Engineer / AWS / Django

2026.03.215 min7 views

GitHubやnpmに「見えないマルウェア」が仕込まれている

あなたが普段使っているnpmパッケージやVS Code拡張機能に、目に見えないマルウェアが仕込まれているかもしれません。

セキュリティ企業Aikidoの報告によると、「GlassWorm」と呼ばれるサプライチェーン攻撃が2026年3月に入って急速に拡大しています。GitHubリポジトリ151件以上、VS Code拡張機能72件以上、npmパッケージ複数を含む433件以上のコンポーネントが汚染されました。

最大の特徴は、コードレビューやdiffツールではまったく見えないこと。目視では発見できません。

「見えないコード」とは何か

GlassWormが使うのは、Unicodeの「Variation Selectors」(U+FE00U+FE0FU+E0100U+E01EF)という特殊文字です。これらはすべてのコードエディタ、ターミナル、diffツール、リンターで幅ゼロとして描画されます。つまり、画面上には何も表示されません。

攻撃者はこの見えない文字列の中にマルウェアのコードを埋め込みます。空のバッククォート文字列(``)の中に不可視文字でペイロードをエンコードし、デコーダが実行時にバイト列に変換してeval()で実行します。

さらに厄介なのは、盗んだGitHubトークンを使って正規リポジトリにforce-pushでコードを書き換える手口も併用されていることです。コミットメッセージも作者名も日時もそのまま保持されるため、PRやコミット履歴に痕跡が残りません。

どのパッケージが汚染されたのか

プラットフォーム汚染数主な被害パッケージ
GitHub151件以上pedronauck/reworm
(1,460スター)等
Open VSX72件以上AI系・リンター系
拡張機能を装う
npm複数react-native-
international-phone-number等

盗まれるのは、暗号通貨ウォレット、認証情報、アクセストークン、SSH鍵、開発環境のデータです。窃取したデータはSolanaブロックチェーン経由でC2サーバーに送信されるため、従来のドメインベースのセキュリティツールでは検知が難しい構造になっています。

開発者が今すぐやるべきこと

  • 1. 依存パッケージの確認: 上記リストに該当するパッケージを使っていないか確認。Aikidoの無料ツールSafe Chainでスキャン可能
  • 2. GitHubトークンのローテーション: VS Code/Cursor拡張機能経由で漏洩した可能性がある。特に不審な拡張機能をインストールした覚えがあればすぐに
  • 3. force-push保護の有効化: リポジトリのブランチ保護ルールでforce-pushを禁止する
  • 4. 目視レビューに頼らない: この攻撃は人間の目では検知不可能。自動スキャンツールが必須

目に見えないものをどう守るか

ソフトウェア開発において「コードレビュー」は品質の最後の砦です。でもGlassWormは、その砦を素通りします。人間の目では見えないのだから、レビューしようがありません。

映画『プレデター』の透明化した敵のようなものです。目の前にいるのに見えない。倒すには、赤外線センサー(自動スキャンツール)が必要です。

npm installを打つたびに、見えないコードが紛れ込んでいないか。開発者にとって、依存関係はもはや「信頼」ではなく「検証」の対象です。

参照元