前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >npm包管理机制引质疑:又一安装程序中发现恶意代码,开发者账户频遭劫持

npm包管理机制引质疑:又一安装程序中发现恶意代码,开发者账户频遭劫持

作者头像
量子位
发布2019-08-01 10:28:30
5600
发布2019-08-01 10:28:30
举报
文章被收录于专栏:量子位量子位
铜灵 发自 凹非寺 量子位 出品 | 公众号 QbitAI

npm行不行,包管理机制行不行?

最新的一次npm包被篡改事件,让开发者的这两个疑问更加强烈了。

最新中枪的是纯函数式编程语言Purescript,这种可编译为JavaScript,能用于开发Web、服务器端应用程序的语言,其npm安装程序中被植入了恶意代码。

发现漏洞的程序员Harry Garrood表示,恶意代码的目的是破坏Purescript npm安装程序,防止它成功运行。

距离问题暴露已经过去了一段时间,但对于此事的讨论依旧热烈。今天,一则《Purescript npm安装程序中的恶意代码》的贴子在Hackernews上火速升温,短短几个小时热度超过300。

这件事来龙去脉如何,可以带来哪些教训?

交接过程出问题

npm,全称Node Package Manager,相当于js的“pip”,是一个包管理工具。

出问题的Purescript npm是本月5日上架的版本,恶意代码被添加到Purescript npm安装程序的各种依赖项中。

先是插入到load-from-cwd-or-npm 3.0.2版本的npm包中,然后插入到rate-map 1.0.3版本开始的npm包中,伪装自己然后得以传播。

代码破坏了Purescript npm安装程序,让用户无法完成下载过程。

7月9日,Garrood发现了恶意代码rate-map,并报告给了npm support。

随后,Garrood着手删除Purescript npm安装程序的所有依赖项,当天发布了新版本,将恶意代码剔除。

npm包,本是为了方便管理而诞生,但若这其中出现各中安全风险,对用户来说得不偿失。

万幸的是,这次的恶意代码仅是为了阻止程序安装完成,但若是有人恶意更深,蓄意破坏程序或者窃取用户隐私及财产呢?

这是很大的安全隐患。

根据Garrood的说法,安装程序最初是由日本开发商Shinnosuke Watanabe开发和维护的。

PureScript维护人员与Watanabe就安装程序的维护问题存在分歧,并要求Watanabe将项目的维护权让渡出来。

Garrood表示,Watanabe“很不情愿”地让渡了,而7月5日推出的0.13.2版PureScript是维护人员接管以来发出的第一个版本,就是这里出了问题。

可事到如今,罪魁祸首是谁还是一笔糊涂账。没有明确的证据能证明Watanabe的账户是否被劫持,也可能是一名开发者因为个人分歧而蓄意篡改。

事后,npm也作出了回应,表示已经删除了恶意代码也发布了预防策略,但未提及其他。

最近一段时间,软件包管理工具频频被黑客篡改。

本月初,Rubygems包遭到劫持,6月,npm软件包中的一个漏洞被用来窃取加密货币。去年11月,月下载量千万的event-stream npm包被黑客篡改,对用户财产造成了潜在影响。

还安全吗?

据npm官方发布的安全性调查显示,77%的受访者担忧OSS/第三方代码的安全性,这也是Purescript npm安装程序泄露后,引发得最多的讨论。

网友hombre_fatal表示,包管理系统中包含不合格的包名称是一件非常讨厌的事,很是让人困惑。

创建者将其命名成“@shinn/Purescript”,而编辑器开发人员在创建时命名为“@whatever/Purescript”就好了,这样可以避免很多麻烦。

也有网友表示,问题其实出在JavaScript程序Balkanization中。rate-map包基本上是一行代码:start + val * (end - start)。

也有人对npm的依赖项管理网络的弊端产生了质疑:

一是不能管理软件包,否则friction将大大减缓生态系统;

二是在大部分时间都不能删除/禁用软件包,因为依赖项不会是严格不变的;

三是不能禁用子依赖项,否则不利于代码重新使用,增加冗余和包的复杂性。

上述三点,目前还是无解。

也有网友表示,软件包的可靠性应该靠相应社区的人进行保护。如果某个社区无法保护它的包不被恶意攻击,debian的用户将无法阻止它。

你怎么看?

传送门

Harry Garrood的声明: https://harry.garrood.me/blog/malicious-code-in-Purescript-npm-installer/

Hackernews讨论区: https://news.ycombinator.com/item?id=20549457

作者系网易新闻·网易号“各有态度”签约作者

近期精选阅读

AI社群 | 与优秀的人交流

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态

喜欢就点「好看」吧 !

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-07-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 量子位 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 交接过程出问题
  • 还安全吗?
  • 传送门
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档