自 2023 年 8 月开始,在 npm 软件包存储库中发现了十多个恶意软件包,这些软件包能够在 Roblox 开发人员的系统上部署名为Luna Token Grabber 的开源信息窃取程序。
ReversingLabs 于 8 月 1 日首次检测到正在进行的活动,该活动使用了伪装成合法包noblox.js的模块,该包是一个 API 包装器,用于创建与 Roblox 游戏平台交互的脚本。
这家软件供应链安全公司将此次活动描述为2021 年 10 月“两年前发现的一次攻击的重演”。
软件威胁研究员 Lucija Valentić在周二的分析中表示:“恶意软件包 [...] 从合法的 noblox.js 软件包中复制代码,但添加了恶意的信息窃取功能。”
这些软件包在被下架前已累计下载 963 次。流氓软件包的名称如下:
- noblox.js-vps(版本 4.14.0 至 4.23.0)
- noblox.js-ssh(版本 4.2.3 至 4.2.5)
- noblox.js-secure(版本 4.1.0、4.2.0 至 4.2.3)
虽然最新攻击浪潮的大致轮廓与之前的攻击浪潮相似,但它也表现出了一些独特的特征,特别是在部署可交付 Luna Grabber 的可执行文件方面。
ReversingLabs 表示,这一进展是 npm 上发现的多阶段感染序列的罕见实例之一。
瓦伦蒂奇指出:“对于针对软件供应链的恶意活动,复杂攻击和简单攻击之间的区别通常取决于恶意行为者掩饰其攻击并使恶意软件包看起来合法的程度。”
特别是,这些模块巧妙地将其恶意功能隐藏在安装后调用的名为 postinstall.js 的单独文件中。
这是因为真正的 noblox.js 包还使用一个同名的文件来向用户显示感谢消息以及指向其文档和 GitHub 存储库的链接。
另一方面,虚假变体利用 JavaScript 文件来验证该软件包是否安装在 Windows 计算机上,如果是,则下载并执行 Discord CDN 上托管的第二阶段有效负载,或者显示错误信息。
ReversingLabs 表示,第二阶段随着每次迭代不断发展,逐步添加更多功能和混淆机制来阻止分析。该脚本的主要职责是下载Luna Token Grabber,这是一个 Python 工具,可以从 Web 浏览器中获取凭证以及 Discord 令牌。
然而,npm 活动背后的威胁参与者似乎只选择使用 Luna Token Grabber 背后的作者提供的可配置构建器从受害者那里获取系统信息。
这并不是 Luna Token Grabber 第一次在野外被发现。今年 6 月初,Trellix披露了一种名为 Skuld 的基于 Go 的新信息窃取程序的详细信息,该程序与恶意软件菌株重叠。
瓦伦蒂奇说:“这再次凸显了恶意行为者使用域名仿冒作为一种技术来欺骗开发人员以类似名称的合法软件包为幌子下载恶意代码的趋势。”