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

2023-11-01

简述

近日我们监测到 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旧版本中。

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

事件时间线

3月7号

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

3月8号

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

3月9号

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

3月15号

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

3月15号

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

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

3月16号

 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文件(node-ipc/ssl-geospec.js at 847047cf7f81ab08352038b2204f0e7633449580 · RIAEvangelist/node-ipc · GitHub)进行分析。

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

远程API地址解码为

https://api.ipgeolocation.io/ipgeo?apiKey=ae511e1627824a968aaaa758a5309154

 使用https加载远程API

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

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

如果是则执行h函数

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

针对企业的一点建议

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

漏洞检测及修复

关于该漏洞的检测策略已在墨菲安全的所有工具产品中上线,您可以免费安装使用墨菲安全的JetBrains IDE插件、CLI客户端等对你的项目进行检测,并一键修复。

如果你觉得这个工具对你有用,可以star、提issues或者参与贡献,我们会挑选一个参与贡献的用户送出机械键盘一份。

参考链接

https://github.com/vuejs/vue-cli/issues/7054

https://github.com/RIAEvangelist/node-ipc/issues/233

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


作者:wochicheng    日期:2022年3月16日

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

开源无国界?vue-cli、node-ipc被投毒事件分析 的相关文章

随机推荐

  • STM32 基础系列教程 47 - MD5

    前言 MD5消息摘要算法 英语 MD5 Message Digest Algorithm 一种被广泛使用的密码散列函数 可以产生出一个128位 16字节 的散列值 hash value 用于确保信息传输完整一致 MD5由美国密码学家罗纳德
  • 未启用远程计算机的访问,技术员解决win10系统连接远程提示未启用对服务器的远程访问的技巧...

    今天和大家分享一下win10系统连接远程提示未启用对服务器的远程访问问题的解决方法 在使用win10系统的过程中经常不知道如何去解决win10系统连接远程提示未启用对服务器的远程访问的问题 有什么好的办法去解决win10系统连接远程提示未启
  • 使用纯原生JS实现日历

    废话不多说 该有的注释都在代码里了 直接上代码 HTML
  • 【排序算法】堆排序

    堆排序 思路 思路 1 将数组构造成大顶堆 假设此时有n个节点 数组长度为n 2 此时大顶堆的根节点是数组中最大的数 将其与数组末尾元素交换 将剩下的长度为n 1的数组堆化 注意 堆化是指在左右子树都为大顶堆的前提下 插入一个新的根节点 将
  • 如何用Python语音合成,以及文字转语音~

    今天就给大家带来个语言识别跟语言转文字的小工具 感兴趣的铁汁萌可以往下滑了 1 直接使用 在1 2官网注册后拿到APISecret和APIKey 直接复制文章2 4demo代码 保存为online tts py 在命令行执行 python
  • JDBC 负载均衡读取mysql cluster

    语句使用 jdbc mysql loadbalance host1 port host2 port host3 port database propertyName1 propertyValue1 propertyName2 propert
  • MIPI D-PHY的校准测试

    MIPI的校准环节类似于DDR中的读写训练 其目的都是为了满足最佳的眼图采样时刻 因此 在系统的传输速率很高 通道之间存在延时 设计中有外部干扰等等影响因素的时候 信号抖动将会被增强 此时 校准将对长时间的稳定运行起到关键的补偿作用 在MI
  • PAT C语言入门题目-7-32 求交错序列前N项和 (15 分)

    7 32 求交错序列前N项和 15 分 本题要求编写程序 计算交错序列 1 2 3 3 5 4 7 5 9 6 11 的前N项之和 输入格式 输入在一行中给出一个正整数N 输出格式 在一行中输出部分和的值 结果保留三位小数 输入样例 5 输
  • 云计算-平台架构-开源-OpenStack

    文章目录 一 是什么 1 概念 2 架构 官方角度 组件层级角度 四大节点角度 三驾马车角度 组件交互角度 核心辅助组件角度 服务角度 二 怎么用 1 安装 2 使用 OpenStack操作界面服务Horizon OpenStack认证管理
  • 【mybatis】关联查询——mybatis一对多两种方式实现详解

    一 数据库 演示的小demo涉及两张表 一张是Person表 记录用户基本信息 另一张是phone表 记录电话号码 Person的phoneID外键关联phone表id 此处示例涉及并不符合实际情况 一对多方式是一个号码有多个用户使用的 更
  • VS code : 设置编译运行快捷键

    VS code中没有编译运行的快捷按键 只能通过编写 tasks json 实现 一开始用的 launch json 里的 windows launch 配置 设置调试开始前执行一个 task 任务 task 任务设置好 gcc 编译语句
  • java.lang.ClassNotFoundException web项目加载时找不到类

    1 概述 作为一个屌丝程序猿 怎么能不会配置log4j呢 这样在控制台或者日志文件中很容易找到程序出BUG的地方 尤其是在控制台输出日志的时候 那叫一个爽啊 但是出现了问题 我擦 启动web的时候spring创建上下文的时候居然会找不到类
  • 要考研,先要做到不比钱

    今天在一场针对大三学生的教学安排活动后 一位同学提出了一个问题 目前嵌入式开发的人员招聘中 研究生和本科生的待遇能相差多少 如果要给一个统计数据 那一定是可以找到的 一起参加活动的培训企业的老师也给做了解答 通过上研究生 使自己将来的职业生
  • 【Spark NLP】第 11 章:词嵌入

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • app开发好了你还不得不了解ASO

    前言 互联网的高速发展 带我们进入到了移动互联网时代 大家又开始了一轮APP开发的热潮 也就是移动应用开发 就像PC时代 大家都会创建自己的网站一样 现在苹果应用商店已经有上百万款的移动应用 Android的应用也有60万款左右 虽然数量上
  • 单片机课程设计-温度检测(STM32)

    单片机课程设计 温度检测 STM32 原理 KEY配置 ADC配置 中断配置 UI及主函数 原理 STM32ADC采样 我选用PA5作为ADC接口 并做了UI设计 KEY配置 key c include key h include SysT
  • 第七章——二叉树

    二叉树的基本概念 二叉树类似于2次树 但和2次树有一些不同 1 度为2的树至少有一个结点的度为2 而二叉树没有这种要求 简而言之二叉树可以退化成一条链 2 度为2的树可以不区分左右子树 二叉树中左右子树 结点 的次序严格区分排列 有关满二叉
  • 网络安全——Cobaltstrike

    一 原理 CobaltStrike 以下简称 CS 工具 是攻击队常用的团队协作工具之一 本实验将由服务器和攻击机 模拟组成攻击队的CS工具环境 完成相关配置 并通过简单的攻击实践 测试协作效果 二 Cobalt Strike的安装配置服务
  • MYSQL8.0.31解压版下载、安装、环境配置

    目录 1 下载 2 解压 3 配置my ini 4 打开命令提示符 5 安装mysql服务 6 初始化mysql数据库 7 启动mysq服务 8 修改密码 9 配置环境变量 1 下载 官网 https dev mysql com downl
  • 开源无国界?vue-cli、node-ipc被投毒事件分析

    简述 近日我们监测到 Vue js 生态中的 vue cli 包遭遇供应链投毒 而被投毒的 node ipc 包在 npm 上每周下载量超百万 影响非常广泛 被投毒的情况如下 vue cli是Vue js 开发的标准工具 该工具被广泛应用于