1

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

 2 years ago
source link: https://netsecurity.51cto.com/article/704174.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
百万周下载量 node-ipc 包以反战为名进行供应链投毒-51CTO.COM
百万周下载量 node-ipc 包以反战为名进行供应链投毒
作者:罗奇奇 2022-03-17 10:38:09
vue-cli 的依赖项 node-ipc 包正在以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。

vue-cli 的依赖项 node-ipc 包正在以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。

知名技术网站 V2ex 的一条帖子爆出了这个问题,用户 simbaCheng 在使用 npm 构建前端项目时,启动项目后桌面自动创建了一个《 WITH-LOVE-FROM-AMERICA.txt 》文件,点开之后发现内容是空的。

66ff4a211338c6af5138948c35891e18d6df78.png

simbaCheng 被吓一跳,以为自己电脑中毒了。在网友的热心帮助下,发现该 txt 文件是 vue-cli 的依赖项 node-ipc 包的作者 RIAEvangelist 在投毒,该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念。

然而网友继续深扒后,发现该作者还有更恶毒的投毒行为。如果说往用户桌面写 txt 文件属于激进的反战行为,那么知乎用户 @贺师俊 所介绍的 这个 Issue 中的举动则是彻底的恶意攻击:

c12bc7216538eaa8fd32572e189a407bbde7d8.png

518f2ad722dba33b72b440d5ee895e2e308ed5.jpg

攻击源码在仓库中仍可找到。源码经过压缩,简单地将一些关键字符串进行了 base64 编码。其行为是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP,会尝试覆盖当前目录、父目录和根目录的所有文件,把所有内容替换成 ❤。

但在提交了上面恶意攻击代码后,也许是意识到自己行为的严重性,该作者在半天后把该恶意攻击改成了“较和平”的“反战” TXT 文本,正如本文开头所描述的一般。但无论如何这仍然是一种恶劣的攻击行为,严重破坏了开源生态中的信任,它最坏的后果是带来强代码审核,各大代码托管平台会对代码注释、变量常量命名进行审核。

注意:该作者清晰地知道自己在做什么,以及这些代码意味着什么,他在 issue 里明确指出了下游可以消除影响的变通方法。在该 vue-cli issue 对话 中,RIAEvangelist 更是大方承认自己的恶意代码是针对俄罗斯和白俄罗斯用户

177c05d89b6eb386dff45419a92a4ab03f1e9c.png

而且,这不是 RIAEvangelist 和他的这个 node-ipc 包第一次引起争议了,早在 2020 年 node-ipc 就因为其奇怪的“don't be a dick”许可证引起了争议,尤雨溪还出面回应:

63d90ab40b8df6b16763618a0a3ae998beeede.jpg

后续:

  • vue-cli 发布了新版本,将 node-ipc 的版本锁定到 v9.2.1

附受影响项目的解决方式:

  • 按照 readme 正常 install
  • 构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除
  • 然后项目的node_models目录下,将'peacenotwar'目录删除
  • '项目/node_modules/node-ipc/node-ipc.js'这个文件中引用'peacenotwar'的代码注释掉
  • 然后正常启动项目即可。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK