本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

扩展运行时安全

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

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

  • 问答:查看现有的问题以及发布者的响应水平。如果您有任何疑问,还可以与扩展的发布者互动。

  • 问题、仓库和许可证:检查出版商是否提供了这些内容,并确保它们具有您期望的支持。

  • 认证发布者:使用发布者名称和域名旁边的蓝色检查标记作为额外的信任信号。检查标记表明发布者已向市场证明其域名拥有权。这也表明市场已经验证了域名的存在以及发布者在市场上的良好信誉至少六个月。

    已验证的出版商

小贴士

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

市场保护

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

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

  • 动态检测:市场通过在受控环境中运行扩展来动态检测其运行时行为(干净房间VM)。

  • 认证出版商:出版商可以通过证明域名拥有权来验证(蓝色勾号)其身份。这表明出版商已向市场证明其拥有域名。这也表明市场已验证域名的存在以及出版商在市场上的良好信誉至少六个月。

  • 不寻常的使用监控:市场监控扩展的下载和使用模式,以检测不寻常的行为。

  • 名称 squatting:市场阻止扩展作者窃取官方出版商(如微软或红帽)或热门扩展(如GitHub Copilot)的名称。

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

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

  • 秘密扫描:市场会自动扫描每个新发布的扩展,以查找诸如 API 密钥或凭据(例如,Azure DevOps PAT 令牌)之类的秘密。如果检测到任何秘密,发布将被阻止以防止潜在的安全风险。VSCE 工具扫描.env在打包过程中检查文件,并在发现机密信息时阻止发布。

了解这些措施在Visual Studio Marketplace 安全性和信任博客文章中

报告可疑扩展

如果你发现一个看起来可疑的扩展,请向市场团队报告该扩展。市场团队将在一个工作日内提供初步回应。

报告延期:

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

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

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

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

  • 配置VS Code 中允许的扩展,以确保在您的组织中允许使用哪些扩展。