查看原文
其他

居然以反战的名义,利用开源工具包“投毒”!

程序猿DD 2022-03-19

  

  文 | 罗奇奇

出品 | OSC开源社区(ID:oschina2013)

vue-cli 的依赖项 node-ipc 包正在以反战为名进行供应链投毒,该包在 npm 每周有上百万下载量。
知名技术网站 V2ex 的一条帖子爆出了这个问题,用户  simbaCheng 在使用 npm 构建前端项目时,启动项目后桌面自动创建了一个《WITH-LOVE-FROM-AMERICA.txt》文件,点开之后发现内容是空的。
simbaCheng 被吓一跳,以为自己电脑中毒了。在网友的热心帮助下,发现该 txt 文件是 vue-cli 的依赖项 node-ipc 包的作者 RIAEvangelist 在投毒,该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念。
然而网友继续深扒后,发现该作者还有更恶毒的投毒行为。如果说往用户桌面写 txt 文件属于激进的反战行为,那么知乎用户 @贺师俊 所介绍的 这个 Issue 中(https://github.com/RIAEvangelist/node-ipc/issues/233#issuecomment-1068182278)的举动则是彻底的恶意攻击:

攻击源码在仓库中仍可找到(https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js)。
源码经过压缩,简单地将一些关键字符串进行了 base64 编码。其行为是利用第三方服务探测用户 IP,针对俄罗斯和白俄罗斯 IP,会尝试覆盖当前目录、父目录和根目录的所有文件,把所有内容替换成 ❤。
但在提交了上面恶意攻击代码后,也许是意识到自己行为的严重性,该作者在半天后把该恶意攻击改成了“较和平”的“反战” TXT 文本,正如本文开头所描述的一般。但无论如何这仍然是一种恶劣的攻击行为,严重破坏了开源生态中的信任,它最坏的后果是带来强代码审核,各大代码托管平台会对代码注释、变量常量命名进行审核。
我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。
注意:该作者清晰地知道自己在做什么,以及这些代码意味着什么,他在 issue 里明确指出了下游可以消除影响的变通方法。在该 vue-cli  issue 对话 中,RIAEvangelist 更是大方承认自己的恶意代码是针对俄罗斯和白俄罗斯用户😅
而且,这不是 RIAEvangelist 和他的这个 node-ipc 包第一次引起争议了,早在 2020 年 node-ipc 就因为其奇怪的“don't be a dick”许可证引起了争议,尤雨溪还出面回应:
后续:
  • vue-cli 发布了新版本(https://github.com/vuejs/vue-cli/releases/tag/v5.0.3),将 node-ipc 的版本锁定到 v9.2.1

附受影响项目的解决方式:
  • 按照 readme 正常 install

  • 构建结束后,用编辑器全局搜索'peacenotwar',将其全部删除

  • 然后项目的node_models目录下,将'peacenotwar'目录删除

  • '项目/node_modules/node-ipc/node-ipc.js'这个文件中引用'peacenotwar'的代码注释掉

  • 然后正常启动项目即可。

推荐阅读

··································

你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书、创过业、国企4年互联网6年。10年前毕业加入宇宙行,工资不高、也不算太忙,业余坚持研究技术和做自己想做的东西。4年后离开国企,加入永辉互联网板块的创业团队,从开发、到架构、到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。

如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存