你的 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 的扩展;它们也存在同样的风险,不过研究人员暂时还未追踪到相关线索。“像往常一样,对你安装的扩展保持警惕,并记住每个扩展都是以用户的权限运行的。”
详情可查看完整报告。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
Pushup —— Go Web 框架
Pushup 是一个实验性的新项目,使用 Go 创建现代、面向页面的 Web 应用。Pushup 旨在探索使用 Go 轻松构建面向页面的服务器端 Web 应用程序。 Pushup 主要包含以下功能: 固定的 project/app 目录结构,支持基于文件的路由(file-based routing) 可替代传统 Web 框架目标的轻量级标记语法 (lightweight markup),将用于控制流的 Go 代码和命令式、类似视图控制器的代码与 HTML 标记相结合 解析上述标记语法并生成纯 Go 代码的编译器 (compiler),在 Go stdlibnet/http包之上构建独立的 Web 应用程序 示例代码 ^import "time" ^{ title := "Hello, from Pushup!" } <h1>^title</h1> <p>The time is now ^time.Now().String().</p> ^if time.Now().Weekday() == time.Fri...
-
下一篇
Linux 准备禁用 Microsoft RNDIS 协议的驱动程序
在下一个 Linux 内核周期中,上游可能会出于安全考虑禁用对 Microsoft 远程网络驱动程序接口规范 (RNDIS) 协议的驱动程序支持。 RNDIS 是 Microsoft在 USB 上用于虚拟以太网功能的专有协议。但该RNDIS 协议在设计之初对安全性的考虑不足,有可能将系统连接到不受信任的主机或设备,导致系统不安全和易受攻击。 Windows 只对 XP 之后的系统更新该协议,旧的 Windows 系统可以使用普通的 USB 类协议来代替。而 Windows 之外的其它系统对 RNDIS 的支持参差不齐,因此 RNDIS 目前并未在跨平台环境中广泛使用。 Android 已经禁用该协议很多年了,目前应该没有其他系统真正需要该 RNDIS 协议。并且出于安全考虑,上游 Linux 内核正在将 RNDIS 内核驱动程序移到“BROKEN”Kconfig 选项后面,以便在未来的内核构建中禁用它们。一旦被标记为“BROKEN”一段时间,RNDIS驱动程序最终可能会从上游源代码树中删除。 Greg Kroah-Hartman 周一创建了usb.git rndis-removal 分...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- MySQL数据库在高并发下的优化方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- MySQL8.0.19开启GTID主从同步CentOS8
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS7,8上快速安装Gitea,搭建Git服务器