网易首页 > 网易号 > 正文 申请入驻

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

0
分享至

  作者 | 张洁 责编 | 屠敏

  出品 | CSDN(ID:CSDNnews)

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

  1.https://www.zhihu.com/question/522144107

  2.https://github.com/vuejs/vue-cli/issues/7054

  3.https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulne rability/

  END

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
记者:霍尔转会曼联的交易值得关注,转会费或超5000万镑;邮报:尽管马奎尔和AC米兰有传闻,但他不会离开

记者:霍尔转会曼联的交易值得关注,转会费或超5000万镑;邮报:尽管马奎尔和AC米兰有传闻,但他不会离开

MUREDS
2026-06-02 23:27:12
日本菲律宾妄图划分台专属海域,大陆发声后,国民党反应亮了

日本菲律宾妄图划分台专属海域,大陆发声后,国民党反应亮了

DS北风
2026-06-02 11:26:10
中医倪海厦:假如你有钱,就去买好看的衣服穿,吃要尽量的简单

中医倪海厦:假如你有钱,就去买好看的衣服穿,吃要尽量的简单

富书
2026-05-30 18:26:00
101万亿债务压顶!全民化债浪潮袭来,收入受影响普通人该咋办?

101万亿债务压顶!全民化债浪潮袭来,收入受影响普通人该咋办?

今朝牛马
2026-06-02 21:24:29
政治世家危机?连战15岁金孙离家出走,扬言“做流浪汉”!

政治世家危机?连战15岁金孙离家出走,扬言“做流浪汉”!

动物奇奇怪怪
2026-06-03 01:20:27
日还利息2000多万!王健林满头白发断崖衰老。

日还利息2000多万!王健林满头白发断崖衰老。

流苏晚晴
2026-06-02 18:09:41
英媒评世界杯十大球衣:90年德国居首,喀麦隆无袖球衣在列

英媒评世界杯十大球衣:90年德国居首,喀麦隆无袖球衣在列

懂球帝
2026-06-02 14:58:36
普京也无能为力:世界第二空军,为何拿不下乌克兰的天空

普京也无能为力:世界第二空军,为何拿不下乌克兰的天空

民间胡扯老哥
2026-06-01 06:07:10
每体:皇马1.86亿欧签4新援,均无缘世界杯

每体:皇马1.86亿欧签4新援,均无缘世界杯

懂球帝
2026-06-03 06:52:06
英格兰公布球衣号码!贝林厄姆身披10号战袍 三狮主力阵容浮现

英格兰公布球衣号码!贝林厄姆身披10号战袍 三狮主力阵容浮现

球事百科吖
2026-06-03 02:15:21
1.2万亿顺差创百年纪录,张燕生却警告:再赚下去,中国要有麻烦

1.2万亿顺差创百年纪录,张燕生却警告:再赚下去,中国要有麻烦

趣文说娱
2026-05-29 20:13:52
日本人真的那么善良吗?4.5万人研究曝光一个扎心真相:有些“温柔”,可能只是表面现象

日本人真的那么善良吗?4.5万人研究曝光一个扎心真相:有些“温柔”,可能只是表面现象

日本物语
2026-06-02 21:07:36
这就是孩子多的原因?霍华德:18岁刚进联盟面对诱惑和欺骗一脸懵!

这就是孩子多的原因?霍华德:18岁刚进联盟面对诱惑和欺骗一脸懵!

篮球大图
2026-06-02 10:43:06
K11嘲讽顾客“穷逛”女店员已社死!商场惨遭牵连,本人已被开除

K11嘲讽顾客“穷逛”女店员已社死!商场惨遭牵连,本人已被开除

小柱解说游戏
2026-06-02 00:58:17
驴友夫妇痛骂国内医院,8天花1471元?3年后美国车祸花60余万美元

驴友夫妇痛骂国内医院,8天花1471元?3年后美国车祸花60余万美元

贱议你读史
2026-05-31 16:19:12
大帝就是大帝,说打就打!俄罗斯再次出手

大帝就是大帝,说打就打!俄罗斯再次出手

叶葉夜
2026-06-01 22:14:09
太过分!保安公司负责人克扣盒饭,5年从保安口中“抠”出餐费19.8万元

太过分!保安公司负责人克扣盒饭,5年从保安口中“抠”出餐费19.8万元

上观新闻
2026-06-02 20:50:16
郑丽文公然称台湾是“国家”,意欲何为?喊话大陆:美国让我过去

郑丽文公然称台湾是“国家”,意欲何为?喊话大陆:美国让我过去

陈漎侃故事
2026-05-31 21:52:20
天涯社区回归上线即被挤崩打不开 前执行总编:打不开也是一种重启成功

天涯社区回归上线即被挤崩打不开 前执行总编:打不开也是一种重启成功

快科技
2026-06-02 08:51:17
天呢!京东GDP超越上海,占据第一位,就问你服不服…

天呢!京东GDP超越上海,占据第一位,就问你服不服…

慧翔百科
2026-06-02 11:37:27
2026-06-03 07:47:00
CSDN incentive-icons
CSDN
成就一亿技术人
26603文章数 242293关注度
往期回顾 全部

科技要闻

烧掉千亿后,美团、阿里、京东谁先止血?

头条要闻

特朗普:已同以黎通话协调停火 一周内将与伊达成协议

头条要闻

特朗普:已同以黎通话协调停火 一周内将与伊达成协议

体育要闻

1米74的业余联赛替补,在英超踢中卫

娱乐要闻

奚梦瑶何猷君补办婚礼超幸福

财经要闻

智元和宇树的“暗战”愈演愈烈

汽车要闻

星途神秘新车轮廓曝光 又一款性能SUV要来了?

态度原创

游戏
艺术
教育
亲子
军事航空

离发售不远了!《寂静岭》系列新作已公开游戏评级

艺术要闻

二十年前割麦的场景

教育要闻

校长最强大的内心素养,就2个字 | 余国庆

亲子要闻

姐弟俩画画的欢乐时光

军事要闻

伊朗媒体新发布最高领袖照片

无障碍浏览 进入关怀版