值得买科技-分享、推荐高性价品牌产品购物排行榜!

「开源」以反战之名,向开源项目“投毒”?知名NPM包作者注入恶意代码,只为一个文件名

CSDN 真实性核验

认证:数码产品优质原创作者

发布时间:2022-03-19 22:12 来源:什么值得买

浏览量:2531 1060次收藏

分类:数码产品 新闻直播视频资讯

本文有1524个文字,大小约为7KB,预计阅读时间4分钟

[导读]: 原文标题:以反战之名,向开源项目“投毒”?知名NPM包作者注入恶意代码,只为一个文件名 作者 | 张洁 责编 | 屠敏 出品 | CSDN 2021 年,开源软件引发的安全性问题层出不穷,继影响广...

精选评测好文

 

原文标题:以反战之名,向开源项目“投毒”?知名NPM包作者注入恶意代码,只为一个文件名

作者 | 张洁 责编 | 屠敏

出品 | CSDN

2021 年,开源软件引发的安全性问题层出不穷,继影响广泛的 Log4j2 漏洞,还有因没有开源收入,著名开源 npm 包 faker.js 和 colors.js 项目作者 Marak Squires 主动恶意破坏自己的项目并 " 删库跑路 " 等事件。近期又有开发者向自己维护的项目源代码中 " 投毒 ",将恶意代码注入其中,当其他开发者使用该项目时,自己的计算机桌面会自动生成一个名为 "WITH-LOVE-FROM-AMERICA.txt",打开乍一看啥都没有,但又细思极恐。

在了解这位开发者究竟为何这么做时,其名曰 " 反战 "。

向多版本 " 投毒 ",开源开发者的蓄谋

这个故事要从名为 node-ipc 和 Peacenotwar 的两个 npm 包开始说起。

node-ipc 是 npm 中一个主流的开源包,平均每周下载次数高达 100 万次。它允许进程间通信,被广泛用于基于 JavaScript 的项目中,在我们经常使用的 Vue.js 和 Node.js 等框架中也常能看到 node-ipc 的身影。

时针回到 3 月 8 日这一天,node-ipc 背后的作者 RIAEvangelist ( Brandon Nozaki Miller ) 在这个项目中发布了一个 Peacenotwar 的 npm 包。

所谓 Peacenotwar,正如 RIAEvangelist 对此模块撰写的描述那番:

这段代码是一个非破坏性的例子,说明为什么控制你的 node 模块很重要。它还可以作为一种非暴力抗议,以反对俄罗斯目前威胁世界的侵略行为。此模块将在您的用户桌面上添加一条和平消息,并且仅在它不存在时才会这样做,只是为了礼貌。

事实上,据安全厂商 Snyk 后来的调查显示,这是一次蓄意而为的行动,并非 RIAEvangelist 一时兴起。

因为在 3 月 7 日,RIAEvangelist 接连发布了 node-ipc 的 10.1.1、10.1.2 两个版本。在这两个版本中,RIAEvangelist 对代码进行了更新,还将源码进行了压缩,简单地将一些关键字符串进行了 base64 编码,由此也让部分开发者对他的所为可能会带来的一些可疑活动、可能滥用源代码和包行为表示担忧。

此次更新的两个版本的代码被添加设置了一个计时器,一旦有代码经过计时器函数时,它们将在以下代码行中用作文件输入源,以擦除文件内容并将其替换为心形符号。除此以外,这段代码还会对来自俄罗斯或白俄罗斯的 IP 进行监测。

本来很多人只是对 RIAEvangelist 的行为感到担心和不安,万万没想到,3 月 8 日,node-ipc 10.1.3 版本发布了,且这个版本引入了 Peacenotwar 模块。四个小时后,node-ipc 11.0.0 版本发布,此时,开发者在基于 node-ipc 包构建项目时,桌面上会无缘无故出现一个名为 "WITH-LOVE-FROM-AMERICA.txt" 的文件。

刚开始,并没有太多人发现这个问题,因为在此之前,Peacenotwar 模块几乎无人下载。

然而,直到 3 月 15 日,Peacenotwar 的下载量激增。

想必很多人也能猜到,没错,在这一天中,RIAEvangelist 将 Peacenotwar 作为 node-ipc 的依赖项引入了。与此同时,RIAEvangelist 也发布了 node-ipc 9.2.2 补丁版本,它是 node-ipc 的最新的稳定分支,其中主流的前端框架 vue cli 使用了这一版本。

这意味着所有使用 node-ipc 的项目都可以让用户的屏幕显示 "WITH-LOVE-FROM-AMERICA.txt" 文件。幸运的是,此模块仅显示文本,不会擦除数据。据悉,RIAEvangelist 最初开发这份恶意代码是为了识别用户的 IP 并仅当地址来自俄罗斯或白俄罗斯时,删除数据的。

此事一经发现,便在技术圈中引起了热议。

开源社区的信任再遭破坏

截至目前,RIAEvangelist 把 " 投毒 " 的代码删除了。vue cli 项目中的 node-ipc 版本也回滚到了安全的 9.2.1 版本。最早有问题的 node-ipc10.1.1 和 node-ipc10.1.2 都已经废弃。

除此之外,RIAEvangelist 还在 GitHub 的相关 issue 讨论中回复到:

1. 运行该代码实际上是不可能的,它不构成威胁,但它看起来确实很吓人。

2. 我打算把这块不是战争的模块标记为抗议软件,只是为了明确说明它是这样的。

其中,RIAEvangelist 维护着 40 多个其他 npm 包,下载量达数亿。

现实来看,开源生态耗费了无数开发者的时间与精力,才慢慢壮大起来。因自己的个人观点和做法,牵扯其背后的开源开发者们和普通用户,无疑之中严重破坏了开源生态的信任,RIAEvangelist 所带来的影响也是无法估计的。

看了有关问题的讨论,RIAEvangelist 试图在扭曲事实,还说 API Key 是无效的。但经另一位开源开发者 MidSpike 实测后,这个 API Key 是有效的。

脆弱的供应链,需要每一个社区成员守护

从彼时的 Log4j2 到现在的 node-ipc,这不禁让人担心一个问题,那就是开源软件供应链安全问题,越是庞大的项目在供应链安全方面越是脆弱。

对此,有不少网友建议开发一种代码审查机制。如果审查机制建立,包含恶意代码的包将会进一步减少,同时开源社区的安全更有保障。除此以外,广大网民还需要有反恶意行为的意识,维护 " 绿色 " 开源。

开源社理事长庄表伟直接表示:我们需要建立一种开源世界的反分裂共识。

同时,开源安全扫描平台 snyk 中也给出了一些建议:" 由于担心未来的代码更新可能会给用户带来风险,我们建议完全避免使用 npm 包。如果此 npm 包作为您正在构建的应用程序的一部分捆绑在您的项目中,那么我们建议您使用 npm 包管理器功能来完全覆盖被破坏的版本并将传递依赖关系固定为 known good。" 以此来解决用户的担忧。

这件事让多少用户痛恨 RIAEvangelist,破坏了多少人所建立的心血。一代人应该有一代人的担当,广大用户应该奉献自己的力量,守护好这个社区。如果开源社区不加以整治,未来又会有多少个这样的 " 包 " 呢?开源社区的成员还会越来越多吗?对于这件事,你有什么看法吗?

热门阅读:米家电暖器系列体验报告<\a>

其他人还看了

「谷歌」谷歌1800万投资烂尾项目,推动个人数据在不同平台迁移

玩客云安装最新版开源智能家居homeassistant

「雷蛇」雷蛇公布2021年全年收益:录得收入16.196亿美元

「risc-v」售价239美元,第一台RISC-V便携式计算机上市

多系统支持开源,Station-顾拜蛋蛋

哎呦不错哦,赞!(332)
打赏 打赏打赏给作者

郑重声明:本文“「开源」以反战之名,向开源项目“投毒”?知名NPM包作者注入恶意代码,只为一个文件名”,https://nmgjrty.com/shumacp_383817.html内容,由CSDN提供发布,请自行判断内容优劣。

上一篇:「泡泡玛特」价格虚高、质量差、涉炒作,被315点名的泡泡玛特怎么了?

下一篇:没有了

说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!
相关推荐

返回顶部