供应链投毒预警 | 首次披露恶意NPM组件窃取系统密码及Git账户信息
2023-11-16 11:16:50 Author: mp.weixin.qq.com(查看原文) 阅读量:7 收藏

概述

2023年11月10号,悬镜供应链安全实验室在NPM官方源(www.npmjs.com)中捕获多起针对系统用户敏感数据窃取的npm组件包投毒攻击。当npm开发者安装或者更新这些组件包(@gusmano/reext, objectish, iproduce, ifl-primitives, ifl-tokens, ifl-components, ifl-themes)时,会触发执行组件包中的恶意代码,导致开发者Git账户信息、系统用户信息、系统密码文件等被外传到投毒者控制的服务器上。

其中npm组件包`@gusmano/reext`是个活跃度较高的react ExtJS前端组件库,本周下载量3000+,目前已发布207个版本,从0.0.87版本开始,reext作者在组件包中植入静默收集开发者Git账户信息的恶意代码,这些恶意代码从0.0.87版本随着reext组件包持续更新到最新版本0.0.218。

[https://www.npmjs.com/package/@gusmano/reext]

目前,该组件包在NPM官方源上的最新版本依然包含恶意代码,通过NPM官方下载统计接口查询可知reext组件包最近一个月的下载量为16297。此外国内主流NPM镜像源也同步托管该组件包,实际的受害者数量将会更多。

投毒组件分析

本次捕获的恶意组件包主要通过package.json自定义scripts::install、scripts::preinstall和postinstall命令实现在安装NPM组件包流程中执行恶意js代码。

Part 1

@gusmano/reext组件包

以`@gusmano/reext`为例,该组件包在安装之前及之后分别执行:

preinstall命令:"node ./dist/scripts/preinstall.js"

postinstall命令:"node ./dist/scripts/postinstall.js"

preinstall.js文件首先尝试读取并解析用户目录下`.gitconfig`文件中的Git用户名和邮箱信息(如下图所示)

最后将收集的Git用户数据发送到服务器[https://2tak.l.serverhost.name:1962/mobile/reext] 

恶意代码执行后,在PC系统上可捕获到外传的Git账户信息:

安装组件包完成之后将执行postinstall.js,其负责将包含恶意代码的scripts目录清空(如图所示)。

Part 2

objectish组件包

对于投毒包objectish,在安装时将执行main.js中的恶意代码,系统/etc/passwd密码文件将被发送到攻击者服务器(https://*.cl90ujr9u3p1pslamntgafludxgevpomw.oast.pro)上。

Part 3

ifl系列组件包

ifl系列的投毒包在安装时会将系统用户基本信息和DNS服务器信息发送到攻击者服务器上。

(https://9jtd6rt6pqm65h6twz7s9refa6gx4nsc.oastify.com)

总结

此次投毒组件包信息及相关IoC数据如下所示:

悬镜供应链安全室已经向NPM官方报告这些恶意组件包,截至目前,部分恶意组件包仍可从NPM官方源以及国内各大主流NPM镜像源上正常下载安装,NPM开发者仍面临潜在安全风险,开发者需提高安全防范意识,可自行根据以上IoC和组件信息排查是否安装或引用恶意NPM组件包。除此之外,也可使用悬镜开源的OpenSCA安全治理工具进行扫描检测。


悬镜供应链安全情报中心将持续监测全网主流开源软件仓库,对潜在风险的开源组件包进行动态跟踪和溯源,实现快速捕获开源组件投毒攻击事件并第一时间提供精准安全预警。


推荐阅读

关于“悬镜安全”

悬镜安全,起源于北京大学网络安全技术研究团队“XMIRROR”,创始人子芽。作为DevSecOps敏捷安全领导者,始终专注于以“代码疫苗”技术为内核,凭借原创专利级“全流程数字供应链安全赋能平台+敏捷安全工具链”的第三代DevSecOps智适应威胁管理体系,创新赋能金融、车联网、泛互联网、智能制造、通信及能源等行业用户,构筑起适应自身业务弹性发展、面向敏捷业务交付并引领未来架构演进的共生积极防御体系,持续守护中国数字供应链安全。了解更多信息请访问悬镜安全官网:www.xmirror.cn


文章来源: https://mp.weixin.qq.com/s?__biz=MzA3NzE2ODk1Mg==&mid=2647789107&idx=2&sn=781c1f68858e30a5bdcc4de6ca375260&chksm=87708664b0070f72cc423492104338150ab5359d4f8ce259901a9f2a632913fd8f17cc979d75&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh