攻击者在他们的武器库中添加了激进的社会工程手段,以及一种需要开发人员保持警惕的新型 Windows 操纵持久性机制。
至少一年来,攻击者一直在使用模仿流行的“noblox.js”库的恶意 Node Package Manager (npm) 包,以恶意软件为目标 Roblox 游戏开发人员,这些恶意软件会窃取 Discord 令牌和系统数据,甚至部署额外的有效负载。
该活动由 Checkmarx 的研究人员概述,至少自 2023 年 8 月以来一直活跃,它利用各种策略,包括品牌劫持、组合抢注和劫持,以使包裹看起来合法。一旦在目标系统上站稳脚跟,恶意软件就会收集各种类型的敏感数据,这些数据使用 Discord webhook 以包的形式发送到攻击者的命令和控制服务器 (C2)。
Roblox 是一个流行的游戏和游戏创建平台,拥有超过 7000 万日活跃用户的用户群,因此是威胁行为者的诱人目标。ReversingLabs 的研究人员此前披露了针对 Roblox 并交付 Luna Grabber 恶意软件的 npm 包活动,其他公司也对此进行了报道。
Checkmarx 安全研究员 Yehuda Gelb 在一篇文章中写道,Checkmarx 分析揭示了它如何随着使用各种社会工程策略来增加欺骗以及新的恶意活动而演变,包括将 QuasarRAT 添加到其二级有效载荷列表中在 Medium 平台上。它从用户“aspdasdksa2”拥有的活动 GitHub 存储库中提供辅助恶意软件,他写道,该存储库“可能用于通过其他包分发恶意软件”。
该活动提供的其他恶意软件添加了一种新颖的持久性机制,可以操纵 Windows 注册表。Gelb 指出,这确保了每次用户打开 Windows 设置应用程序时都执行,并且“是恶意软件有效性的核心”。
更重要的是,攻击者似乎高度关注其恶意活动的任何缓解措施——考虑到活动的持续时间和新型恶意包的持续流动,这一点很明显。“尽管多次删除了多个包,但在发布时,新的恶意包仍继续出现在 npm 注册表中,”Gelb 写道。
游戏开发者欺骗的社会工程
该活动以精心设计的社会工程为特色,表明攻击者了解他们的受众,并旨在使包看起来对 Roblox 开发人员来说尽可能真实和有用。
Gelb 写道,一种拼写错误技术结合了这种策略的子集——品牌劫持和组合抢注——在程序包的命名中创造了“他们的程序包要么是合法的’noblox.js’库的扩展,要么与合法的”库密切相关的错觉”。其中包括 noblox.js-async、noblox.js-thread 和 noblox.js-api 等文件名。
攻击者还使用“星劫”,这是威胁行为者用来夸大程序包统计信息的一种策略,因此开发人员认为程序包的下载量超过实际量,因此值得信赖。Gelb 说,在这种情况下,攻击者将恶意包链接到正版“noblox.js”包的 GitHub 存储库 URL。
该活动中采用的进一步策略试图通过模仿合法的“noblox.js”文件的结构来掩盖程序包本身中的恶意软件,但随后会在 postinstall.js 文件中引入恶意代码。“他们严重混淆了这些代码,甚至包含了无意义的汉字,以阻止轻松分析,”Gelb 指出。
禁用 Windows Defender for Persistence
随着活动的发展,攻击者继续加大赌注,使防御者更难检测和缓解其提供的恶意软件。Gelb 写道,一种这样的新策略通过针对 Malwarebytes 和 Windows Defender 等各种服务来“积极破坏系统的安全措施”。它首先针对前者,并试图在它正在运行时阻止它,“然后对 Windows Defender 进行更全面的攻击,”他写道。
“该脚本会识别所有磁盘驱动器并将它们添加到 Windows Defender 的排除列表中,”他解释说。“此操作实际上使 Windows Defender 对系统上的任何文件视而不见。”
Gelb 指出,总体而言,它禁用第三方防病毒软件和操纵内置 Windows 安全功能创造了一个恶意软件可以自由运行的环境,从而显着增加了其造成损害和持久性的可能性。
活动要求开发人员保持警惕
通过开发人员开发软件(或在本例中为游戏)所依赖的开源代码资产来瞄准开发人员,是 威胁行为者用来扩大攻击面的一种不断发展的策略。通过在开发过程中对代码进行中毒,他们可以通过软件供应链将恶意软件传播给众多用户,而无需单独针对特定系统。
事实上,Gelb 观察到,通过持续受损的 NPM 包对 Roblox 开发人员的持续攻击“清楚地提醒了开发者社区面临的持续威胁”,并要求他们在使用开源代码包时要格外小心。
他说,该活动和其他类似活动再次强调了“在纳入项目之前彻底审查一揽子计划至关重要”。“开发人员必须保持警惕,验证包的真实性,尤其是那些类似于流行库的包,以保护自己和用户免受这种复杂的供应链攻击。”