GlassWorm 活动利用 Zig Dropper 感染开发者 IDE
GlassWorm 恶意活动近期演进,采用了一种新的 Zig 语言编写的 dropper,旨在隐秘感染开发者机器上的所有集成开发环境(IDE)。此前,GlassWorm 活动主要通过利用不可见的 Unicode 字符在 Visual Studio Code (VS Code) 扩展中隐藏恶意代码。当前阶段的攻击表明威胁行为者正在不断迭代其规避和持久化技术,转向使用编译后的原生代码来增强其隐蔽性和跨平台感染能力。
初始感染向量与 Zig Dropper 分析
此次 GlassWorm 活动的最新感染链始于一个伪装成流行工具 WakaTime 的 Open VSX 扩展,名为 "specstudio.code-wakatime-activity-tracker"。该扩展不再可用。与其他 JavaScript 代码一同发布的,是一个由 Zig 编译的原生二进制文件。此处的创新在于,该二进制文件并非直接作为最终负载,而是作为 GlassWorm dropper 的隐秘中间层,其主要目标是识别并感染系统上所有支持 VS Code 扩展格式的 IDE。
具体而言,此 Zig 编译的原生二进制文件作为 Node.js 原生附加组件加载,直接进入 Node 的运行时环境,并在 JavaScript 沙箱之外执行,拥有完整的操作系统级别访问权限。它会查找以下 IDEs:
- Microsoft VS Code
- VS Code Insiders
- VSCodium
- Positron
- Cursor
- Windsurf
一旦识别到这些 IDEs,该二进制文件会从攻击者控制的 GitHub 账户下载一个恶意 VS Code 扩展(.VSIX 文件),并使用每个编辑器的命令行安装程序将其静默安装到所有发现的 IDE 中。这种方法确保了即使开发者主要使用 VS Code 的分叉版本,如 Cursor 或 VSCodium,其开发环境也同样会受到威胁.
原生代码的使用提高了恶意软件的隐蔽性,使其更难被传统的基于签名的检测方法发现,并且可以在宿主操作系统上获得更深层次的权限,绕过 JavaScript 沙箱的限制。为了进行全面的系统审计和漏洞扫描,组织可以利用 Secably 等工具来识别潜在的未授权文件和异常进程。
GlassWorm 第二阶段 Dropper 功能
被静默安装的 .VSIX 文件是 GlassWorm 的第二阶段 dropper。该 dropper 具有以下关键功能:
- 地理围栏(Geofencing): 该恶意软件会避免在俄罗斯系统上执行,这是一种常见的归因规避策略。
- 命令与控制(C2)通信: 通过 Solana 区块链获取 C2 服务器信息。这种去中心化的 C2 机制使得攻击基础设施难以被追踪和关闭,因为它不受单一服务器或域名服务商的控制。
- 数据窃取与远控(RAT)部署: 窃取敏感数据并安装一个远程访问木马 (RAT)。此 RAT 最终会部署一个窃取信息的 Google Chrome 扩展,进一步扩大攻击者的渗透范围。早期版本的 GlassWorm 还被发现会窃取加密货币钱包凭据、GitHub 和 npm token,并部署 SOCKS 代理服务器将受感染的机器变成犯罪代理网络。
命令与控制基础设施
GlassWorm 的 C2 基础设施具有多层冗余和高度弹性,使其极难被拆除。攻击者利用了三种不同的机制:
- Solana 区块链: 这是主要 C2 通道,恶意软件通过查询硬编码钱包地址的交易备忘录来获取 Base64 编码的 C2 URL。Solana 区块链的不可变性、匿名性和去中心化特性,使得该 C2 通道几乎不可能被删除或追踪。
- Google Calendar: 作为高效的备用 C2 机制,GlassWorm 利用 Google Calendar。恶意软件会查询一个特定的、公开可访问的 Google Calendar 事件 URL,并在事件标题中隐藏 Base64 编码的下一阶段负载 URL。这种方式利用了普遍信任的合法服务来绕过安全控制。
- 直接 IP 地址: C2 通道最终指向攻击者控制的直接 IP 地址。
以下是一些已知的 C2 和数据外泄相关的网络指标:
| 类型 | 指标 | 备注 |
|---|---|---|
| 主要 C2 IP | 217.69.3.218, 199.247.10.166, 45.32.151.157 |
|
| 早期 C2 IP | 217.69.11.60 |
|
| 数据外泄端点 | 140.82.52.31:80/wall, 199.247.13.106:80/wall, 45.32.150.251 |
|
| Solana 钱包 (攻击者) | 28PKnu7RzizxBzFPoLp69HLXp9bJL3JFtT2s5QzHsEA2, BjVeAjPrSKFiingBn4vZvghsGj9KCE8AJVtbc9S8o8SC |
对于监测和识别此类 C2 基础设施,使用 Zondex 这样的工具进行互联网范围内的服务发现和侦察,可以帮助安全研究人员和组织发现潜在的恶意基础设施和暴露的服务。此外,攻击者利用受感染的开发者机器作为代理网络 (SOCKS proxy),这使得追踪攻击流量变得更加困难。在此类情况下,研究人员可能需要利用 GProxy 等工具进行匿名研究和流量路由分析。
持久化机制
GlassWorm 在 Windows 系统上通过设置注册表键来实现持久化,确保在系统重启后恶意软件能够自动重新启动。常见路径包括:
HKCU\Software\Microsoft\Windows\CurrentVersion\RunHKLM\Software\Microsoft\Windows\CurrentVersion\Run
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Run /v "GlassWorm" /t REG_SZ /d "C:\Path\To\Malicious\Executable.exe" /f
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v "GlassWorm" /t REG_SZ /d "C:\Path\To\Malicious\Executable.exe" /f
在 macOS 系统上,GlassWorm 也会部署一个通用 Mach-O 二进制文件 mac.node,而在 Windows 系统上则安装 win.node。
相关漏洞与供应链安全
值得注意的是,开发者 IDE 及其扩展是软件供应链攻击的薄弱环节。除了 GlassWorm 这样的主动攻击外,IDE 扩展中也存在许多固有漏洞。例如,一些流行 VS Code 扩展中曾被披露存在高危漏洞:
- CVE-2025-65717 (Live Server): CVSS v3.1 评分 9.1,允许远程、未经身份验证的攻击者从开发者本地机器上窃取文件。
- CVE-2025-65716 (Markdown Preview Enhanced): CVSS v3.1 评分 8.8,允许攻击者利用 Markdown 文件预览 HTML 标签的方式执行任意 JavaScript 代码,从而扫描本地网络并外泄数据。
- CVE-2025-65715 (Code Runner): CVSS v3.1 评分 7.8,允许攻击者通过诱骗用户更改 "settings.json" 文件来执行任意代码 (RCE)。
- Microsoft Live Preview: 存在一个未分配 CVE 的漏洞,允许通过一次点击式 XSS 攻击窃取 IDE 环境中的敏感文件 (已在 v0.4.16+ 中修复)。
这些漏洞凸显了开发者工作站作为攻击面的重要性。开发人员的机器通常存储着最敏感的组织资产,如业务逻辑、API 密钥、数据库配置和环境变量。一个恶意的或存在漏洞的扩展足以实现横向移动并危及整个组织。
为了应对这些威胁,组织应加强对内部开发环境的治理。这包括对软件组件的严格管理、持续监控、自动化依赖项分析以及基于行为的威胁检测。开发者应警惕不受信任的配置和文件,移除不必要的扩展,并仅从信誉良好的来源安装软件。此外,定期轮换所有可能已暴露的凭据(尤其是 GitHub、npm、云和开发者平台 token)至关重要。