去年10月曝光的蠕虫程序GlassWorm,黑客最初在Open VSX和Visual Studio Code(VS Code)扩展市场开展活动,随后将攻击范围扩展至GitHub、NPM,甚至Chrome扩展市场。如今传出黑客转移目标,开始针对受害开发环境中的各类集成开发环境(IDE)工具。
安全公司Aikido在Open VSX发现恶意扩展code-wakatime-activity-tracker,黑客模仿热门的时间追踪工具WakaTime,并在扩展中嵌入用Zig语言编译的二进制文件。与此前攻击行动类似,该二进制文件并非GlassWorm的实际载荷,而是用于传播该蠕虫的中间工具。此次GlassWorm的感染目标,是受感染电脑上安装的所有IDE工具。
此次上传的恶意扩展外观与正版WakaTime几乎一致,具备相同的注册指令、API密钥提示和状态栏图标,但功能逻辑不同。该恶意扩展在执行WakaTime原有逻辑前,会根据操作系统加载对应的二进制文件:在Windows系统中为PE32+格式的DLL文件;在macOS系统中则为支持x86或Arm芯片的通用Mach-O文件。无论是DLL还是Mach-O文件,均为Node.js原生插件,黑客使用Zig编写,并通过特定共享库编译,直接在Node.js运行时环境中加载。更危险的是,此类程序不仅能突破JavaScript沙箱限制,还拥有完整的操作系统级访问权限。
一旦二进制文件在受害电脑成功加载,便会尝试识别开发人员使用的IDE工具。这些工具的共同特点是均支持安装VS Code扩展,包括VS Code、VS Code Insiders、Cursor、Windsurf、VSCodium和Positron。随后,二进制文件会从GitHub下载恶意的VSIX文件。