Redian新闻
>
VS Code 有多么不安全:一个扩展就可能导致公司 GitHub 中的所有代码被擦除?

VS Code 有多么不安全:一个扩展就可能导致公司 GitHub 中的所有代码被擦除?

公众号新闻

作者 | 核子可乐、Tina

安装一个扩展,就可能被勒索、被擦除掉所有代码?这是真的。

Aqua Security 的研究人员用一项演示,证明了分发伪造 Visual Studio Code(VS Code)扩展有多么简单。他们将这些实际来自不受信来源的扩展,伪装成了看似合法的流行插件,48 小时内成功被安装了 1000 多次。而 VS Code 扩展会以同等于用户的权限运行,一旦安装了“恶意”扩展,就很可能造成非常大的危害。

VS Code 是迄今为止最受欢迎的 IDE

VS Code 是目前全球最受欢迎的集成开发环境 (IDE), 根据 StackOverflow 的一项调查显示,目前有 74.48% 的开发人员在使用它。

VS Code 的强大之处在于它包含大量可用扩展,能帮助开发人员根据实际需求定制编辑器。这些扩展往往来自编辑器中内置的 VS Code Marketplace。开发人员可以通过该市场直接在 VS Code 内查找和安装扩展。用户一般会输入一个搜索词,例如“Rust”或“Svelte”,而后得到一个返回的匹配扩展列表,其中显示各扩展的下载次数和用户评级。

VS Code Marketplace 中有超过 40,000 个扩展,可帮助程序员更高效地开发代码、集成特定语言的调试器,甚至将工件部署到生产环境中。一些扩展的安装下载数量非常大,例如,Jupyter 扩展有 52M 的下载量,Prettier 扩展有 27M,还有很多也已经超过 10M 。

Marketplace 中的热门扩展

这不可避免地引出了一个问题:作为 VS Code 用户,你有没有问过自己一些问题:VS Code 扩展是否值得信赖?如何检查扩展是否合法?然而事实却是,即使对于具有安全意识的开发人员来说,区分恶意和良性扩展也是一个挑战。

构建一个不安全的扩展很容易

VS Code 扩展可以实施各种各样的功能,有些扩展只是为了改变一下 IDE 的主题颜色。但所有扩展都以打开 VS Code 而没有任何沙盒的用户的权限运行,这意味着该扩展程序可以在用户的计算机上安装任何程序,包括勒索软件、擦除器等。

Aqua 研究人员宣称:“事实上,通过不安全的扩展,黑客可以访问甚至更改开发者在本地拥有的所有代码,甚至可以通过使用开发者的 SSH 密钥更改企业或组织在 GitHub 中所有存储库中的代码!这可能会产生巨大的影响!”

VS Code 系统中也提供了好几项保护开发者免受恶意扩展侵害的功能,首先,微软保证“对每个新扩展和每项扩展更新都运行病毒扫描。只有扫描完成、安全无误,该扩展才会上架 Marketplace 供公众使用。”此外,微软还采取一系列措施来防止名称抢注——即发布者故意把名称跟知名方案混淆。开发人员也可以观察扩展是否带有蓝色对号,这代表着发布者已通过网络域所有权验证。

这些举措当然也都有效果,但 Aqua 研究人员宣称“对恶意和良性扩展做正确区分颇有难度。”

针对这个结论,他们给出了以下理由:

  • 任何人都可以利用新的一次性电子邮件地址,将自己注册为扩展发布者。

  • 扩展名称和发布者名称不必唯一,可以直接复制现有名称。在示例中,研究人员发布了一个名为 Pretier 的扩展,碰瓷的明显是 Marketplace 上的高人气代码格式化插件 Prettier。

  • 发布者的蓝色对号仅代表其对域具备所有权。研究人员强调,“发布者完全可以买下一个域名并填写注册,这样就能获得经过验证的对号标记。”

  • 下载和评论肯定有指导意义,但这些东西同样可以伪造。只要精心策划,拉高下载量并不是难事。

Aqua 团队已经发现 Marketplace 中存在几个可疑的 VSCode 扩展,例如“API Generator Plugin”和“code-tester”扩展。

“code-tester” 内部代码

这些扩展有可能是代码写得很糟糕,也有可能是恶意软件。安全人员具体分析了“code-tester”的代码。如截图所示,你可以看到该扩展在安装后和 VS Code 启动运行的时候会激活函数,向具有专用子域(“http://$[hostname].robotnowai.top/vscode”)的外部 URL 发送请求,该子域是你的服务器的主机名。一旦收到来自 URL 的响应,它就会使用 eval 函数执行响应数据。此请求每 30 秒发生一次。最重要的是,由于通信使用 HTTP 而不是 HTTPS,因此很容易受到中间人攻击,从而允许其他不良行为者在使用此扩展时注入恶意代码。

另外,Aqua 团队为了验证制造“不良”扩展很容易的结论,还模仿了一个流行扩展,引诱毫无戒心的开发人员下载它。

他们选择了流行的 VS Code 扩展 Prettier,仅仅是将发布者名称从 esbenp 变为了 espenp,扩展名从 prettier-vscode 变为了 pretier-vscode。当开发人员无意中输入“ pretier ”时,伪造的扩展是唯一的搜索结果。

Aqua 团队详细解释道,URL 中的微小变化,例如省略字母“t”或将“b”转换为“p”,称为域名仿冒 ( MITRE)。这是攻击者用来欺骗开发人员的一种流行技术。一些注册管理机构反对这种技术,通常不允许用户创建具有此类相似性的新包。根据 Microsoft 的指导网站,Microsoft 和 Red Hat 的官方扩展不受域名仿冒保护。在这种情况下,VS Code Marketplace 允许用户为一个非常受欢迎的包创建一个模拟包。而且,安装数量和评级也是可以通过“在暗网中可以购买各种服务”进行操纵的。也就是说,不管项目有多大影响力,任何人都可以给它构建一个伪装扩展,让越来越多的不知情用户会下载假扩展程序。

Aqua 团队并未演示恶意扩展可以通过微软的病毒检查程序,但这个假冒版的 Prettier 仍在 48 小时内成功被安装了 1000 多次。假货之所以成功,就归功于它使用了常见的拼写错误。一旦开发者在搜索时稍不留神,就会安装成 Pretier 这款伪造扩展。VS Code 扩展会以同等于用户的权限运行,而一个真正的攻击者,绝对不会只有 48 小时的活动时间。

48 小时的安装数量

同样重要的是要注意 VS Code 扩展是用 Node 编写的,并且包是从 NPM 下载的,将恶意代码包上传到 NPM 等包管理器的威胁也一直存在。而且,像 NPM 或 PyPi 这样的大型软件包仓库体量甚巨,已经不太可能对每次提交都进行人工检查。在这种自动化检查的大背景下,恶意扩展往往在实际发现乃至下架前,就已经被下载了数千次。因此一旦安装恶意扩展被安装在许多开发人员的机器上,就会危及许多组织,其影响会非常大。当然,微软专门设置了“枪毙清单”,被列入其中的条目一经发现会被直接卸载。

很多朋友都知道软件包仓库中存在不良依赖项风险,但在开发插件这边则容易掉以轻心。这可能是因为前者的安装过程更明确,这样编程者稍加关注就更可能发现问题。无论如何,插件同样有可能引发真实危害,此次研究报告就凸显出了现有保护措施中的软肋所在。

参考链接:

https://devclass.com/2023/01/09/researchers-demonstrate-a-thousand-installs-of-fake-vs-code-extension-in-48-hours/?td=rt-3a

https://blog.aquasec.com/can-you-trust-your-vscode-extensions

今日好文推荐

清华应届硕士炮轰字节:恶意低薪,硕士白读还倒贴;马云不再实际控制蚂蚁;开源 ROM 魔趣创始人宣布删库跑路|Q 资讯

百万用户逃离Twitter转向这个小众社交平台,互联网中心化终将走向大溃败?

芯片的后半场,“提速”依旧是第一要务,那除此之外呢?

日本软件业烂透了!谷歌日本高管揭秘回顾那些被遗忘的错误

活动推荐
冲 20W 学习特惠丨 MySQL 实战 45 讲

用前阿里 P9 丁奇自己的话说,专栏他最满意的部分,原理 + 实践案例,搞定面试难题

专栏梳理了 MySQL 的主线知识,比如事务、索引、锁等;并基于这条主线上,带你缕清概念、机制、原理、案例分析以及本质,让你真正能掌握 MySQL 核心技术与底层原理。

现在有个冲刺 20W 学习特惠活动低至 3 折抢,推荐给有需要的同学,也欢迎同学们转发图片进行分享。

扫码或点击阅读原文即可免费试读 👇

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
可能导致抑郁症的思维方式,千万当心看这样的直播很享受——徐金富教授等:新冠病毒XBB突变株的由来、特点和可能导致的临床应对挑战2022傅雷翻译出版奖获奖者揭晓 Le palmarès du Prix Fu Lei 2022 dévoilé小破本也能炼GPT!300行代码搞定,GitHub获6k星,来自特斯拉前AI总监硬核观察 #846 GitHub 推出 Copilot 商业版,为代码建议提供辩护和索赔GitHub/GitLab同天宣布裁员,最高比例10%!GitHub所有办公室不再续租【健康】这种食物虽然咸但是可能导致糖尿病,小心亚硝酸盐开源圈震荡!全球两大代码托管平台宣布裁员,GitHub裁员10%,GitLab裁员7%【快讯】NASA发现“第二个地球”|中国疫情好转可能导致美加息注意!圣诞树可能导致过敏!哮喘和过敏患者易受影响!简单几步即可避免!在 VS Code 和 Codium 中编写 Python 程序 | Linux 中国VS Code有多么不安全:一个扩展就可能导致公司GitHub中的所有代码被擦除?近50人食用毒菠菜后患病!继Costco 之后,Woolworths 和Aldi 也召回不安全食材内核代码量不到一万行、GitHub star超5k,国产开源物联网操作系统TencentOS Tiny的探索与实践天花板的高度决定于组织度洛杉矶女子称,美甲可能导致她患上癌症聊聊 Spring 中最常用的 11 个扩展点全美超过36万辆FSD特斯拉被召回:可能导致撞车GitHub Copilot代码笔刷火了,一刷修bug加文档,特斯拉前AI总监:我现在80%的代码由AI完成雪天遐思Acciona Energía 收购德州最大的电池储能项目72G《英雄联盟》源代码被盗,拳头游戏拒绝打钱,黑客:100万美元起拍!这款热销植物奶被紧急召回,可能导致肉毒杆菌中毒!各大WWS均有出售,华人赶紧自查!40岁律师当众猝死警示录:阳康后两周内性生活等剧烈运动,可能导致死亡5 个即将推出的可能会挑战 VS Code 的代码编辑器 | Linux 中国欧洲15船游+自由行-6 Valencia-瓦伦西亚21类新冠可能导致重症的基础疾病清单,尤其这3类常见病人,一定要看…美国有43个州检测到该毒株! 专家:XBB.1.5有可能导致更多感染,但并不会更严重毛泽东说错误常常是正确的先导15年做不好的代码搜索,用Rust重写搞定:GitHub声称能从此“改变游戏规则”中国或将面临多波感染高峰?服用布洛芬可能导致死亡?专家回应!如何保护老人这一脆弱群体?张文宏最新发声一口“快乐水”一撮毛!研究:含糖饮料可能导致头秃Kubernetes 调查报告:配置不当可能导致安全问题2023年医师报名后资格审核必看,这几点可能导致报名审核不通过!
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。