扩展运行时安全性
扩展大大增强了 Visual Studio Code 的功能。它们也可能带来风险,如恶意代码执行和数据隐私问题。Visual Studio Marketplace有很多方法可以保护你免受不良扩展的侵害。此外,VS Code 还能提供多个扩展可靠性指标。
本文档概述了VS Code中扩展的运行时权限以及保护您免受恶意扩展侵害的措施。你将学会如何在安装扩展器前做出明智的可靠性判断。
关于扩展运行时权限
扩展主机负责在 VS Code 中运行扩展。扩展主机拥有与VS Code本身相同的权限。这意味着 VS Code 能执行的任何作,扩展也可以通过扩展主机执行。
例如,扩展可以读写你的机器上的文件、发送网络请求、运行外部进程以及修改工作区设置。
扩展出版信托
从VS Code 1.97版本开始,当你首次安装第三方发布商的扩展时,VS Code会显示一个对话框,提示你确认是否信任该扩展的发布者。
当你信任某个扩展包的发布者,或者一个依赖其他扩展的扩展的发布者时,你也信任了依赖扩展的发布者。
你之前安装的扩展的发布者被视为可信,会自动加入受信任的发布者名单。
您可以使用“扩展管理”(Managing Trusted Extensions Publishers)命令来管理受信任扩展列表。
当你通过 VS Code 命令行安装扩展时,扩展的发布者不会自动被信任。
确定延伸可靠性
在安装扩展之前,你可以采取多种步骤来判断其可靠性。Visual Studio 市场为你提供了关于该扩展的信息,帮助你做出明智的决定:
-
评分与评论:阅读他人对该扩展的看法。
-
问答:回顾现有问题及出版商的响应速度。如果你有疑虑,也可以联系扩展的发布商。
-
问题、仓库和授权:检查发行商是否提供这些,以及他们是否提供你期望的支持。
-
认证出版商:在发布者名称和域名旁使用蓝色勾号,作为额外的信任信号。勾选标记表示出版商已向市场证明拥有域名所有权。它还表明市场已验证域名的存在以及出版商在市场上的良好信誉至少六个月。

如果你想强制执行组织中允许使用的扩展,可以查看如何在 VS Code 中配置允许的扩展。
市场保护
Visual Studio Marketplace 采用多种机制来保护您免受恶意扩展的侵害:
-
恶意软件扫描:市场会对每个发布的扩展包进行恶意软件扫描,以确保其安全。扫描使用多个杀毒引擎,针对每个新扩展和每次扩展更新执行。在扫描结果完全清除之前,扩展不会在市场中公开发布。
-
动态检测:市场通过在沙箱环境中运行扩展(如洁净室虚拟机)验证其运行时行为来实现动态检测。
-
认证出版商:发布者可以通过证明域名所有权来验证身份(蓝色勾选)。这表明出版商已向市场证明拥有域名所有权。它还表明市场已验证该域名的存在以及出版商在市场上的良好信誉至少六个月。
-
异常使用监控:市场监控扩展的下载和使用模式,以检测异常行为。
-
域名抢占:The Marketplace 阻止扩展作者盗取官方发布商(如 Microsoft 或 RedHat)以及热门扩展(如 GitHub Copilot)的名称。
-
封锁列表:如果报告并验证了恶意扩展,或在扩展依赖中发现漏洞,该扩展将从市场中移除并加入阻断列表。如果扩展已经安装,VS Code会自动卸载它。
-
扩展签名验证:Visual Studio Marketplace 在所有扩展发布时都会签署。VS Code 在安装扩展时会检查该签名,以验证扩展包的完整性和来源。
-
秘密扫描:市场会自动扫描每个新发布的扩展中的秘密,如API密钥或凭证(例如Azure DevOps PAT令牌)。如果检测到任何秘密,发布会被阻止以防止潜在的安全风险。VSCE工具的扫描
.env在打包过程中文件,如果发现秘密则阻止发布。
了解这些措施,请参阅《Visual Studio Marketplace 的安全与信任》博客文章。
举报可疑分机
如果你发现某个扩展看起来可疑,请向市场团队举报该扩展。市场团队会在一个工作日内提供初步回复。
要举报延期:
-
在Visual Studio市场打开扩展页面。
-
在扩展“更多信息”部分底部选择“举报问题”链接。
相关资源
-
学习如何在Visual Studio Code中安装和管理扩展。
-
使用Workspace Trust来决定项目文件夹中的代码是否可以在没有明确批准的情况下由VS Code及其扩展执行。这在处理不熟悉代码时增加了额外的安全层。
-
在 VS Code 中配置允许的扩展,以强制执行组织中允许使用的扩展。