尝试以扩展 VS Code 中的代理模式!

扩展运行时安全

扩展极大地增强了 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 为您提供有关扩展的信息,以帮助您做出明智的决定。

  • 评分与评论:阅读其他人对该扩展的看法。

  • 问答:查看现有问题和发布者的响应程度。如果您有疑虑,也可以与扩展的发布者进行交流。

  • 问题、代码仓库和许可证:检查发布者是否提供了这些信息,以及它们是否提供您所期望的支持。

  • 已验证的发布者:将发布者名称和域名旁边的蓝色复选标记作为额外的信任信号。该标记表示发布者已向 Marketplace 证明了其域名所有权。它还表明 Marketplace 已验证该域名的存在以及该发布者在 Marketplace 上至少六个月的良好信誉。

    Verified publisher

提示

如果您想强制规定在您的组织中允许使用哪些扩展,请查看如何在 VS Code 中配置允许的扩展

Marketplace 保护措施

Visual Studio Marketplace 采用多种机制来保护您免受恶意扩展的侵害:

  • 恶意软件扫描:Marketplace 对每个发布的扩展包运行恶意软件扫描,以确保其安全性。该扫描使用多种防病毒引擎,对每个新扩展和每个扩展更新都会运行。在扫描完全通过之前,该扩展不会在 Marketplace 上公开发布供公众使用。

  • 动态检测:Marketplace 通过在沙盒环境(“无菌室”虚拟机)中运行扩展来验证其运行时行为,从而进行动态检测。

  • 已验证的发布者:发布者可以通过证明域名所有权来验证其身份(蓝色复选标记)。这表明发布者已向 Marketplace 证明了域名所有权。它还表明 Marketplace 已验证该域名的存在以及该发布者在 Marketplace 上至少六个月的良好信誉。

  • 异常使用监控:Marketplace 监控扩展的下载和使用模式,以检测异常行为。

  • 名称抢注:Marketplace 阻止扩展作者窃取官方发布者(如 Microsoft 或 RedHat)和热门扩展(如 GitHub Copilot)的名称。

  • 阻止列表:如果报告并验证了某个恶意扩展,或者在某个扩展依赖项中发现了漏洞,该扩展将从 Marketplace 中移除并添加到阻止列表中。如果该扩展已被安装,VS Code 会自动将其卸载。

  • 扩展签名验证:Visual Studio Marketplace 在所有扩展发布时都会对其进行签名。VS Code 在您安装扩展时会检查此签名,以验证扩展包的完整性和来源。

请在Visual Studio Marketplace 的安全与信任博客文章中了解有关这些措施的更多信息。

报告可疑扩展

如果您确实看到某个扩展看起来可疑,请向 Marketplace 团队报告。Marketplace 团队会在一个工作日内给予初步回应。

要报告扩展:

  1. Visual Studio Marketplace 中打开该扩展的页面。

  2. 选择扩展更多信息部分底部的报告问题链接。

  • 了解如何在 Visual Studio Code 中安装和管理扩展。

  • 使用工作区信任来决定项目文件夹中的代码是否可以在未经明确批准的情况下由 VS Code 和扩展执行。这在处理不熟悉的代码时增加了一层额外的安全性。

  • VS Code 中配置允许的扩展,以强制规定在您的组织中允许使用哪些扩展。