扩展运行时安全
扩展极大地增强了 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 会提供有关扩展的信息,以帮助您做出明智的决定。
-
评分与评论:阅读其他人对该扩展的看法。
-
问答:查看现有问题以及发布者的响应程度。如果您有顾虑,还可以与扩展的发布者互动。
-
问题、存储库和许可证:检查发布者是否提供了这些,以及它们是否符合您的预期支持。
-
已验证发布者:将发布者姓名和域名旁边的蓝色复选标记用作额外的信任信号。该复选标记表明发布者已向 Marketplace 证明了其域名所有权。它还表明 Marketplace 已验证该域名的存在以及发布者在 Marketplace 上的良好信誉至少六个月。

如果您想强制规定您的组织可以使用哪些扩展,请查看如何 配置 VS Code 中允许的扩展。
市场保护
Visual Studio Marketplace 采用多种机制来保护您免受恶意扩展的侵害。
-
恶意软件扫描:Marketplace 会对发布的每个扩展包进行恶意软件扫描,以确保其安全性。该扫描使用了多种防病毒引擎,针对每个新扩展和每个扩展更新运行。在扫描通过之前,该扩展不会在 Marketplace 上发布供公众使用。
-
动态检测:Marketplace 通过在沙盒环境(干净的虚拟机)中运行扩展来验证扩展的运行时行为,从而进行动态检测。
-
已验证发布者:发布者可以通过证明域名所有权来验证(蓝色复选标记)其身份。这表明发布者已向 Marketplace 证明了其域名所有权。它还表明 Marketplace 已验证该域名的存在以及发布者在 Marketplace 上的良好信誉至少六个月。
-
异常使用监控:Marketplace 会监控扩展的下载和使用模式,以检测异常行为。
-
名称抢注:Marketplace 会阻止扩展作者窃取官方发布者(如 Microsoft 或 RedHat)和流行扩展(如 GitHub Copilot)的名称。
-
阻止列表:如果举报并验证了恶意扩展,或者扩展依赖项中发现了漏洞,该扩展将被从 Marketplace 中移除并添加到阻止列表中。如果该扩展已被安装,VS Code 将自动将其卸载。
-
扩展签名验证:Visual Studio Marketplace 在发布所有扩展时都会对其进行签名。VS Code 在您安装扩展时会检查此签名,以验证扩展包的完整性和来源。
-
密钥扫描:Marketplace 会自动扫描每个新发布的扩展,查找密钥(如 API 密钥或凭据(例如,Azure DevOps PAT 令牌))。如果检测到任何密钥,将阻止发布,以防止潜在的安全风险。VSCE 工具在打包过程中扫描
.env文件,并在找到密钥时阻止发布。
在 Visual Studio Marketplace 的安全与信任博客文章中了解这些措施。
举报可疑扩展
如果您确实看到了看起来可疑的扩展,请将该扩展举报给 Marketplace 团队。Marketplace 团队将在一个工作日内做出初步响应。
举报扩展
-
在 Visual Studio Marketplace 中打开扩展的页面。
-
在扩展“更多信息”部分的底部,选择“举报问题”链接。
相关资源
-
在 Visual Studio Code 中了解如何安装和管理扩展。
-
使用 工作区信任 来决定项目文件夹中的代码是否可以在未经明确批准的情况下由 VS Code 和扩展执行。这为处理不熟悉的 कोड 提供了额外的安全层。
-
配置 VS Code 中允许的扩展,以强制规定您的组织可以使用哪些扩展。