开源无国界?vue-cli、node-ipc被投毒事件分析

开源无国界?vue-cli、node-ipc被投毒事件分析

简述

近日我们监测到Vue.js生态中的vue-cli包遭遇供应链投毒,而被投毒的node-ipc包在npm上每周下载量超百万,影响非常广泛。

被投毒的情况如下:

  • vue-cli是Vue.js 开发的标准工具,该工具被广泛应用于vue的快速开发
  • 其依赖的node-ipc是用于本地和远程进程间通信的一个js模块,也用于支持linux,windows,mac等系统中的socket通信。
  • node-ipc包的作者近期在node-ipc的10.1.1-10.1.2版本添加了恶意JS,该JS会修改俄罗斯和白俄罗斯用户的所有文件为❤️,但不到24小时后又删除该恶意JS,添加会在用户桌面创建反战宣传标语的peacenotwar模块。vuejs的团队在发现node-ipc添加了peacenotwar模块后锁定了vue-cli依赖的node-ipc版本为9.2.1,研究人员随后又发现node-ipc的作者此前添加的恶意JS存在于node-ipc旧版本中。
开源无国界?vue-cli、node-ipc被投毒事件分析

(问题组件每周下载量截图)

事件时间线

3月7号

开发者RIAEvangelist在node-ipc包中添加名为ssl-geospec.js的恶意JS文件,将node-ipc的版本号更新为10.1.1

开源无国界?vue-cli、node-ipc被投毒事件分析

3月8号

删除ssl-geospec.js该文件,版本号更新为10.1.3

开源无国界?vue-cli、node-ipc被投毒事件分析
开源无国界?vue-cli、node-ipc被投毒事件分析

3月9号

开发者RIAEvangelist在node-ipc包中添加peacenotwar模块,该模块会在桌面静默添加反战宣传文件

开源无国界?vue-cli、node-ipc被投毒事件分析

3月15号

有开发者在论坛中反馈构建过程中发现被创建反战标语文件

开源无国界?vue-cli、node-ipc被投毒事件分析

3月15号

Vue-cli发布5.0.3版本,在新版本中锁定vue-cli依赖的node-ipc版本为9.2.1

开源无国界?vue-cli、node-ipc被投毒事件分析

研究人员分析发现node-ipc的作者不只添加了反战标语,还在旧版本10.1.1-10.1.2中添加了恶意JS文件删除俄罗斯和白俄罗斯用户文件

开源无国界?vue-cli、node-ipc被投毒事件分析

3月16号

当前npm已禁止下载包含peacenotwar模块的版本,并提示:

npm ERR! 451 Unavailable For Legal Reasons

vue的开发者sodatea针对此事件的回应如下:

  1. node-ipc 9.2.2 增加peacenotwar模块,该模块会在未经用户同意的情况下写入WITH-LOVE-FROM-AMERICA.txt用户的Desktop和OneDrive文件夹。
  2. vue-cli已经发布了 4.5.16 和 5.0.3 来锁定依赖版本。
  3. 受影响的用户:在2022-03-15T05:40:26.758Z2022-03-15T13:17:57.076Z;期间创建的新项目或者那些在那个时间跨度内更新了项目依赖的人。
  4. 从俄罗斯和白俄罗斯 IP 删除文件的恶意代码不包含在 9.2.2 版本中

恶意代码分析

我们针对node-ipc包中使用的恶意js文件(https://github.com/RIAEvangelist/node-ipc/blob/847047cf7f81ab08352038b2204f0e7633449580/dao/ssl-geospec.js)进行分析。

可以看到多处使用base64编码对行为意图进行隐藏

开源无国界?vue-cli、node-ipc被投毒事件分析

远程API地址解码为

https://api.ipgeolocation.io/ipgeo?apiKey=ae511e1627824a968aaaa758a5309154
开源无国界?vue-cli、node-ipc被投毒事件分析

使用https加载远程API

开源无国界?vue-cli、node-ipc被投毒事件分析

解密后的字符串,可以看出c为国家,e为俄罗斯,i为白俄罗斯,其他为文件路径

开源无国界?vue-cli、node-ipc被投毒事件分析

判断是否为俄罗斯或白俄罗斯,将结果注册为a

开源无国界?vue-cli、node-ipc被投毒事件分析

如果是则执行h函数

开源无国界?vue-cli、node-ipc被投毒事件分析

h函数递归爬取指定目录,将所传入的路径中的文件替换为base64编码的4p2k77iP,而其解码后为❤️

开源无国界?vue-cli、node-ipc被投毒事件分析

针对企业的一点建议

  • 开源不等于可信,企业需要针对软件供应链建立动态管理机制,及时发现并响应其中可能的风险。

参考链接

https://github.com/vuejs/vue-cli/issues/7054
https://github.com/RIAEvangelist/node-ipc/issues/233

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

发布者:墨菲安全,转发请注明出处:https://www.murphysec.com/blog/poisoning-analysis/4098.html

(0)
上一篇 2023年1月4日 16:13
下一篇 2023年1月4日 17:24

相关推荐

  • OSCS发现PyPI官方仓库遭遇150+恶意包疯狂投毒

    一、事件简述 2022 年 06 月 23 日,OSCS 开源安全社区监测发现 PyPI 官方仓库被攻击者上传了agoric-sdk,datashare,datadog-agent等150+个恶意钓鱼包,OSCS官方提醒广大开发者关注。 PyPI 是 Python 的包管理工具,提供了对第三方 Python 包的查找、下载、安装、卸载等功能。攻击者mega7…

    2023年1月4日
  • shaikhyaser在NPM 仓库中投放67个恶意包

    一、事件简述: 7 月 16 日 ,OSCS 安全社区监测到shaikhyaser一天内在NPM仓库中不间断投放了十多个组件包,这些组件包都包含恶意行为。截止到21日,该用户已向 NPM 仓库投放了 67个不同版本的的恶意组件包,这些包也在代码中注明了该用户的邮箱,推测是hackerone中的用户。 这些恶意包的攻击方式相同,下面来分析其攻击手法。 二、 手…

    2023年1月5日
  • npm 包 chalk-next 被开发者投毒,源码 SRC 目录被删除

    一、事件简述 1月5日,有开发者在 twitter 中发文称遭遇了名为 chalk-next 的组件投毒事件,该组件存在收集配置信息和删除本地文件的恶意逻辑,当前 NPM 仓库已经下线了该组件。 chalk-next 组件的开发者也是 vue-admin-beautiful 项目的作者 chuzhixin,vue-admin-beautiful 项目在 Gi…

    2023年1月6日
  • 投毒者对 PyPi 上的开源组件开发者下手了

    简述 OSCS 近期监测到 PyPi 官方发布公告称有攻击者针对 PyPi 上的开源组件开发者进行钓鱼,试图窃取 PyPi 贡献者的凭据。本次攻击是通过贼喊捉贼的假装PyPi官方给恶意包发邮箱进行钓鱼,开发者可以通过开启2FA认证防止被攻击者窃取凭据后更改项目。 钓鱼事件 通过钓鱼邮件获取 PyPi 贡献者的凭据 根据PyPi官方发布的公告得知: PyPi …

    2023年1月5日
  • CuteBoi:超过 1200 个 NPM 包加入挖矿逻辑

    事件简述 近日,checkmarx研究人员公开了一起涉及众多包的NPM软件供应链攻击事件。事件最早可以追溯到 2021年12月,攻击者投放了1200多个包含混淆加密的恶意 NPM ,这些包拥有相同的挖矿脚本(eazyminer),该脚本的目的是利用如 Database和 Web 等所在服务器的机器闲置资源进行挖矿。 攻击事件分析 攻击手法 CuteBoi 主…

    2023年1月5日

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-180-9568

邮件:hi@murphysec.com

工作时间:周一至周五,10:00-19:00,节假日休息

关注公众号

20230105-100741