GlassWorm恶意软件
新一轮 GlassWorm 恶意软件攻击活动正积极针对软件供应链,利用窃取的 GitHub 令牌将恶意代码注入数百个代码仓库。此次攻击主要针对基于 Python 的项目,包括 Django 应用程序、机器学习研究代码、Streamlit 控制面板和 PyPI 软件包。
攻击手段看似简单,实则非常有效:混淆后的恶意软件被附加到常用的执行文件中,例如 setup.py、main.py 和 app.py。任何通过 pip install 安装依赖项或执行从被入侵的存储库中克隆的代码的开发人员,都会在不知情的情况下激活恶意载荷。
目录
静默存储库接管:ForceMemo 技术
这一演变后的攻击活动,现被称为 ForceMemo,引入了一种隐蔽的入侵代码库的方法。攻击者能够获取开发者账户的访问权限,并在不留下任何常规痕迹的情况下操纵代码库。
攻击者通过将合法提交与恶意代码进行变基,并强制推送到默认分支,从而保留了原始提交元数据,包括消息、作者和时间戳,有效地掩盖了入侵行为。这种方法消除了诸如拉取请求或可疑提交历史记录等可见的迹象,使检测难度显著增加。
攻击执行链:从凭证窃取到有效载荷交付
ForceMemo 攻击活动遵循结构化的多阶段入侵流程:
- 开发者环境最初是通过恶意 Visual Studio Code 和 Cursor 扩展程序入侵的,这些扩展程序携带 GlassWorm 组件,旨在窃取敏感凭据,包括 GitHub 令牌。
- 然后使用窃取的凭证将混淆的 Base64 编码有效载荷注入到与被入侵帐户关联的所有存储库中的 Python 文件中。
- 嵌入式恶意软件会执行环境检查,尤其会避免在配置了俄语语言环境的系统上执行。然后,它会查询 Solana 区块链钱包,以动态获取有效载荷的投放 URL。
- 还会下载其他有效载荷,包括旨在窃取加密货币和数据泄露的加密 JavaScript。
基于区块链的指挥与控制:一种弹性基础设施
此次攻击活动的一个显著特点是它依赖 Solana 区块链作为命令与控制 (C2) 机制。攻击者没有使用传统的服务器,而是将有效载荷 URL 存储在与特定钱包地址关联的交易备注字段中。
分析显示,与主钱包相关的活动最早可追溯至2025年11月27日,比存储库遭到入侵早数月。该钱包已处理数十笔交易,有效载荷位置频繁更新,有时甚至一天更新数次。这种去中心化的设计增强了系统的韧性,也增加了打击难度。
扩大攻击面:npm 和跨生态系统感染
此次攻击活动已从 Python 生态系统扩展到 JavaScript 供应链。两个 React Native npm 包 react-native-international-phone-number(版本 0.11.8)和 react-native-country-select(版本 0.3.91)被暂时入侵并植入恶意软件。
这些恶意版本引入了预安装钩子,执行混淆的 JavaScript 代码,从而启动类似的感染链。该恶意软件同样会避开俄罗斯系统,通过 Solana 钱包获取有效载荷指令,并部署特定平台的威胁。
程序完全在内存中执行,利用了诸如 eval() 或 Node.js 沙箱等运行时技术,从而最大限度地减少了取证痕迹。此外,持久化机制通过在本地存储时间戳,防止在 48 小时内再次感染。
高级规避和分散战术
GlassWorm 的最新版本在传播和隐藏方面展现出更高的复杂性。攻击者利用 extensionPack 和 extensionDependencies 机制,通过受信任的扩展生态系统传递分发恶意载荷。
与同一威胁行为者相关的早期攻击活动曾利用不可见的Unicode字符隐藏恶意代码,入侵了超过151个GitHub代码库。尽管混淆和传播策略各不相同,但所有攻击活动都依赖于相同的基于Solana的基础设施,这证实了其统一的行动框架。
恶意IDE扩展:针对开发者环境
该攻击活动还通过一个名为 reditorsupporter.r-vscode-2.8.8-universal 的恶意扩展程序渗透到开发工具中,目标是 Windsurf IDE。该扩展程序伪装成 R 语言支持插件,部署了一个基于 Node.js 的信息窃取程序。
安装完成后,该扩展程序会从区块链交易中检索加密的有效载荷,在内存中执行这些有效载荷,并部署编译后的组件,以从基于 Chromium 的浏览器中提取敏感数据。它通过计划任务和 Windows 注册表修改来实现持久化,确保在系统启动时自动执行。
该恶意软件专门针对开发者环境,同时排除俄罗斯系统,这与其他 GlassWorm 变种的行为如出一辙。
规模和影响指标
安全分析表明,此次攻击活动已对开源生态系统造成严重破坏,影响了多个平台上的 433 多个项目。这些项目包括 GitHub 代码库(Python 和 JavaScript)、VS Code 扩展程序和 npm 库。
所有感染路径最终都汇聚到部署基于 JavaScript 的信息窃取程序上,这凸显了其一致的最终目标:窃取凭证和数据外泄。
- 已确认超过 433 个项目和软件包遭到入侵
- 多种交付途径,包括 GitHub、npm 和 IDE 扩展
- 持续使用 Solana 区块链基础设施进行有效载荷交付
- 所有型号的俄罗斯系统均被反复排除在外
战略评估:供应链攻击的新时代
ForceMemo攻击活动标志着软件供应链威胁的显著升级。它结合了隐蔽的Git历史记录篡改、基于区块链的C2基础设施以及跨平台感染途径,展现出攻击者高度成熟的作战能力。
基础设施的重复利用以及不断演进的交付机制表明,攻击者具备适应性,能够在保持持久性和规避能力的同时扩展攻击规模。这种从孤立攻击到协同的、跨生态系统入侵的转变,凸显了现代开发环境和开源社区面临的日益增长的风险。