微软:Node.js 越来越多地被用于恶意软件分发和数据窃取
微软发布警告称,利用 Node.js 发送恶意软件和窃取敏感信息的网络攻击激增。
自 2024 年 10 月以来,其 Defender 专家团队已观察到多个使用 Node.js 的活动,这些活动以新颖的方式躲避检测,并在受损环境中持续存在。
这些发现来自微软的端点卫士和卫士XDR团队的详细分析,他们发现了多个使用Node.js作为运行环境或内联脚本执行的攻击链。在以加密货币为主题诱饵针对用户的恶意广告活动以及基于网络钓鱼的社交工程计划中都发现了这些策略。
引入恶意软件的 Node.js
Node.js 是一种开源 JavaScript 运行时,被开发人员广泛用于服务器端和桌面应用程序,允许在浏览器外执行代码。它在开发环境中的合法使用使其成为攻击者寻求混入的理想工具,尤其是在有开发人员活动的组织中。通过将恶意软件打包到已编译的 JavaScript 文件中并直接使用 node.exe 执行脚本,攻击者可以绕过通常会标记可疑脚本或可执行文件的传统安全机制。
微软的报告中详细介绍了一种活跃的活动,它利用恶意广告将用户引诱到模仿 Binance 或 TradingView 等加密货币交易平台的欺诈网站。访问者会被提示下载一个使用 Wix 制作的恶意安装程序,其中嵌入了一个自定义 DLL(CustomActions.dll)。执行后,该 DLL 会通过 Windows Management Instrumentation (WMI) 收集系统数据,并设置一个计划任务来运行混淆的 PowerShell 命令。
这些 PowerShell 任务会修改 Microsoft Defender for Endpoint 的设置,将特定进程和文件夹排除在扫描范围之外,以逃避检测。然后,脚本会从命令与控制(C2)服务器下载更多有效载荷,收集大量系统元数据(从 BIOS 和操作系统详细信息到网络适配器和用户信息),并通过 HTTP POST 请求将其外泄。
攻击链的第二阶段有效载荷包括 Node.js 运行时 (node.exe)、编译后的 JavaScript 文件 (JSC) 和其他库。一旦执行,JSC 脚本就会启动后续行动,如网络连接、凭证盗窃、证书篡改和浏览器数据提取–这表明存在多阶段攻击潜力和长期持续目标。
微软还发现了一种使用 Node.js 内嵌脚本执行的单独技术。在 “ClickFix ”类型的网络钓鱼活动中,恶意 PowerShell 命令会安装 Node.js 及其模块,然后直接从命令行运行 JavaScript。脚本会执行域侦察,将 C2 流量伪装成 Cloudflare 活动,并通过更改注册表运行键来建立持久性。
及早发现恶意活动
为了抵御这些不断演变的威胁,微软建议将技术控制和用户教育相结合。敦促各组织
- 监控 Node.js 的使用情况,并对未经授权执行 node.exe 设置警报。
- 增强 PowerShell 日志,启用脚本块、模块和转录日志,以发现混淆脚本。
- 限制软件来源只能是官方和经过验证的网站。
- 实施防火墙规则,阻止可疑或未知域的出站流量。在拦截模式下使用 EDR/XDR 解决方案,以捕获入侵后的活动。
此外,Microsoft 建议启用篡改保护、开启云提供的防病毒防御功能,并尽可能执行脚本执行策略。Microsoft Defender XDR 中的攻击面减少规则也有助于在可疑文件和脚本运行前阻止其执行。