要点:
- IronWorm恶意软件入侵了Arweave生态系统中36个npm包,窃取开发者凭证
- 这款基于Rust的蠕虫使用eBPF rootkit和Tor C2,与已知恶意软件框架均不匹配
- 攻击者在9个组织中进行了57次恶意提交,随后悄然删除相关包
要点:

一款名为IronWorm的Rust语言蠕虫入侵了Arweave生态系统中至少36个npm包,窃取开发者凭证,并利用这些凭证在GitHub仓库间自我传播,随后消失无踪。
JFrog安全研究团队在调查Arweave和WeaveDB开源生态系统中一个开发者账户的可疑活动时,发现了这一攻击活动。这款用Rust编写的恶意软件从受感染的开发者机器上窃取API密钥、云凭证、SSH密钥和npm发布令牌,然后利用这些凭证向其他仓库推送恶意代码。
"最接近的对比是Shai-Hulud攻击活动,"JFrog研究团队在周三发布的一份报告中表示。"我们审查的恶意软件与它有很多共同点:相同的思路,即入侵开发者、窃取凭证,并利用受信任的软件供应链工作流进一步传播。"但研究人员补充说,IronWorm将这一概念"提升到了新的水平"。
攻击者在属于9个组织的仓库中进行了至少57次恶意代码修改,并通过回溯提交日期来掩盖入侵的时间线。一些贡献被归属于Anthropic的Claude AI模型,使用的邮箱是"[email protected]",尽管时间戳显示为13年前。JFrog表示,GitHub Action日志显示,这些提交实际上是由被入侵的ocrybit用户推送的。追踪该活动的还有OX Security,该公司表示,在威胁被缓解之前,受影响包的月下载总量超过3.2万次。
一款无先例的定制化植入程序
JFrog表示,IronWorm的有效载荷与其数据库中的任何已知信息窃取程序、eBPF rootkit或命令与控制框架均不匹配。该二进制文件包含数千个函数,其中带有加密字符串,这些字符串只能在运行时才能恢复,每个字符串使用独特的解密参数,而非单一的硬编码密钥。
该恶意软件针对云服务商、AI服务和加密货币平台共86个环境变量。它窃取亚马逊云服务(AWS)、Docker、Kubernetes、npm和vault配置的凭证,以及包括Anthropic、OpenAI、Google Gemini、Cohere、Mistral、Groq、Perplexity和xAI在内的AI服务的API密钥。它还针对Exodus桌面加密货币钱包——不过攻击者硬编码了自己钱包的BIP-39恢复短语,以防止恶意软件触及该钱包,JFrog追踪发现这是一个近乎空置的测试钱包,仅存有几美分。
IronWorm使用一个eBPF有效载荷,该载荷作为Linux内核rootkit运行,用于隐藏恶意进程、文件和网络活动,使其不被安全系统发现。JFrog指出,在启用了内核锁定的系统上,进程隐藏技巧会失效,活动就会重新变得可见。该恶意软件通过Tor与其操作者通信,并接受上传机密、投放文件和运行远程Shell的命令。
通过可信发布机制自我传播
攻击链始于一个名为"asteroiddao"的被入侵npm账户,该账户发布了包含Rust ELF二进制文件的包版本,并通过预安装钩子执行。在CI环境中,该恶意软件滥用了npm的可信发布(Trusted Publishing)流程——从开发者的CI环境中获取OIDC令牌,从而无需npm凭证即可将中毒版本推送到注册表。
恶意载荷还替换了现有的GitHub Actions工作流,替换为一个能够窃取机密、将机密写入一个看似无害的文件、并将其作为构建产物上传的版本——从而无需外部C2服务器即可进行数据外泄。JFrog表示,攻击者在发布恶意包后一天内便将其从GitHub上悄然删除。
这一攻击活动与TeamPCP网络犯罪组织部署的Shai-Hulud蠕虫如出一辙,后者此前曾入侵Trivy安全扫描工具及其他项目,部署针对CI/CD机密的信息窃取程序。但IronWorm是用Rust而非JavaScript编写的,这使得逆向工程难度大大增加。JFrog表示"无法确定"IronWorm是否与TeamPCP直接相关,还是模仿者。
此次攻击凸显了开发者环境已成为供应链攻击的主要目标。通过入侵一名开发者,威胁行为者可以将恶意代码引入受信任的软件项目,并触及众多下游组织。JFrog表示,可能受影响的组织应审计仓库中来自ocrybit账户的提交,轮换被入侵账户可访问的所有密钥和机密,并检查已发布的npm包中是否存在恶意版本。
本文仅供信息参考,不构成投资建议。