GlassWorm:原生Zig木马通过伪造WakaTime插件感染所有VS Code编辑器
一场新的GlassWorm攻击浪潮利用Open VSX上的假WakaTime扩展,部署原生Zig二进制文件。该代码绕过JavaScript沙箱,扫描系统,并将恶意软件植入机器上所有兼容VS Code的IDE——从VS Code本身到Cursor和Positron。
Aikido Security的研究人员发现了一个名为 code-wakatime-activity-tracker 的扩展,它模仿了正版WakaTime,但其 activate() 函数已被修改。该函数会下载 win.node(Windows)或 mac.node(macOS)二进制文件,触发完整的感染链。
初始加载机制
activate() 函数需加载原生附加组件:
const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();
这些二进制文件是Node.js原生附加组件(Windows为PE32+ DLL,macOS为x86_64/arm64 Mach-O),使用Zig语言编译。它们以操作系统级权限直接注入Node运行时,规避JavaScript沙箱检测。macOS版本中的调试符号指向 /Users/davidioasd/Downloads/vsx_installer_zig。
随后,二进制文件枚举各类IDE路径:
- Windows:
%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd %LOCALAPPDATA%\Programs\Cursor\resources\app\bin\cursor.cmd- 以及VS Code Insiders、Windsurf、VSCodium和Positron的类似路径。
在macOS上:/Applications/*.app 匹配相同编辑器。若存在多个IDE,全部会被入侵。
第二阶段:自动导入伪装
该二进制文件从GitHub Releases下载 .vsix 文件 floktokbok.autoimport(克隆自 steoates.autoimport,安装量超500万次)。每个IDE均通过命令行安装:
cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"
安装后,cleanupVsix() 函数清除痕迹。第二个载荷跳过俄语本地化版本,使用Solana区块链进行C2通信(地址从钱包交易中提取)。它窃取密钥信息,部署远程访问木马(RAT),并安装Chrome信息窃取工具用于获取Cookie和键盘记录。
攻击权衡:
- 优点: 原生代码在开发者工具中不可见;基于Solana的C2可抵御域名封锁。
- 缺点: 二进制哈希值在重建前保持不变;仅限于Windows和macOS平台。
GlassWorm的演变历程
该攻击活动自2025年3月起持续活跃,已从早期的Unicode编码npm包,演变为依托GitHub和VS Code市场。关键转变在于:采用基于Zig的附加组件替代JavaScript,要求对操作系统进行深度分析。已有数百个开源项目被成功入侵。
感染迹象(IoC)
扩展名:
specstudio.code-wakatime-activity-trackerfloktokbok.autoimport
SHA-256二进制文件:
- win.node:
2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02 - mac.node:
112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44
字符串特征: vsx_installer_zig,davidioasd
核心启示
- 原生Zig附加组件可绕过JS分析——应重点监控扩展中的
.node和.dll文件。 - 感染呈链式传播:一个被入侵的扩展可感染机器上所有VS Code分支。
- 基于Solana的C2通信:域名封锁无效——必须实施区块链行为监控。
- 跳过俄语本地化表明目标明确——若发现异常,立即轮换密钥。
- 预防措施:验证发布者身份与安装数量;扫描EDR目录中的扩展文件。
清理步骤
- 检查所有IDE(VS Code、Cursor等)中的扩展。
- 移除可疑扩展;立即轮换SSH密钥、令牌(npm、GitHub PAT、AWS凭证)。
- 清除Chrome中未知扩展并登出所有账户。
- 实施扩展白名单策略,并对原生附加组件启用EDR防护。
— Editorial Team
暂无评论。