VS Codeのエージェントモードを拡張するには、を試してください!

拡張機能のランタイムセキュリティ

拡張機能は Visual Studio Code の機能を大幅に強化します。しかし、悪意のあるコードの実行やデータプライバシーの懸念などのリスクをもたらす可能性もあります。Visual Studio Marketplace には、悪質な拡張機能からユーザーを保護するための多くの方法があります。さらに、VS Code は拡張機能の信頼性を示すいくつかの指標を提供します。

このドキュメントでは、VS Code における拡張機能のランタイム権限と、悪意のある拡張機能からユーザーを保護するために講じられている対策について概説します。拡張機能をインストールする前に、その信頼性について情報に基づいた決定を下す方法を学びます。

拡張機能のランタイム権限について

拡張機能ホストは、VS Code で拡張機能を実行する責任を負います。拡張機能ホストは、VS Code 自体と同じ権限を持ちます。これは、VS Code が実行できるあらゆるアクションを、拡張機能も拡張機能ホストを通じて実行できることを意味します。

たとえば、拡張機能はマシン上のファイルを読み書きしたり、ネットワークリクエストを行ったり、外部プロセスを実行したり、ワークスペースの設定を変更したりできます。

拡張機能の発行元の信頼

VS Code のリリース 1.97 以降、サードパーティの発行元から初めて拡張機能をインストールする際に、その拡張機能の発行元を信頼するかどうかを確認するダイアログが VS Code に表示されます。

拡張機能パックや他の拡張機能に依存する拡張機能の発行元を信頼すると、依存先の拡張機能の発行元も信頼することになります。

以前にインストールした拡張機能の発行元は信頼されていると見なされ、信頼された発行元のリストに自動的に追加されます。

信頼された拡張機能のリストは、[Extensions: Manage Trusted Extensions Publishers] (拡張機能: 信頼された拡張機能の発行元を管理) コマンドを使用して管理できます。

重要

VS Code のコマンドラインを使用して拡張機能をインストールした場合、その拡張機能の発行元は自動的には信頼されません。

拡張機能の信頼性を判断する

拡張機能をインストールする前に、その信頼性を判断するためにさまざまな手順を踏むことができます。Visual Studio Marketplace は、情報に基づいた決定を下すのに役立つ拡張機能に関する情報を提供します。

  • 評価とレビュー (Ratings & Reviews): 他の人がその拡張機能についてどう思っているかを読みます。

  • Q & A: 既存の質問と発行元の応答レベルを確認します。懸念がある場合は、拡張機能の発行元とやり取りすることもできます。

  • イシュー、リポジトリ、ライセンス (Issues, Repository, and License): 発行元がこれらを提供しているか、また期待するサポートがあるかを確認します。

  • 認証済み発行元 (Verified Publisher): 発行元の名前とドメイン名の横にある青いチェックマークを、信頼の追加シグナルとして使用します。このチェックマークは、発行元が Marketplace に対してドメイン名の所有権を証明したことを示します。また、Marketplace がドメイン名の存在と、その発行元が Marketplace で少なくとも 6 か月間良好な状態にあることを確認したことも示します。

    Verified publisher

ヒント

組織で使用を許可する拡張機能を強制したい場合は、VS Code で許可された拡張機能を構成する方法を確認してください。

Marketplace の保護機能

Visual Studio Marketplace は、悪意のある拡張機能からユーザーを保護するために、いくつかのメカニズムを採用しています。

  • マルウェアスキャン: Marketplace は、公開される各拡張機能パッケージに対してマルウェアスキャンを実行し、その安全性を確保します。このスキャンは、複数のアンチウイルスエンジンを使用し、新しい拡張機能と拡張機能の更新ごとに実行されます。スキャンがすべてクリアになるまで、拡張機能は Marketplace で公開されません。

  • 動的検出: Marketplace は、サンドボックス環境 (クリーンルーム VM) で拡張機能を実行することにより、そのランタイムの動作を検証して動的検出を行います。

  • 認証済み発行元: 発行元は、ドメインの所有権を証明することで身元を認証できます (青いチェックマーク)。これは、発行元が Marketplace に対してドメイン名の所有権を証明したことを示します。また、Marketplace がドメインの存在と、その発行元が Marketplace で少なくとも 6 か月間良好な状態にあることを確認したことも示します。

  • 異常な使用状況の監視: Marketplace は、拡張機能のダウンロードと使用パターンを監視して、異常な動作を検出します。

  • ネームスクワッティング: Marketplace は、拡張機能の作成者が Microsoft や RedHat などの公式発行元や、GitHub Copilot などの人気のある拡張機能の名前を盗用することを防ぎます。

  • ブロックリスト: 悪意のある拡張機能が報告され検証された場合、または拡張機能の依存関係に脆弱性が発見された場合、その拡張機能は Marketplace から削除され、ブロックリストに追加されます。その拡張機能がインストールされている場合、VS Code によって自動的にアンインストールされます。

  • 拡張機能の署名検証: Visual Studio Marketplace は、すべての拡張機能が公開される際に署名します。VS Code は、拡張機能をインストールする際にこの署名をチェックして、拡張機能パッケージの完全性とソースを確認します。

これらの対策については、Visual Studio Marketplace のセキュリティと信頼に関するブログ記事で詳しく学べます。

不審な拡張機能を報告する

不審に見える拡張機能を見つけた場合は、Marketplace チームに報告してください。Marketplace チームは、1 営業日以内に初期応答を提供します。

拡張機能を報告するには

  1. Visual Studio Marketplace で拡張機能のページを開きます。

  2. 拡張機能の [More Info] (詳細情報) セクションの下部にある [Report a concern] (懸念を報告) リンクを選択します。

  • Visual Studio Code での拡張機能のインストールと管理方法について学びます。

  • ワークスペースの信頼を使用して、プロジェクトフォルダ内のコードを明示的な承認なしに VS Code と拡張機能で実行できるかどうかを決定します。これにより、不慣れなコードを扱う際のセキュリティ層が追加されます。

  • 組織で使用を許可する拡張機能を強制するために、VS Code で許可された拡張機能を構成します。