写点什么

以反战为名,百万周下载量 node-ipc 包作者进行供应链投毒

  • 2022-03-16
  • 本文字数:1993 字

    阅读完需:约 7 分钟

以反战为名,百万周下载量node-ipc包作者进行供应链投毒

 近日,不少开发者在使用到 vue -cli 中的 node-ipc 模块时,这个依赖项会在桌面以及其他位置创建一个叫做“WITH-LOVE-FROM-AMERICA.txt”的文件,不过打开这个文件是空的。据悉,该 package 每周下载量达到了百万。另外,使用 Yarn 的开发者也受到了影响。 

以反战为名的供应链投毒?

 

开始有人以为只是个恶作剧,但事情并非如此简单。有开发者在对代码进行测试处理后发现,node-ipc 包的作者 RIAEvangelist 在投毒。他起初提交的是一段恶意攻击代码:如果主机的 IP 地址来自俄罗斯或白俄罗斯,该代码将对其文件进行攻击,将文件全部替换成 ❤该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念。


 攻击源代码地址:https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js

 

TC39 代表、Web 开发工程师贺师俊在知乎上分析称,源码经过压缩,并简单地将一些关键字符串进行了 base64 编码,目的是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP 尝试覆盖当前目录、父目录和根目录的所有文件。

 

虽然作者删除了该段代码,但贺师俊认为这仍然是一种恶劣的供应链投毒。“这里,具体的动机不重要,无论其动机多么良好(更不用说,很多人可能并不同意其政治倾向和道德立场),这样的行为都严重破坏了开源生态中的信任。”

 

OpenHarmony 项目群工作委员会执行总监、中国科学院软件研究所高级工程师罗未也表示,开源软件供应链安全是一个及其严酷的议题,如果说 log4j 还能看做难以避免的工程误差,这件事就存在违法嫌疑。

 

有开发者提供了该问题的解决方式:首先按照 readme 正常 install,构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除;然后在项目的 node_models 目录下,将'peacenotwar'目录删除;之后将'项目/node_modules/node-ipc/node-ipc.js'这个文件中引用'peacenotwar'的代码注释掉,便可以正常启动项目。

 

此外,Vue-cli 昨天发布了新版本5.0.2,将 node-ipc 版本锁定到 v9.2.1,用户可以直接升级。据悉,受恶意代码受影响的 node-ipc 版本为 v10.1.3 ,已经被作者删除或被 NPM 撤下,而 WITH-LOVE-FROM-AMERICA.txt 文件是由 v11.0.0 版本引入的。

 

在此次事件中,有开发者认为Vue 团队在发布新版本方面做得还不够,Vue 团队应该在官方网站上添加关于该事件的弹出窗口,弃用所有受感染的 vue-cli 包,为其添加一条消息。另外还可以在发布新版本时添加一些警告,以便用户看到警告并自动升级。

 

脆弱的 Node.js 生态

 

这一事件再次显示了 JS/Node/NPM 生态的脆弱。

 

去年 10 月,NPM 官方仓库 ua-parser-js 被恶意劫持,多个版本被植入了挖矿脚本。这个库每周下载数百万次,被用于一千多个项目,包括 Facebook、微软、亚马逊、Instagram、谷歌、Slack、Mozilla、Discord、Elastic、Intuit、Reddit 等公司的项目。同年 2 月,NPM 遭遇供应链投毒攻击,其官方仓库被上传了radar-cms恶意包,借此窃取 K8s 集群凭证。

 

NPM 模块备受开发人员欢迎,这些模块间还普遍存在复杂的依赖关系,某个包通常安装另一个包作为依赖项,而开发人员对此却并不知情。依赖项的绝对数量也带来了更多的安全问题。只要破坏了开发人员普遍使用的流行包,恶意代码可以直接大规模地传播给受害者,而这完全可以通过依赖混淆、劫持弱凭据、利用漏洞访问目标代码或使用开发人员放弃的包的名称来完成。

 

另外,NPM 存储库 npmjs.com 不要求 NPM 包中的代码与链接的 GitHub 存储库中的代码相同。这意味着攻击者不需要破坏 GitHub 存储库,只要破坏 NPM 包即可。

 

贺师俊在知乎上表示,要解决或缓解这一问题,应该考虑在 JS 语言和 JS 运行时层面引入一些机制,比如说针对包级别的权限管理(deno 那样粗粒度的应用级别的权限管理并不足以解决供应链投毒问题)、在更多的 API 中引入类似 TrustedType 的机制等。“而这显然已经超出了库、框架或工程管控的层面。这也是为什么我一直说国内头部大厂应该要投入资源去参与语言标准、引擎和平台实现。”

 

罗未提出,开源软件可参照其他行业的处理方式,如建筑设计师要终生为建筑设计质量担责、银行批贷员要终生为发放的贷款担责等。

 

“开源软件,特别是重要的核心开源软件,往往远比一笔贷款或一个建筑对全球社会经济影响深远。开源软件作为一个具有风险的重型工程行业,必须匹配的行业风险管控体系,这是我们不得不面对的问题。”

 

结束语

 

“看一遍开源协议,要么 fork 要么忍着。”有开发人员对该事件评论道。前有 Node、React、pytorch、GitHub 等官网声明支援乌克兰,后有个人开发者进行供应链投毒,战争让大家对开源有了不同以往的认识。

 

开源组织应不应该旗帜鲜明地表达自己技术之外的立场,并利用自身影响力去支持某一方呢?这是一个仁者见仁、智者见智的问题,我们不做赘述。但这个问题实实在在地出现了,就成了整个开源行业应该考虑的问题:当开源开始“站队”时,开发者该如何自处?


2022-03-16 16:229942

评论 2 条评论

发布
用户头像
一切都在预示着自主的必要性
2022-03-26 11:41
回复
用户头像
白漂的一定要还的!
2022-03-21 09:05
回复
没有更多了
发现更多内容

甲方日常 62

句子

工作 随笔杂谈 日常

谁能阻止世纪互联星光?2020年第11期北京机房网络质量评测数据排行榜发布

博睿数据

智慧公安扫码一键定位报警系统搭建

t13823115967

智慧公安 智慧公安扫码 一键定位报警系统搭建

国产电子表格Luckysheet后台也开源了!支持在线协作,一键docker私有部署

奇异石榴果

Java Excel SpreadJS 表格控件

给你一个亿的keys,Redis如何统计?

不才陈某

redis

《穿越数据的迷宫》笔记:第 3 章 DAMA的数据管理原则

方志

数据治理

英特尔发布第二代Horse Ridge低温量子控制芯片

E科讯

架构师训练营第 1 期 -week11

习习

IntelliJ IDEA 2020.3正式发布,年度最后一个版本很讲武德

YourBatman

IDEA 新特性 2020.3

Spock单元测试框架实战指南一Spock是什么?它和JUnit有什么区别?

Java老k

Java 单元测试 JUnit Mock spock

《技术男征服美女HR》—Fiber、Coroutine和多线程那些事

太白上仙

Java 程序员 面试 后端 多线程

javascript开发后端程序的神器nodejs

程序那些事

Java 后端 nodejs koa 程序那些事

我理解的信息化、数字化、数智化

boshi

数字化 数据智能 信息化

Spring 源码学习 05:BeanDefinition 概念及其实现

程序员小航

spring 源码 源码阅读 BeanDefinition

【技术分享】浅谈RTC及Agora RTC SDK集成介绍

Hanson

加码线下,新荣耀“破题”场景经济

脑极体

Linux平台中调试C/C++内存泄漏方法 (腾讯和MTK面试的时候问到的)

linux大本营

c++ Linux 后台开发 架构师

极客大学 - 架构师训练营 第十一周总结

9527

AOT慈善币系统软件开发|AOT慈善币APP开发

系统开发 现成系统

1分钟解密:博睿大数据核心引擎Bonree Zeus六大优势

博睿数据

架构师训练营第 11 周课后练习

叶纪想

极客大学架构师训练营

关于binlog,这个参数能不能用?

Simon

MySQL Binlog

面试无忧:源码+实践,讲到MySQL调优的底层算法实现

996小迁

Java 架构 面试

重点人员管控系统开发,可视化数据分析搭建

t13823115967

重点人员管控系统开发 智慧公安 可视化数据分析搭建

架构设计之路-1

5加3彩票

架构师 代码规范

跨架构编程不再难,英特尔机器编程工具迎来重磅更新

E科讯

英特尔推动集成光电的发展,用于数据中心

E科讯

英特尔神经拟态生态系统发展和研究的最新进展

E科讯

微软最强 Python 自动化工具开源了!不用写一行代码!

星安果

Python 微软 自动化 自动化测试 playwright

腾讯大牛整合Java+spring5系统学习架构,神乎其技

小Q

Java 学习 编程 面试 spring 5

ONES 收购 Tower,五源资本合伙人对话两位创始人

万事ONES

项目管理 团队协作 ONES Tower 收购

以反战为名,百万周下载量node-ipc包作者进行供应链投毒_开源_褚杏娟_InfoQ精选文章