拡張機能のランタイムセキュリティ
拡張機能は Visual Studio Code の機能を大幅に強化します。これらは、悪意のあるコードの実行やデータのプライバシーの問題などのリスクも導入する可能性があります。Visual Studio Marketplace には、悪意のある拡張機能からユーザーを保護するための多くの方法があります。さらに、VS Code は拡張機能の信頼性を示すいくつかの指標を提供します。
このドキュメントでは、VS Code における拡張機能のランタイムアクセス許可と、悪意のある拡張機能からユーザーを保護するための対策について説明します。拡張機能をインストールする前に、その信頼性について情報に基づいた意思決定を行う方法を学びます。
拡張機能のランタイムアクセス許可について
拡張機能ホストは、VS Code で拡張機能を実行する役割を担います。拡張機能ホストは、VS Code 自体と同じアクセス許可を持ちます。これは、VS Code が実行できるすべてのアクションを、拡張機能も拡張機能ホストを通じて実行できることを意味します。
たとえば、拡張機能は、マシン上のファイルの読み取りと書き込み、ネットワーク要求の作成、外部プロセスの実行、およびワークスペース設定の変更を行うことができます。
拡張機能のパブリッシャーの信頼
VS Code リリース 1.97 以降、サードパーティのパブリッシャーから拡張機能を初めてインストールすると、VS Code はその拡張機能のパブリッシャーを信頼することを確認するよう求めるダイアログを表示します。
拡張機能パックまたは他の拡張機能に依存関係を持つ拡張機能のパブリッシャーを信頼すると、依存する拡張機能のパブリッシャーも信頼することになります。
以前にインストールした拡張機能のパブリッシャーは信頼されていると見なされ、信頼できるパブリッシャーのリストに自動的に追加されます。
拡張機能: 信頼できる拡張機能のパブリッシャーの管理 コマンドを使用して、信頼できる拡張機能のリストを管理できます。
VS Code コマンドラインを使用して拡張機能をインストールする場合、拡張機能のパブリッシャーは自動的に信頼されません。
拡張機能の信頼性の判断
拡張機能をインストールする前に、それが信頼できるかどうかを判断するためにさまざまな手順を実行できます。Visual Studio Marketplace は、情報に基づいた意思決定を行うのに役立つ拡張機能に関する情報を提供します
-
評価とレビュー: 拡張機能について他の人がどう考えているかを確認します。
-
Q&A: 既存の質問とパブリッシャーの応答性を確認します。懸念がある場合は、拡張機能のパブリッシャーと連絡を取ることもできます。
-
問題、リポジトリ、およびライセンス: パブリッシャーがこれらを提供しているか、および期待するサポートがあるかを確認します。
-
検証済みパブリッシャー: パブリッシャー名とドメイン名の横にある青いチェックマークを信頼の追加のシグナルとして使用します。チェックマークは、パブリッシャーが Marketplace にドメイン名の所有権を証明したことを示します。また、Marketplace がドメイン名の存在と、パブリッシャーが Marketplace で少なくとも 6 か月間良好な状態であることの両方を検証したことも示します。
組織内でどの拡張機能の使用を許可するかを強制したい場合は、VS Code で許可された拡張機能を構成する方法を確認してください。
Marketplace の保護
Visual Studio Marketplace は、悪意のある拡張機能からユーザーを保護するためにいくつかのメカニズムを採用しています
-
マルウェアスキャン: Marketplace は、公開される各拡張機能パッケージに対してマルウェアスキャンを実行し、その安全性を確保します。複数のウイルス対策エンジンを使用するこのスキャンは、新しい拡張機能と各拡張機能の更新ごとに実行されます。スキャンがすべてクリアになるまで、拡張機能は一般公開のために Marketplace に公開されません。
-
動的検出: Marketplace は、サンドボックス環境 (クリーンルーム VM) で拡張機能のランタイム動作を検証することにより、動的検出を行います。
-
検証済みパブリッシャー: パブリッシャーは、ドメイン所有権を証明することにより、その ID を検証 (青いチェックマーク) できます。これは、パブリッシャーが Marketplace にドメイン名の所有権を証明したことを示します。また、Marketplace がドメインの存在と、パブリッシャーが Marketplace で少なくとも 6 か月間良好な状態であることの両方を検証したことも示します。
-
不審な使用状況の監視: Marketplace は、拡張機能のダウンロードと使用パターンを監視し、不審な動作を検出します。
-
ネームスクワッティング: Marketplace は、拡張機能の作成者が Microsoft や RedHat などの公式パブリッシャーや、GitHub Copilot のような人気のある拡張機能の名前を盗用するのを阻止します。
-
ブロックリスト: 悪意のある拡張機能が報告され検証された場合、または拡張機能の依存関係に脆弱性が見つかった場合、その拡張機能は Marketplace から削除され、ブロックリストに追加されます。拡張機能がインストールされている場合、VS Code によって自動的にアンインストールされます。
-
拡張機能の署名検証: Visual Studio Marketplace は、すべての拡張機能が公開される際に署名します。VS Code は、拡張機能をインストールするときにこの署名をチェックし、拡張機能パッケージの整合性とソースを検証します。
これらの対策については、「Visual Studio Marketplace におけるセキュリティと信頼」のブログ記事で詳しく説明しています。
不審な拡張機能を報告する
不審な拡張機能を見つけた場合は、Marketplace チームに報告してください。Marketplace チームは、1 営業日以内に最初の応答を提供します。
拡張機能を報告するには
-
Visual Studio Marketplace で拡張機能のページを開きます。
-
拡張機能の 詳細情報 セクションの下部にある 問題の報告 リンクを選択します。
関連リソース
-
Visual Studio Code で拡張機能をインストールして管理する方法を学びます。
-
ワークスペースの信頼を使用して、プロジェクトフォルダー内のコードを明示的な承認なしに VS Code と拡張機能で実行できるかどうかを決定します。これにより、慣れないコードを扱う際にセキュリティの層が追加されます。
-
組織内でどの拡張機能の使用を許可するかを強制するために、VS Code で許可された拡張機能を構成します。