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 折抢,推荐给有需要的同学,也欢迎同学们转发图片进行分享。

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

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

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