
VS Code拡張機能を悪用した実被害:何が起きたか
2026年10月29日、AI開発ツール「Cursor」のVS Code互換マーケットプレイスに、Anthropicの公式ツール「Claude Code」を装った悪意のある拡張機能(anthropic.claude-code v2.1.312および2.1.313)が出現した。配布期間は太平洋時間の午前2時27分から午後1時35分までの約11時間、最大5,000名の開発者がダウンロードした可能性があると報告されている(BleepingComputer、The Hacker News)。
この拡張機能はVS Code起動時に自動実行されるJavaScriptローダー(66行)を仕込み、被害者のマシンに攻撃者の公開鍵を~/.ssh/authorized_keysへ書き込む仕組みだった。macOSではLaunchAgent、LinuxではcronのRebootエントリ、WindowsではスケジュールタスクとStartupフォルダの二重構造で永続化が試みられた。
ホスト名、ユーザー名、OS、Git設定のメールアドレス、クレデンシャル関連の環境変数名(最大40件)を外部のC2サーバー(134.209.82[.]225)へ送信する偵察機能も実装されていた。macOSとWindowsでは実装上のバグによりSSH設定の一部が失敗するケースが多いとみられるが(BleepingComputer)、SSH鍵の挿入・永続化・偵察データの送信そのものは失敗しないとCursorが公式ブログで確認している。
なお、Microsoft公式VS Code MarketplaceおよびOpen VSXへの同種拡張機能の配布は確認されていない(The Hacker News、cursor.com)。
AIを使った攻撃でどんな情報が漏れたかは、AIハッキングによる情報漏洩の主な被害一覧で説明しています。
なぜVS Code拡張機能はマルウェアの温床になりやすいか
今回のインシデントが示すのは、拡張機能というエコシステム固有の構造的脆弱性だ。VS Code拡張機能はNode.js上で動作し、ファイルシステム・ネットワーク・シェルへのフルアクセスが原則として許可されている。ブラウザ拡張機能が持つサンドボックス制限に相当する機構が、VS Codeには現時点で十分に存在しない。
さらに名前空間の偽装が容易であることも問題だ。「anthropic.claude-code」という発行者ID(publisher ID)は公式(anthropic)と同一に見えるが、マーケットプレイスによっては発行者の同一性検証が不十分な場合がある。視覚的に正規と区別しにくい名前でパッケージを公開できる環境は、タイポスクワッティング攻撃やなりすましを構造的に誘発する。
開発者端末は多くの場合、本番環境のクレデンシャルやクラウドアクセスキーが保存された「高特権ノード」だ。ひとたび侵害されれば、SSHバックドアを起点に社内ネットワークやコードリポジトリへの横断侵害が可能になる。VS Code拡張機能マルウェアが単なる個人被害にとどまらない理由はここにある。
次に読む:AIセキュリティ対策とは?企業のリスクと対策は?
企業がVS Code環境に実施すべき具体的対策
今回のインシデントを踏まえ、企業のIT管理部門・セキュリティ担当者が優先して確認すべき事項を整理する。
① 既存インストール済み拡張機能の緊急棚卸し
開発者端末にanthropic.claude-codeのv2.1.312またはv2.1.313がインストールされていないか確認する。code --list-extensions --show-versionsコマンドで全拡張機能のバージョン一覧を取得できる。該当バージョンが存在する場合は即時アンインストールし、~/.ssh/authorized_keysにsvc-telemetryというコメント付きのEd25519公開鍵が追加されていないかを確認する。
② 承認済み拡張機能リスト(allowlist)の導入
業務上必要な拡張機能を事前に承認リスト化し、リスト外のインストールを制限するポリシーを設ける。VS Codeのsettings.jsonでマーケットプレイスへのアクセス自体を制限するオプションを活用するか、企業向けにはPrivate Extension Galleryを構築する方法もある。全拡張機能を許可する運用は、今回のような名前偽装攻撃への耐性がほぼゼロに等しい。
③ 発行者IDと署名の確認を習慣化
拡張機能のインストール前に、マーケットプレイス上の「Verified Publisher」バッジと発行者IDを必ず確認する。Anthropicの公式Claude Code拡張機能はMicrosoft公式VS Code Marketplaceで配布されており、発行者名・IDを公式サイトや公式ドキュメントと照合することが基本的な防衛策となる。正規の拡張機能を入れる手順と、入れた後の確認のしかたは「Claude CodeをVS Codeで使う方法」で画面つきで説明している。Cursorのような非公式互換マーケットプレイスを業務利用する場合、検証基準が異なる可能性があることを念頭に置く必要がある。
④ SSH authorized_keysの定期監査
今回の攻撃はSSH鍵の挿入という古典的な手口を使っている。開発者端末の~/.ssh/authorized_keysを定期的に棚卸しし、承認されていない公開鍵を検出するスクリプトを定例のセキュリティチェックに組み込む。CIパイプラインやゼロトラストアーキテクチャを採用している環境では、開発者端末からのSSH直接接続をそもそも不要にする設計が抜本的な対策になりうる。
⑤ ネットワーク側での防衛
開発者端末からの不審な外向き通信(特にポート8099などの非標準ポート)をファイアウォールまたはEDRでブロック・検知する設定を確認する。C2サーバーのIPアドレス(今回は134.209.82[.]225)はすでに各種脅威インテリジェンスフィードに登録されていると考えられるが、ゼロデイ段階での通信を事後的に検出できるログ保全体制も重要だ。
対策の優先度と限界:何ができて何ができないか
| 対策 | 導入難度 | 防衛効果 | 主な限界・注意点 |
|---|---|---|---|
| 拡張機能バージョン棚卸し(緊急) | 低 | 高(事後確認) | 既感染端末には事後対処が必要 |
| 承認済み拡張機能リスト | 中 | 高(予防) | リスト管理の継続運用コストが発生する |
| 発行者ID・署名の確認 | 低 | 中(人的確認に依存) | 開発者個人の確認習慣に依存し漏れが生じやすい |
| SSH authorized_keys監査 | 中 | 中(事後検出) | 鍵挿入後に検出するため、侵害自体は防げない |
| EDR/ネットワーク監視 | 高 | 高(多層防衛) | 導入・運用コストが高く、中小規模では負担が大きい |
| Private Extension Gallery | 高 | 非常に高(根本対策) | 構築・維持に専任リソースが必要。拡張機能の更新管理も自社負担になる |
重要な前提として、今回のような0-day的な配布をリアルタイムで完全に防ぐ手段は現時点では存在しない。マーケットプレイス側の審査が機能するまでの時間窓に侵害が発生するモデルは、ブラウザ拡張機能やnpmパッケージを悪用したサプライチェーン攻撃と構造的に同一だ。多層防衛と事後検出体制を組み合わせることが現実的な方針となる。
経営・導入判断の視点:開発ツールのセキュリティガバナンスをどう整備するか
今回の事案が企業経営・IT投資の観点で示唆するのは、「開発者端末のセキュリティ」が従来の境界防衛型セキュリティの盲点になりやすいという点だ。VS Codeは業務端末に広く普及しており、拡張機能のインストールをエンドユーザー(開発者)の裁量に委ねている組織が多い。開発生産性とセキュリティ統制のバランスをどこで取るかは、経営レベルの意思決定事項として検討する必要がある。
具体的には、次の問いが稟議・ポリシー策定の起点になりうる。開発者端末はエンドポイントセキュリティポリシーの適用対象か。開発ツールの追加・更新は情報システム部門の承認フローを経るか。インシデント発生時の端末隔離・フォレンジック手順は整備されているか。これらが未整備の組織では、今回と類似した拡張機能マルウェアが侵入経路になるリスクは相応に高いと判断してよい。
コスト面では、承認済み拡張機能リストの管理やPrivate Extension Galleryの構築はそれ自体に運用工数を要する。一方で、開発者端末が踏み台となったサプライチェーン侵害の事後対応コスト(インシデントレスポンス、顧客通知、信頼回復)と比較すれば、予防的投資の優先度は明確だ。リスク許容度と組織規模に応じた現実的な統制水準を定め、定期的に見直す体制が求められる。
参考文献
- BleepingComputer — Malicious Claude Code VS Code Extension Installs Persistent SSH Backdoor: https://www.bleepingcomputer.com/
- The Hacker News — Malicious Claude Code VS Code Extension: https://thehackernews.com/
- Cursor 公式ブログ — マーケットプレイスインシデント報告: https://cursor.com
- GBHackers — Technical Analysis of the Malicious Extension: https://gbhackers.com/
- Help Net Security — Coverage of the Cursor Marketplace Incident: https://helpnetsecurity.com/
