导语:安全研究人员近日发现一起大规模供应链攻击活动「GlassWorm」,攻击者滥用72个恶意Open VSX扩展程序,成功感染了151个GitHub仓库。这是针对开发者社区的严重供应链攻击,攻击者利用扩展依赖关系和不可见Unicode字符隐藏恶意代码,窃取令牌和凭据。
一、事件概述
1.1 攻击规模大幅升级
安全公司Socket近日发布报告称,GlassWorm供应链攻击活动出现重大升级。攻击者不再需要每个恶意扩展都直接嵌入加载器,而是滥用Open VSX的extensionPack和extensionDependencies功能,将最初看似独立的扩展转变为后续更新的传递性投递工具。
这意味着一个表面良心的扩展包可以在建立信任后,开始悄悄拉取另一个与GlassWorm关联的恶意扩展。这种攻击手法类似于npm包依赖链攻击,让恶意代码能够潜伏在合法的依赖关系中。
1.2 受影响范围
根据安全研究人员的调查,本次攻击涉及:
- 72个恶意Open VSX扩展:这些扩展伪装成广泛使用的开发者工具,包括linter、格式化工具、代码运行器,以及AI编程助手(如Clade Code和Google Antigravity)的相关扩展
- 151个GitHub仓库被感染:仅在2026年3月3日至3月9日期间,就有151个仓库受到影响
- 2个恶意npm包:使用了相同的不可见Unicode字符技术
部分恶意扩展名称包括:
- angular-studio.ng-angular-extension
- crotoapp.vscode-xml-extension
- gvotcha.claude-code-extension
- mswincx.antigravity-cockpit
- tamokill12.foundry-pdf-extension
- turbobase.sql-turbo-tool
目前Open VSX已采取措施,将这些恶意扩展从注册表中移除。
二、攻击技术分析
2.1 传递性扩展依赖滥用
GlassWorm攻击的核心技术是利用扩展的依赖关系。攻击者首先上传一个完全无害的VS Code扩展来通过审查,然后在后续更新中将其修改为列出GlassWorm关联的包作为依赖。
「因此,一个在最初发布时看起来非传递性且相对良心的扩展,后来可以成为GlassWorm的传递性投递载体,而其明显目的没有任何变化。」Socket在报告中指出。
无论扩展在package.json中声明为「extensionPack」还是「extensionDependencies」,编辑器都会安装其中列出的每个其他扩展。
2.2 不可见Unicode字符隐藏
安全公司Aikido的研究发现,攻击者还使用了不可见Unicode字符来隐藏恶意代码。这些字符在加载到代码编辑器和终端时不会显示,但会解码为一个加载器,负责获取和执行第二阶段脚本以窃取令牌、凭据和 secrets。
「恶意注入并非来自明显可疑的提交。」安全研究员Ilyas Makari表示,「周围的变化非常现实:文档调整、版本小更新、小型重构和错误修复,这在风格上与每个目标项目保持一致。这种针对项目的定制水平强烈表明攻击者正在使用大语言模型生成令人信服的掩盖性提交。」
2.3 规避检测手段
最新的GlassWorm攻击还具备以下特征:
- 避免感染俄语系统:运行检查以避免感染使用俄语地区的系统
- Solana交易作为C2死点:使用Solana交易作为命令控制(C2)服务器的死点解析器,以提高弹性
- 钱包轮换:旋转Solana钱包以规避检测
- 更强混淆:采用更复杂的代码混淆技术
三、历史背景
GlassWorm攻击活动并非首次出现:
- 2025年10月:Koi Security首次发现GlassWorm活动
- 2025年3月:使用相同战术的npm包(包括使用不可见Unicode字符隐藏恶意代码)已被识别
- 2026年2月:Open VSX供应链攻击首次被曝光
- 2026年1月31日以来:又发现72个新的恶意Open VSX扩展
这表明GlassWorm是一个持续活跃且不断演进的威胁行为者。
四、类似活动:PhantomRaven
与此同时,Endor Labs发现了另一波恶意活动。该公司表示发现了88个新的恶意npm包,通过50个一次性账户在2025年11月至2026年2月期间分三波上传。
这些包具有以下功能:
- 窃取敏感信息,包括环境变量、CI/CD令牌和系统元数据
- 使用远程动态依赖(RDD),允许运营者随时修改恶意代码
虽然这些包最初被识别为PhantomRaven活动的一部分,但Endor Labs后来指出它们实际上是由一名安全研究员作为合法实验创建的。不过该公司提出了三个红旗作为质疑:
- 这些库收集的信息远超过必要范围
- 没有向用户提供任何透明度
- 发布者故意轮换账户名称和电子邮件地址
截至2026年3月12日,这些包的所有者已做出更改,将一些npm包的数据收集payload替换为简单的「Hello, world!」消息。
五、防御建议
面对供应链攻击威胁,企业和开发者应采取以下措施:
- 仔细审查扩展依赖:在使用新的VS Code扩展前,仔细检查其依赖关系
- 监控代码变更:对仓库的每次提交进行安全审查,特别关注看似无害的文档更新和小改动
- 使用安全工具:部署软件成分分析(SCA)工具来检测恶意依赖
- 令牌保护:定期轮换API令牌和凭据,使用环境变量安全管理工具
- 关注供应链安全:建立供应链安全最佳实践,对第三方包保持警惕
六、总结
GlassWorm供应链攻击的升级表明,针对开发者的攻击正在变得愈加复杂。通过滥用扩展依赖关系和不可见字符技术,攻击者能够绕过传统安全检测,在开发者日常工作流程中植入恶意代码。
这起事件再次提醒我们,供应链安全已成为网络安全的关键战场。开发者在使用开源扩展和包时,必须保持高度警惕,因为看似合法的工具可能暗藏杀机。













暂无评论内容