想定読者: 年商 50-300 億 / 従業員 100-1000 名の中堅企業で、開発組織を抱える情シス / 開発リーダー / セキュリティ責任者。「開発者は VSCode 拡張を自由に入れとる」「拡張機能経由のリスクを把握しとらん」「最近のサプライチェーン攻撃ニュースが気になる」と感じとる人向け。 本記事の使い方: VSCode マーケットプレイス経由のサプライチェーン攻撃(「GlassWorm」系として総称される拡張機能マルウェア)の攻撃シナリオ整理 + 8 ステップ防御ガイドで、開発者セキュリティを 1 記事で完結。
結論を 30 秒で。 VSCode マーケットプレイスは月数十億ダウンロード規模で、悪意ある拡張 / 乗っ取られた人気拡張 / typosquatting(似た名前で偽装) がサプライチェーン攻撃の主要経路になっとる。中堅企業の開発組織で「拡張機能を自由に入れる」運用は、API キー / Git 認証情報 / 顧客データ への間接アクセスを攻撃者に渡しかねん。本記事は 8 ステップ防御ガイド((1) 棚卸し / (2) 許可リスト / (3) 認証情報保護 / (4) EDR 連携 / (5) SBOM / (6) インシデント対応 / (7) 教育 / (8) 経営報告)でこれを完成させる。
注: 本記事の「GlassWorm」は VSCode マーケットプレイス経由のサプライチェーン攻撃 / 拡張機能マルウェアの総称 として用いる。具体的な攻撃事例 / 拡張名 / 被害規模は、各セキュリティベンダーのアドバイザリで確認が必要。
なぜ VSCode 拡張がサプライチェーン攻撃の入り口になるか(30 秒)
3 大要因:
- 拡張機能の権限が大きい: ファイル読み書き / 外部通信 / 認証情報アクセス / シェル実行 を拡張が持てる
- マーケットプレイスのレビューが限定的: アップロード時の自動スキャン中心、人手レビューは限定
- 開発者は「便利だから入れる」習慣: セキュリティリスクを意識せず数十個の拡張機能を入れとる
中堅企業で開発者 30 名 × 平均 10 拡張 = 300 拡張のアタックサーフェス。1 つでも悪意あれば全社のソースコード / 認証情報が流出。
VSCode 拡張サプライチェーン攻撃の典型シナリオ 5 パターン
報告される典型 5 パターン:
| # | 攻撃シナリオ | 影響 |
|---|---|---|
| 1 | 悪意ある拡張の新規アップロード | 直接マルウェア配布、低 DL 数で発覚遅延 |
| 2 | 人気拡張のメンテナアカウント乗っ取り | 既存ユーザに更新で配布、影響大 |
| 3 | typosquatting(似た名前で偽装) | 「prettiercode」「prettier-vscode」等で誤インストール誘発 |
| 4 | 依存ライブラリ経由の感染 | 拡張機能の npm 依存に悪意ある package 混入 |
| 5 | 設定ファイルからの認証情報窃取 | `.vscode/settings.json` / `.env` / `credentials.json` を読み出し外部送信 |
致命: いずれも 開発者の PC 1 台が感染すれば、社内 Git / クラウド / API キー全アクセス が攻撃者に渡る。
攻撃の典型ペイロード
過去の事例で観測される典型動作:
- `~/.aws/credentials` `~/.gitconfig` `~/.ssh/` の読み出し
- `.env` ファイルのスキャン + 外部送信
- ブラウザ Cookie / セッショントークンの窃取
- npm / pip / cargo の認証トークン窃取
- 開発機からの クリップボード履歴 読み出し
- キーロガー動作 + パスワード窃取
- Cryptojacking(CPU 利用してマイニング)
- コードベース全体の C2 サーバへの送信
中堅企業の開発機 1 台でこれが起きると、被害は 会社全体のソース / 顧客データ流出 に直結。
8 ステップ防御ガイド(中堅企業向け)
ステップ 1:拡張機能棚卸し
着手前に現状把握:
- 全開発者の VSCode 拡張一覧収集(`code --list-extensions` を全社実行)
- 拡張別 DL 数 / Publisher / 最終更新日
- 内部利用の長期非更新拡張(メンテ放棄リスク)の特定
- typosquatting 候補(人気拡張と似た名前)の洗い出し
中堅企業典型工数:情シス 1 名 × 16-24 時間(30-50 名規模の開発組織)。
ステップ 2:許可リスト(allowlist)整備
「自由に入れる」から「許可リストのみ」運用へ:
- 基本許可リスト: Microsoft 公式 / 主要言語 LSP / Linter / Formatter / Git
- 業務許可リスト: 自社で必要な専門拡張(DB クライアント / クラウド連携など)
- 禁止リスト: 過去にインシデント発生の Publisher / 不明 Publisher / 過剰権限要求拡張
- 申請フロー: 新規拡張は情シスへ申請 + 1-2 営業日で承認
中堅企業は 基本 + 業務 = 30-50 拡張 が標準的なホワイトリストサイズ。
ステップ 3:開発者認証情報の保護
開発機から認証情報を OS / クラウド / シークレットマネージャ 経由に分離:
- OS Keychain 利用: macOS Keychain / Windows Credential Manager / Linux Secret Service
- クラウド SSO: AWS IAM Identity Center / Azure AD / Google Workspace
- シークレットマネージャ: HashiCorp Vault / 1Password / Bitwarden の業務利用
- `.env` を Git にコミットさせない: pre-commit hook + CI スキャン
- gitleaks / TruffleHog の自動スキャン
最低限:`~/.aws/credentials` を平文ファイルで置かない だけでも被害規模が大幅減。
ステップ 4:EDR 連携 + 異常検知
開発機を EDR(Endpoint Detection and Response)の管理下に:
| EDR 製品例 | 開発者向け機能 |
|---|---|
| CrowdStrike Falcon | 拡張機能の異常通信 / プロセス挙動を検知 |
| SentinelOne | Behavioral AI で開発機特化の検知ロジック |
| Microsoft Defender for Endpoint | M365 統合、拡張機能 + ブラウザ + シェル統合検知 |
| Wazuh(OSS) | OSS、中小規模での開発機監視可 |
- VSCode プロセスから `~/.aws` `~/.gitconfig` `~/.ssh` への異常アクセス
- VSCode プロセスからの不審な外部通信
- VSCode 拡張による `~/.bashrc` `~/.zshrc` などシェル設定書き換え
- ブラウザ Cookie への異常アクセス
ステップ 5:SBOM + 依存スキャン
VSCode 拡張は npm 依存を持つため、SBOM + 依存スキャンが有効:
- 拡張の VSIX ファイル取得 + 依存ツリー解析(必要に応じて)
- 依存マルウェアスキャン(npm audit / Snyk / Socket)
- CI/CD パイプラインでの依存チェック: Renovate / Dependabot で更新管理
ステップ 6:インシデント対応プロセス
VSCode 拡張経由の侵害が疑われた際の対応 5 ステップ:
- 即座に拡張アンインストール + VSCode 起動停止
- EDR で当該拡張のプロセス挙動 / ネットワーク通信ログ確認
- 認証情報のローテーション(AWS キー / Git トークン / SSH 鍵 / API キー)
- 影響範囲の特定(送信されたデータの追跡)
- JPCERT / IPA / セキュリティベンダーへの報告
中堅企業では このプロセスを 60 分以内に着手 できる体制が必要。
ステップ 7:開発者教育
全開発者向け教育プログラム:
- 入社時 1 時間研修: VSCode 拡張のリスク / 許可リスト / 申請フロー
- 年 1 回 30 分アップデート: 最新の攻撃事例 / 対策アップデート
- インシデント発生時の社内共有: 失敗事例を匿名化して横展開
- セキュリティリーダー育成: 開発組織内に 1-2 名の DevSecOps champion を配置
ステップ 8:経営報告
四半期取締役会報告に開発者セキュリティ KPI を組み込み:
- 全開発機の EDR カバレッジ率
- 許可リスト外拡張の検出件数 / 対応状況
- 拡張機能経由インシデント件数
- 開発者教育受講率
- 認証情報ローテーション実施率
中堅企業の運用体制設計
開発組織 30-50 名向けの現実解
| 規模 | 体制 | 月次コスト |
|---|---|---|
| 20-30 名 | 情シス 1 名 + EDR + 顧問 | 月 30-60 万円 |
| 30-50 名 | 情シス 1-2 名 + 開発側 1 名 + EDR + 顧問 | 月 50-100 万円 |
| 50-100 名 | 専任 DevSecOps 1 名 + EDR + 顧問 | 月 100-200 万円 |
CI/CD 統合での自動化
人手に頼らん仕組み:
- Pre-commit hook: 認証情報チェック / 禁止コマンドチェック
- CI で gitleaks / TruffleHog: シークレット混入を自動検知
- CodeQL / Semgrep: 静的解析でマルウェアパターン検知
- Dependabot / Renovate: 依存更新で typosquatting 早期発見
FAQ:よくある質問
Q1:許可リストにすると開発者が反発しないか?
A:「ほしい拡張を申請したら 1-2 営業日で追加」を保証 + 基本セット(30-50 拡張)の充実で抵抗は最小化できる。事故事例の社内共有で「自由は守られんと持続せん」を理解させる。
Q2:Cursor / Cline 等の AI コーディングツールは?
A:VSCode ベースの AI コーディングツール(Cursor / Cline / Continue 等)も 同じ拡張機能リスク を継承する。さらに AI への送信データ が追加リスク。中堅企業では:
- Enterprise 契約(学習データ利用拒否 + DPA 締結)
- API キーの集中管理(個人キーじゃなく社内発行キー)
- 送信データの監査ログ取得
詳細は AI コーディングツール 5 強比較 を参照。
Q3:個人 PC(BYOD)での VSCode 利用は?
A:原則禁止が望ましいが、現実的には (1) BYOD 規程整備 / (2) MDM 統合 / (3) 業務リソースアクセス時は VPN + デバイス認証 / (4) EDR 強制 で許容。完全禁止より 管理下で許容 が中堅企業の現実解。
Q4:拡張機能のアンインストールは退社時にどうする?
A:退社時の PC 回収 + データ消去 + 認証情報失効 を厳格化する。開発者の 個人 GitHub アカウント などへの社内コードプッシュ禁止も併せて規程化。
Q5:オープンソース拡張の安全確認方法は?
A:4 つの観点:
- GitHub リポジトリの実在性(拡張ページからリンクされとるか)
- 過去のコミット履歴 / Issue / PR(活発なメンテナンスあるか)
- Publisher の信頼性(Microsoft 認証 / 著名 OSS 組織 / 個人)
- 拡張 manifest の権限要求(最小権限か / 過剰要求か)
Q6:自社製 VSCode 拡張を社内配布する場合は?
A:3 ステップ:
- 私有マーケットプレイス(Open VSX Registry セルフホスト)or VSIX 直接配布
- コードレビュー必須化(社内 OSS 同等のプロセス)
- 公開前のセキュリティスキャン(依存 / 静的解析 / 動的テスト)
まとめ
VSCode 拡張のサプライチェーン攻撃(GlassWorm 系として総称される攻撃シナリオ)は中堅企業の 開発機 1 台 → 全社ソース / 顧客データ流出 につながる致命的リスク。8 ステップ防御ガイド(棚卸し / 許可リスト / 認証情報保護 / EDR / SBOM / インシデント対応 / 教育 / 経営報告)で開発者セキュリティ基盤を整える。中堅企業 30-50 名規模では 情シス + EDR + 顧問契約 の組み合わせが現実解。
GXO は中堅企業 100+ 社のセキュリティ支援実績で、開発者セキュリティ + DevSecOps + EDR 運用 + インシデント対応 までを セキュリティ顧問契約 で一気通貫提供。情シス 1-2 名体制でも開発組織 30-50 名のセキュリティを回せる体制設計を支援します。
開発者セキュリティ / DevSecOps の専門家伴走をお考えですか?|中堅企業 100+ 社の支援実績
VSCode 拡張ガバナンス + 認証情報保護 + EDR 運用 + インシデント対応までを月次顧問契約で伴走。サプライチェーン攻撃の影響アセスメント、許可リスト設計、CI/CD 統合シークレットスキャン、取締役会セキュリティ報告まで一気通貫。中堅企業 30-50 名規模に最適化した運用体制を提供します。
※ 営業電話なし | オンライン対応 | NDA 締結対応可
参考文献
- VSCode Marketplace 公式 — https://marketplace.visualstudio.com/
- Microsoft Security Response Center — https://msrc.microsoft.com/
- npm Security Best Practices — https://docs.npmjs.com/packages-and-modules/securing-your-code
- gitleaks — https://github.com/gitleaks/gitleaks
- TruffleHog — https://github.com/trufflesecurity/trufflehog
- JPCERT/CC 脆弱性情報 — https://www.jpcert.or.jp/
- IPA「情報セキュリティ 10 大脅威 2026」 — https://www.ipa.go.jp/security/10threats/
関連記事
- AI コーディングツール 5 強比較 2026 年中|Cursor / GitHub Copilot / Claude Code / Cline / Windsurf — AI コーディング × セキュリティの統合
- Linux AppArmor 脆弱性(CrackArmor 系)と中堅企業のコンテナセキュリティ — Linux MAC + コンテナ防御
- 社内 ChatGPT 情報漏えいリスクと対策|IBM・IPA・経産省 3 出典 — AI ガバナンス
- 中堅 AI ガバナンス 100 タスク|取締役会報告まで通す情シス 1 名体制ロードマップ — セキュリティ全体のガバナンス
- GXO サービス:セキュリティ顧問契約(インシデント対応 + 監査対応)