你的 VS Code 扩展值得信赖吗?


Aqua Nautilus 研究人员最近发现,攻击者可以轻松地冒充流行的 Visual Studio Code 扩展并诱骗不知情的开发人员下载它们。VSCode 是迄今为止最受欢迎的 IDE;StackOverflow 的一项调查指出,其目前已被 74.48% 的开发人员所使用。VSCode 的强大之处在于其种类繁多的扩展,VSCode Marketplace 中共有超过 40,000 个扩展。

作为 VSCode 用户,所使用的 VSCode 扩展是否值得信赖或合法也是一个问题。根据介绍,虽然有几种功能有助于保护开发人员免受恶意扩展的侵害。譬如,微软保证对每个新扩展和每个扩展更新都运行病毒扫描。在扫描结果一切正常之前,该扩展不会发布在 Marketplace 上供公众使用。以及采取了一些措施来防止名称抢注,即名称故意与知名名称相似。开发人员还可以观察扩展是否有蓝勾,该标识意味着发布者已经验证了一个 web 域名的所有权(有些正版扩展也并没有进行验证,如 Prettier 等)。

Marketplace 中的热门扩展

但研究人员指出,即使对于具有安全意识的开发人员来说,想要准确区分恶意和良性扩展也是一项挑战。并提出了几点论据:

  • 任何人都可以注册成为扩展发布者,甚至使用一个新的一次性电子邮件地址。
  • 扩展的扩展名称和发布者名称不必是唯一的,可以复制现有名称。在给出的例子中,研究人员以流行的 VSCode 扩展 Prettier 为例,创建了一个伪装的新扩展。仔细查看 URL 可发现,区别在于发布者名称(esbenp 与 espenp)和扩展名(prettier-vscode 与 pretier-vscode)。当用户正确搜索 Prettier 扩展时,该模拟扩展出现在第 26 位,风险很低。但如果开发人员无意中错误输入为“pretier”时,该伪装扩展则是唯一的搜索结果。

正版

盗版

  • 发布者的蓝勾仅证明对一个域的所有权。“发布者可以购买任何域名并注册它以获得那个验证的勾号。”
  • 下载和评论的数量是有用的,但这些东西可以编排和伪造。

Aqua 团队未能证明恶意扩展可以通过 Microsoft 的病毒检查程序。但数据表明,其所发布的 Prettier 伪装扩展,在不到 48 小时的时间在全世界范围内被安装了 1000 多次。VS Code 扩展以与用户相同的权限运行,因此如果安装恶意扩展,很可能会造成损害。

研究人员总结称,恶意 VSCode 扩展的威胁是真实存在的。过去可能因为没有发生过有重大影响的事件,而导致其没有受到很多的关注。然而,攻击者一直在努力扩展他们的技术库,使他们能够在组织网络内运行恶意代码。“作为研究人员,我们在这里揭示此类威胁并提高社区对这些新的潜在切入点的认识。”

同样重要的是要注意 VSCode 扩展是用 Node 编写的,并且包是从 NPM 下载的,从而还一直存在着恶意代码包被上传到 NPM 等软件包管理器的威胁。因此存在这样的实际风险:即不知情的合法开发人员可能会在不知不觉中使用来自 NPM 的恶意包作为其扩展的依赖项,从而导致整个扩展遭到破坏,并在不知不觉中危及社区。


除了 VSCode 扩展,Marketplace 还提供 Visual Studio 和 Azure DevOps 的扩展;它们也存在同样的风险,不过研究人员暂时还未追踪到相关线索。“像往常一样,对你安装的扩展保持警惕,并记住每个扩展都是以用户的权限运行的。

详情可查看完整报告。


相關推薦

2023-06-09

件的自动复制 - 拖动或粘贴到 Markdown 将新文件添加到你的工作区。 想在 Markdown 文档中添加图片或视频?与其浪费时间先手动将文件复制到您的工作区,然后添加指向它的链接,现在你只需将文件拖放到或粘贴到你的 Markdo

2022-10-17

经通过内部设置提供了同样的功能。通过启用以下设置,你的 tags 将自动重命名,而无需第三方扩展。 "editor.linkedEditing": true 2、Auto Close Tag — 800 万次下载 这个非常受欢迎的扩展,与前一个扩展的作者是同一个人。目前

2023-05-05

频文件的 <video> tag。你可以从 VS Code 的资源管理器或你的本地操作系统中拖动视频。 Notebooks 将图像作为附件插入 - 在图像链接、路径或附件之间进行选择。 现在可以将图像文件拖放到笔记本 Markdown 单元格中以创

2023-03-02

在配置文件之间快速切换,它会显示一个下拉列表,列出你的可用配置文件。 辅助功能改进- 新的音频提示,改进的终端屏幕阅读器模式。 当一个命令在集成了 shell 的终端中以 non-zero code 退出时,会发生故障。为了向用

2023-03-31

Move symbol to Code Actions,你现在可以更方便地用 Pylance 重构你的 Python 代码。 要试用它,可在 Python 文件上选择一个符号,然后单击出现的灯泡 ( Ctrl+. )。你可以把符号移动到一个现有的文件或一个新的文件中。如果位置是

2023-06-08

辑器中; 特点: 用新的 Solution Explorer 视图管理你的项目 C# Dev Kit 扩展通过一个新的 Solution Explorer 视图增强了 VS Code 现有的工作区,为应用程序提供了一个精美和结构化的视图,以便轻松地进行中央项目管理。 开发者可

2022-10-08

Dev Container Features 让你轻松地将预先包装好的功能添加到你的开发容器中。无论是像 Git 或 Docker 这样的工具,还是对 Go 或 Java 这样的编程语言的支持,你都可以查看可用功能的列表,并将它们添加到你的 devcontainer.json 中。你还

2022-06-10

理器中的文件。 文件资源管理器现在支持解析和隐藏被你的 .gitignore 文件排除的文件。这可以通过 Explorer: Exclude Git Ignore (explorer.excludeGitIgnore) 设置启用。这个设置与 files.exclude 一起工作,以从资源管理器中隐藏不需要

2023-04-27

Nushell,简称 Nu,是一个新的 shell,它对你的命令行采取了一种现代的、结构化的方法。它与你的文件系统、操作系统和越来越多的文件格式的数据无缝衔接。 近日 Nu 0.79 版本正式发布,这个版本增强了对 IDE 的支持。 VS Code 扩

2022-11-04

如果你已经厌倦了当你移动或重命名文件时不小心破坏了你的 Markdown 中的链接或图片,那么可以试试新的 markdown.updateLinksOnFileMove.enabled 设置。 启用这个新设置后,当文件在 VS Code Explorer 中被移动或重命名时,VS Code 将自动更新

2021-11-09

该VSSDK\\VisualStudioIntegration\\Common\\Assemblies文件夹中。如果你的构建依赖于这些程序集,请迁移项目以改用 NuGet 包。添加了 ILanguageClient 重大更改修复 Git 工具 在创建 git 仓库的过程中,现在完全支持发布到 Azure DevOps状态栏的

2021-12-17

t Reload。先不说Hot Reload到底如何,单是这个方向其实还是值得期待一下Hot Reload的未来吧。 不止可以给React提供复用的组件,还可以给WPF 第三方库 举几个前端常用库来比较。 网络:现代前端有axios,Blazor有HttpClient

2024-07-05

完全可用。 预览:Profiles Editor - 在一个地方管理你的个人资料。 推出了新的"Profiles Editor",使用户能够从一个地方管理配置文件。这种体验包括创建新的配置文件、编辑和删除现有配置文件,以及导入和导出配置文件

2022-06-17

6 月 16 日,微软项目经理 Tim Heuer 公布了 VSCode C# 扩展的路线图更新,新的路线图引入语言服务器协议(LSP) 作为 VSCode C# 扩展的基础通信机制,并计划创建一个新的“LSP Tools Host”组件作为新版 C# 扩展的基础,以引入更多