问题

如何看待 node-ipc 包以反战为名进行供应链投毒?

回答
好,咱们来聊聊 nodeipc 这个事儿。这事儿说起来挺有意思的,也挺让人警醒的。

简单来说,nodeipc 是一个挺常用的 Node.js 库,主要用于在不同进程之间进行通信。想象一下,你写了一个后端服务,想让它和另一个独立的后台任务互相打个招呼、传个数据,nodeipc 就是用来做这种事的。它在 Node.js 生态里也算是个基础款了,很多项目都可能用到。

“反战”的旗帜,供应链的毒药

这事儿的关键点在于,这个包的作者,在某个版本(具体是 10.1.2 和 10.1.3)里,利用了“反战”的名义,往自己的包里塞了恶意代码。这是一种典型的供应链攻击。

供应链攻击是什么意思呢?你可以想象一下你买东西。正常情况下,你买到的产品是从制造商那里,经过一系列正规渠道,最终到你手里。供应链攻击就像是,有人在某个环节,偷偷地把产品里面塞了点不好的东西,然后这东西就顺着正常的供应链流到了你手里。

在软件开发里,这些“产品”就是各种开源的库和包。开发者们为了提高效率,不会什么都从头写,而是会引用别人写好的库。nodeipc 就是这样一个别人写好的库。

这次 nodeipc 的作者,就在更新的版本里,加入了恶意代码。这个代码在特定条件下会被触发,比如当它检测到你的电脑是来自俄罗斯或白俄罗斯的时候,就会在你的电脑上删除一些文件。听起来很“反战”,对吧?作者可能觉得这是在用技术手段表达自己的立场。

为什么这事儿很严重?

1. 信任的打破: 开源软件之所以能蓬勃发展,很大程度上是因为社区的信任。开发者们相信别人贡献的代码是安全可靠的。nodeipc 的作者这次的行为,就是在赤裸裸地践踏这种信任。一旦你安装了这个版本的 nodeipc,它就可能在你不知情的情况下执行恶意操作。

2. 影响范围广: 前面说了,nodeipc 是一个挺常用的库。一旦一个有问题的版本被发布,所有使用这个库的开发者,他们的项目都可能受到牵连。他们可能自己也不知道,自己的项目里藏着一个“定时炸弹”。这种影响是指数级扩散的。

3. 恶意行为的伪装: 作者披着“反战”的外衣,试图让自己的行为显得正当,甚至得到一些人的支持。但无论动机是什么,以牺牲他人数据安全为代价的行为,本质上都是破坏性的。而且,这种做法也可能被其他人模仿,以各种“正义”的名义进行恶意攻击,让开源社区的风险更高。

4. 难以察觉的风险: 很多开发者可能只是更新了依赖,并不会去仔细审查每一个库的每一行代码。恶意代码如果隐藏得足够深,或者触发条件比较苛刻,就更难被发现。等到问题出现时,可能已经造成了损失。

后果和启示

这次事件发生后,很多安全研究者和开发者都对此表示谴责。社区也迅速做出了反应,比如 npm(Node.js 的包管理器)就暂时将有问题的版本下架了。

这事儿给我们的启示非常深刻:

对开源项目的依赖需要审慎: 越多越依赖开源,我们就越需要关注开源项目的健康和安全。要留意那些默默无闻但被广泛使用的基础库,也要关注那些维护不善、突然进行大范围修改的项目。
加强安全审查: 团队应该建立起更严格的代码审查和依赖管理流程。在更新依赖之前,可以考虑使用工具扫描潜在的安全风险,或者对核心依赖进行更细致的评估。
警惕“政治正确”下的风险: 任何时候,技术都应该是服务于理性与共赢的。用技术去“表达立场”,但如果这种表达是以损害他人安全为代价,那它就不是“正义”,而是另一种形式的破坏。

总的来说,nodeipc 这件事,是开源社区一次非常尴尬但也极其重要的教训。它提醒我们,在享受开源带来的便利和效率的同时,也不能忽视其中潜藏的风险。信任是开源的基石,一旦被滥用,后果将非常严重。

网友意见

user avatar

第几次了?


AntUI 是一例.

event-stream 也是一例

现在 node-ipc 又是一例.



这就不禁让人担心一个问题.

正如我在很久以前的一个问题里提出的观点一样

现在这种事情频繁发生就不得不牵扯出一个问题.

供应链安全问题.

越是庞大的项目在供应链安全方面越是脆弱.

大如 node, react, 甚至 linux 这些东西, 有没有可能其 Contributor 或者其依赖组件的 Contributor 在某种情况下 (如因信仰, 政治倾向, 现实生活, 甚至在其所在国政府警察或情报部门的威逼利诱下)

在其负责的开源项目中投毒?

说不好.

如果他们真的这么做了, 谁会审查他们的代码? 尤其项目庞大的情况下除了涉军工以外谁会一行一行的检查其代码?? 没人会吧? 尤其像他这种蓄意的在代码中安插 base64 编码后的恶意逻辑, 这要不是有人发现自己桌面上多了个文件, 谁能发现得了?


是, 总会有人逐行审查代码, 但是什么时候? 一年以后么? 还是爆发的时候再审查? 这种代码就是藏飞机设备舱里的定时炸弹, 没爆炸之前谁也不知道. 爆炸的时候做什么都晚了.


Supply chain attacks - Windows security | Microsoft Docs


开源软件的信任链崩塌了.

user avatar

这是我一直反对在自由开源软件中夹带政治立场的原因,只不过 node-ipc 的作者更进一步,将纯粹的意识宣传转变为了物理斗争。

在我之前的一个回答里:

也有提到,有人就离不开政治。甚至自由软件、开源软件本身也是一场政治运动[1],但这并不代表通过自由软件宣传无关的政治立场是合理的。我一般把这种行为叫做夹带私货。而这次 node-ipc 夹带的私货,有点多。

当然,开源界也有分歧、也搞政治:自由软件与开源软件之间存在思想争论[2]。因此我在开放代码时选择什么样的开源协议,其实也是一种政治。但他们只是表现为对当今资本与商业社会的接纳方式不同,与谁当总统、谁来执政没有有半点关系。

自由与开源软件所代表的精神,是人人为我、我为人人的精神,是世界大同、天下一家的精神。从道理上讲,我认为将自由与开源软件与政治立场绑定的做法,违背了自由与开源软件运动的初衷。它通过政治立场隐式地对用户社区做了限制。

那一个自由开源软件是否可以通过使用某种开源协议、或是一些附加条款,显式地撤销某些特定用户的权利呢?作为软件的作者,当然有权利自行选择协议;但需要注意的是,不论是开源软件还是自由软件 ,对协议本身是有要求的。也就是说,不是所有的协议都能叫做“开源协议”,也不是开放了源代码就可以叫开源软件。例如,开源定义[3]的第五条指出,不得歧视任何个人或群体:

5. No Discrimination Against Persons or Groups
The license must not discriminate against any person or group of persons.

再比如,GPLv3[4] 中的第七条明确指出,

……
尽管已存在本协议的其他条款,对你添加到受保护作品的材料,你可以(如果你获得该材料版权持有人的授权)以如下条款补充本协议:
a)表示不提供品质担保或有超出十五、十六条的责任。
b)要求在此材料中或在适当的法律声明中保留特定的合理法律声明或创作印记。
c)禁止误传材料的起源,或要求合理标示修改以别于原版。
d)限制以宣传为目的使用该材料的作者或授权人的名号。
e)降低约束以便赋予在商标法下使用商品名、商品标识及服务标识。
f)要求任何转发该材料(或其修改版)并对接收者提供契约性责任许诺的人,保证这种许诺不会给作者或授权人带来连带责任。
此外的非许可性附加条款都被视作第十条所说的“进一步的限制”。如果你接收到的程序或其部分,声称受本协议约束,却补充了这种进一步的限制条款,你可以去掉它们。……

我不是律师,但“某些群体不得使用”,应当不包含在上面允许的范畴中。也就是说,你可以移除它们。

因此,虽然用户社区是不受这些条款限制的,但是很显然,这种“限制某些群体融入社区”是有违开源软件和自由软件的思想和初衷的。


至于 node-ipc,就让他凉凉吧。暗暗庆幸我用的不是俄罗斯 IP。

参考

  1. ^Richard 对自由软件运动的看法 https://lists.gnu.org/archive/html/emacs-devel/2008-03/msg00635.html
  2. ^《为什么开源错失了自由软件的重点》,Richard Stallman https://www.gnu.org/philosophy/open-source-misses-the-point.zh-cn.html
  3. ^The Open Source Definition https://opensource.org/osd
  4. ^GPL v3 非正式中文翻译 https://jxself.org/translations/gpl-3.zh.shtml
user avatar

【3月21日下午更新】

我参加了老朋友们做的《后互联网时代的乱弹》节目一起讨论了本次事件,欢迎收听!

此外,node-ipc作者除了锁定了仓库,还将仓库里最近的所有issue都关闭了,并把标题全部置空、issue描述都清空了。

【3月19日下午3点半事态更新】

大约13小时之前,进行供应链投毒的node-ipc的作者的twitter账号 electricCowboyR 被黑客攻破,头像被更换为了俄罗斯国旗,并发布其大量个人信息和其妻子的个人信息。其中暴露的个人信息也解释了为什么他有一个日文中间名,实际是其妻子(日本人)的姓。此外黑客指其加入了两个约会网站并婚内出轨。

此时只能感叹,自作孽不可活……

【3月18日晚间更新】

我看了下这波冲击issue列表的网友,几乎没有中国的,而且至少一半从github记录来看确实是程序员而不是临时注册的小号。此外,有人在油管发了个视频 Popular JS Package node-ipc Adds Malicious "Protest-ware" On Purpose,视频最后还放出了node-ipc作者自己以前发的自拍视频,也就是说,node-ipc作者的信息已经完全曝光了。

node-ipc作者锁定了repo,也就是没有人可以再发issue和评论了。同时他将仓库内容强行回滚到了恶意代码之前的提交点,并在README里写下:「Thanks for all the free pizza, and thanks to all the police that showed up to SWAT me. They were really nice fellas.」

【3月18日更新】

node-ipc的恶意代码已经被网络安全独角兽Snyk公司提报为CVE漏洞:CVE-2022-23812

最早发现恶意代码的MidSpike已经被node-ipc作者block,无法在node-ipc仓库下再进行发帖和评论。MidSpike整理了个gist:CVE-2022-23812 | RIAEvangelist/node-ipc is malware / protest-ware,并保持更新,建议关注此问题的朋友订阅和标星。

node-ipc仓库的issue列表现在已经是炸翻天了,原issue#233(这个issue号也是神)已经接近500楼,最近24小时内则被增加了200多个issue。大部分issue就是轰炸,不过也有少数issue包含一些内容,比如有个issue包含几个俄罗斯程序员的看法。我翻译了一下,有兴趣可以看看:


【3月16日凌晨回答】

如果说,往所有依赖了这个包的应用的最终用户的桌面和OneDrive目录里写个文本文件,是激进的反战宣传;那么这个comment github.com/RIAEvangelis 所发现的,就是彻底的恶意攻击了。

原始评论已经被该repo的owner删除,但我恰好做了截屏:

攻击源码在 github.com/RIAEvangelis 。源码经过压缩,并简单地将一些关键字符串进行了base64编码。其行为是,利用第三方服务探测用户IP,针对俄罗斯和白俄罗斯IP,会尝试覆盖当前目录、父目录和根目录的所有文件。

也许是「良知未泯」,或者意识到这种行为已经是严重犯罪,又也许只是「误提交」,该库的owner随后删除了这段的攻击代码(github.com/RIAEvangelis),半天后改为了现在这种更为「和平」的往桌面上写个反战宣传的做法。

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

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

【更新】进行供应链投毒的Brandon Nozaki Miller在删除了其repo下揭露其潜在的恶意代码的评论后,在vue-cli的相关issue github.com/vuejs/vue-cl 下还狡辩说,这段代码并不会真正工作,然而我的实测表明该段代码确实会覆盖用户文件,然后他又说(用来检测IP位置的服务的)API key是失效的,但被最早发现该代码的用户MidSpike揭穿——当时该API key是有效的,所以应该是Brandon Nozaki Miller在被发现后reset了API key。

如果说一开始他的行为勉强有借口,在被发现潜在的恶意行为之后,不仅不反省,还通过reset API key、删除评论等举动妄图隐瞒自己的不当行为,至此,该人的信用可谓完全破产。

我认为这样的人是开源社区的害群之马,应该果断地全面封杀。

根据 @天猪 的评论,npmmirror(原taobao npm镜像)已经将node-ipc包列入黑名单,不会同步任何新版本。进一步的,我强烈建议 npmmirror 将该人标记为不受信任的用户,将所有由其发布的包都进行锁定。我同时强烈建议所有开发者和所有开源项目行动起来,检查该人发布的所有库,如在项目中有引用,应立即锁定版本并开始寻找替代品。同时如果有其他项目授予了该人提交权限,应立即收回。

以上。

【再次更新】很遗憾(但是意料之中)github.com/RIAEvangelis 这个主题下的一些评论已经渐渐失去焦点,尤其在庄表伟发表他的观点「在issue下破口大骂同样不可取后」,一些评论开展了对庄表伟的人身攻击,骂他理中客,甚至莫名其妙地回复「You guys should first stop being triggered by the word "Taiwan"」。这和之前我评论轰炸React的issue列表事件一样,「小将的水平真心令人捉急」。

我要明确地声明,在谴责node-ipc作者,强烈建议开源社区全面清理他发布的包的同时,我,作为「开放原子开源基金会」TOC成员之一,完全赞同开源社理事长庄表伟的观点:我们需要建立一种开源世界的反分裂共识

我推荐大家认真读一下表伟的文章:

我建议所有人在开源社区如GitHub的相关issue讨论中,借鉴我党的光荣传统和斗争经验,避免单纯的情绪输出,以建立「开源世界反分裂共识」为核心目标,团结可以团结的全世界开发者,建立广泛的统一战线,无论其来自中国(包括台湾地区)、欧美、印度、俄罗斯、乌克兰、日韩、非洲……共同对抗将政治立场和意识心态分歧凌驾于开源价值之上的错误观点和分裂行为,主动有意识地传播人类命运共同体这一真正普世的价值观——并引导世界人民认识到,开源和开放标准就是构建人类命运共同体的伟大实践的一部分。

user avatar

npm应该有个针对项目和针对人的安全评级了,像这种人就应该永远被钉在开源的耻辱柱上。

user avatar

protestware这个词造得好。不过,人家既然要protest,这事情本来就是要让别人知道的,迟早被发现并加以应对,就怕某些更critical又不开源的东西,里面有开发者甚至开发者的领导,秘密搞一些奇怪的把戏,比如类似特斯拉的所谓智能车的软件,识别到有人在车内说俄语就让刹车失灵、自动急刹、自动熄火,故意错误导航之类。

类似的话题

  • 回答
    好,咱们来聊聊 nodeipc 这个事儿。这事儿说起来挺有意思的,也挺让人警醒的。简单来说,nodeipc 是一个挺常用的 Node.js 库,主要用于在不同进程之间进行通信。想象一下,你写了一个后端服务,想让它和另一个独立的后台任务互相打个招呼、传个数据,nodeipc 就是用来做这种事的。它在 .............
  • 回答
    Reaktor Hello World 卫星将搭载 Node.js 程序,这是一个非常有趣且具有前瞻性的举措。要深入理解其意义和影响,我们需要从多个维度进行分析。1. Reaktor Hello World 卫星是什么?首先,我们需要了解 Reaktor Hello World 卫星的背景。 R.............
  • 回答
    开源社区在支持乌克兰问题上的集体发声,确实是一个值得深入探讨的现象。这不仅仅是关于开源组织在政治舞台上的角色,更是对“中立性”这一开源核心价值的重新审视和实践。开源组织与政治参与的复杂性首先要明确的是,开源软件本身的设计初衷是促进代码共享、协作开发和技术进步,它在很大程度上是跨越国界、政治意识形态和.............
  • 回答
    关于网传“北大文科博士在深圳大学任教经济困难,月薪13千,上网课要求学校发网络补助”的信息,需从多个角度进行分析,结合中国高校薪酬体系、地区差异及政策背景,综合判断其真实性及合理性。 一、信息真实性分析1. 来源可信度 目前尚无权威媒体或深圳大学官方声明证实该传言。网络传言往往存在夸大或误传.............
  • 回答
    关于乌克兰数学家康斯坦丁·奥尔梅佐夫(Konstantin Orelmazov)的自杀事件,目前公开的可靠信息较为有限,但结合俄乌冲突的背景和乌克兰学术界的现状,可以尝试从多个角度进行分析和探讨: 1. 事件背景的核实与可能性 身份确认:目前公开的资料中,尚未有明确的、权威的新闻来源(如BBC.............
  • 回答
    关于美国太平洋司令部空军司令威尔斯巴赫(James W. "Jim" Welsbach)提到的F35战机与歼20近距离接触的事件,目前公开信息中并无直接证据表明该言论来自美国官方渠道,因此需要从多个角度进行分析和澄清。 1. 事件背景与信息来源的可靠性 美国官方声明的缺失:截至2023年,美国.............
  • 回答
    关于您提到的“硅谷男子在妻子患病期间相亲,妻子病逝后迅速再婚并独吞200万抚恤金”的事件,目前没有权威媒体或官方渠道发布过相关具体信息。因此,这一事件的真实性、细节和法律性质尚无法确认。以下从法律、道德和社会角度进行分析,供您参考: 一、事件可能涉及的法律问题1. 重婚罪(若属实) 根据中国.............
  • 回答
    欧盟三国领导人乘坐火车前往基辅会晤泽连斯基,这一事件反映了欧洲国家对乌克兰的持续支持,以及俄乌冲突背景下国际政治的复杂动态。以下从多个角度详细分析这一事件及其背后的局势: 一、欧盟三国领导人赴基辅的背景与意义1. 象征性行动 欧盟三国(如波兰、爱沙尼亚、捷克等)领导人乘坐火车前往基辅,是近年.............
  • 回答
    中国海关查获5840块造假显卡、讯景中国官网临时关闭以及天猫旗舰店下架产品事件,涉及知识产权保护、市场秩序维护及企业合规问题,具有多重社会和行业影响。以下从多个角度详细分析: 一、事件背景与核心问题1. 海关查获假显卡 查获数量:5840块显卡,可能涉及假冒品牌(如讯景、华硕、技嘉等),或.............
  • 回答
    尹锡悦当选韩国总统是2022年韩国大选的重要结果,这一事件对韩国政治、经济、社会及国际关系产生了深远影响。以下从多个维度详细分析其背景、意义及可能的未来走向: 一、选举背景与过程1. 政治格局 在野党联盟胜利:2022年韩国大选中,由自由民主党和共同民主党组成的“在野党联盟”以压倒性优势击.............
  • 回答
    关于加州华裔女博士因持刀袭警被警方击毙的事件,这一案件涉及法律程序、执法权、种族问题等复杂背景,需要从多个角度进行分析。以下从法律、执法程序、社会背景、争议焦点等方面展开详细讨论: 1. 事件背景与法律依据根据公开报道,事件发生在2022年11月,加州一名华裔女性(身份为博士)因涉嫌持刀袭击警察,在.............
  • 回答
    基辛格的《论中国》(On China)是美国前国务卿亨利·基辛格(Henry Kissinger)于1972年访华期间撰写的一部重要著作,也是中美关系史上的关键文献之一。这本书不仅记录了基辛格作为“中间人”在中美关系正常化过程中的角色,还系统阐述了他对中国的政治、文化、历史和外交政策的深刻观察。以下.............
  • 回答
    印度承认误射导弹落入巴基斯坦境内一事,是印巴两国关系紧张的一个缩影,也反映了地区安全局势的复杂性。以下从多个维度详细分析这一事件的背景、影响及可能的后续发展: 一、事件背景与经过1. 时间与地点 事件发生在2023年6月,印度在进行军事演习时,一枚“阿金科特”(Agni5)远程导弹因技术故障.............
  • 回答
    2022年2月24日,俄罗斯在乌克兰发动全面军事行动后,联合国大会通过了一项决议草案,要求俄罗斯立即从乌克兰撤军、停止军事行动,并尊重乌克兰的主权和领土完整。这一决议的通过过程和结果引发了国际社会的广泛关注,以下是详细分析: 一、事件背景1. 俄罗斯的军事行动 2022年2月24日,俄罗斯在.............
  • 回答
    乌克兰副总理呼吁游戏厂商暂停在俄罗斯的业务,并点名腾讯,这一事件反映了俄乌冲突背景下,国际社会通过经济手段施压俄罗斯的策略。以下从背景、动机、可能影响及各方反应等方面进行详细分析: 一、事件背景与动机1. 俄乌冲突的经济压力 俄乌冲突已持续近两年,俄罗斯经济受到严重冲击,包括制裁、能源价格飙.............
  • 回答
    瓦列里·捷杰耶夫(Valery Gergiev)作为俄罗斯著名的指挥家和马林斯基剧院的音乐总监,其被西方音乐界抵制的事件,涉及复杂的国际政治、文化立场与艺术伦理问题。以下从多个角度详细分析这一事件的背景、原因、影响及争议: 一、事件背景:捷杰耶夫与俄罗斯的政治关联1. 职业背景 捷杰耶夫自1.............
  • 回答
    全国政协委员建议推广DNA数据库以实现有效打拐的建议,涉及技术、法律、伦理、实际操作等多方面因素,其可行性需从多个维度综合分析。以下从技术、法律、伦理、操作、风险等角度详细探讨: 一、技术可行性分析1. DNA数据库的原理 DNA数据库通过存储犯罪现场或失踪人员的DNA样本,利用DNA指纹技.............
  • 回答
    关于俄罗斯外交部发布的所谓“乌克兰政府对顿巴斯的暴行”视频,这一问题涉及俄乌冲突的复杂背景、信息战的特征以及国际社会的争议。以下从多个角度进行详细分析: 1. 背景与视频的来源 冲突背景: 顿巴斯地区(包括顿涅茨克和赫尔松两州)自2014年以来一直是俄乌矛盾的焦点。2022年2月,俄罗斯以“保.............
  • 回答
    关于抖音用户“李赛高(佤邦)”被封号的事件,目前公开信息较为有限,但可以从以下几个角度进行分析和探讨: 一、事件背景与可能原因1. 账号主体身份 “李赛高”可能是某位公众人物或网红,而“佤邦”可能与其身份或背景有关。佤邦是缅甸的一个少数民族地区,历史上曾与中国存在复杂关系,涉及民族、历史、政.............
  • 回答
    沈逸是中国人民大学国际关系学院教授,长期从事国际政治研究,尤其关注地缘政治与大国关系。他在俄乌冲突中的分析曾引发争议,但需注意的是,学术观点的准确性往往取决于信息来源、分析框架和时代背景。以下从多个角度分析其判断可能存在的问题及原因: 一、沈逸的分析背景与观点1. 2014年乌克兰危机前的预测 .............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有