网络安全研究人员发现了一起针对npm registry的新型软件供应链攻击,该攻击已影响到40多个分属不同维护者的软件包。
供应链安全公司Socket表示:“这些被篡改的版本包含一个函数(NpmModule.updatePackage),该函数会下载一个包压缩文件,修改package.json,注入一个本地脚本(bundle.js),重新打包归档文件并重新发布,从而实现对下游包的自动植入木马。”
该活动的最终目标是使用TruffleHog的凭证扫描器在开发人员的机器上搜索机密信息,并将这些信息传输到攻击者控制的外部服务器。这种攻击能够针对Windows和Linux系统。
已确认以下软件包受到此次事件的影响:
- [email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected],@4.1.2
- @ctrl/[email protected]
- @ctrl/[email protected]
- @ctrl/[email protected]
- [email protected]
- [email protected], 0.2.1
- [email protected]
- @nativescript-community/[email protected]
- @nativescript-community/sentry 4.6.43
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- @nativescript-community/[email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
注入到每个被植入木马的包中的恶意JavaScript代码(“bundle.js”)旨在下载并运行TruffleHog——一款合法的密钥扫描工具,利用它来扫描主机以寻找令牌和云凭证,例如GITHUB_TOKEN、NPM_TOKEN、AWS_ACCESS_KEY_ID和AWS_SECRET_ACCESS_KEY。
Socket表示:“它通过whoami端点验证npm令牌,并且在有令牌可用时与GitHub API交互。它还尝试进行云元数据发现,这可能会泄露云构建代理中的短期凭据。”
然后,该脚本滥用开发者的凭据(即GitHub个人访问令牌)在.github/workflows中创建一个GitHub Actions工作流,并将收集到的数据泄露到webhook[.]site端点。
建议开发者检查自己的环境,如果上述包含发布凭证的包存在,应轮换npm令牌和其他暴露的机密信息。
该公司指出:“它写入代码仓库的工作流会在初始主机之外持续存在。一旦提交,未来任何持续集成运行都可能从管道内部触发数据泄露步骤,而根据设计,管道中会存在敏感密钥和工件。”
StepSecurity也分享了该活动的细节,其表示,鉴于该恶意软件包含一种自我传播机制,能够自动感染下游软件包,此次攻击表明供应链威胁出现了令人担忧的演变。这种行为造成了“整个生态系统的连锁式危害”。
更多受影响的包
正在进行的npm供应链事件(代号为沙伊-胡鲁德攻击)还利用了“crowdstrike-publisher”这个npm账户来发布多个植入了木马的包——
- @crowdstrike/[email protected]、8.1.2
- @crowdstrike/[email protected]
- @crowdstrike/[email protected]
- @crowdstrike/[email protected], 0.34.3
- @crowdstrike/[email protected]
- @crowdstrike/[email protected]
- @crowdstrike/[email protected], 1.205.2
- @crowdstrike/[email protected]
- @crowdstrike/[email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
- [email protected]
CrowdStrike的一位发言人告诉《黑客新闻》:“在第三方开源代码库——公共npm registry中发现多个恶意的Node包管理器(npm)包后,我们迅速将其移除,并主动轮换了公共registry中的密钥。”
“这些软件包未在Falcon传感器中使用,该平台未受影响,客户仍受到保护。我们正与npm合作,并进行全面调查。”
OX安全团队在其自身分析中表示,他们发现了34个被入侵的GitHub账户,这些账户中包含“Shai-Hulud”代码库,其中有一个“data.json”文件,里面含有一个经过编码的JSON,其中包含攻击者上传到受害者GitHub账户的被泄露信息。
供应链安全公司ReversingLabs将这一事件描述为“首例自复制蠕虫”,它通过窃取云令牌的恶意软件入侵npm包。据信,此次事件的起点是rxnt-authentication,其恶意版本于2025年9月14日17:58:50(UTC时间)发布在npm上。
“因此,npm维护者‘techsupportrxnt’可以被视为此次攻击活动的零号病人,”安全研究员卡洛·赞基称。“一旦感染Shai-Hulud,npm包就会发起攻击,因为它们在不知情的情况下允许这种蠕虫通过自己维护的包进行自我传播。”
“鉴于npm生态系统中存在大量的包依赖关系,很难预测下一个被攻击的对象是谁,以及Shai-Hulud可能会蔓延到何种程度。在撰写本文时,RL已经识别出数百个被Shai-Hulud恶意软件攻击的npm包。”
ReversingLabs表示,“techsupportrxnt”这个npm账号究竟是如何遭到入侵的,是查明此次攻击源头的关键,不过目前还不能排除是钓鱼邮件或利用存在漏洞的GitHub动作导致的可能性。
除了通过入侵npm开发者账户,在注入恶意软件后创建新版本来植入其他软件包外,这种类似蠕虫的恶意软件还试图为受感染用户的所有私有代码库创建公开副本,其目的很可能是获取这些代码库中硬编码的机密信息并窃取源代码。
新创建的仓库在其原始名称后添加了后缀 -migration,这让人想起上个月末针对 nx 构建系统的 s1ngularity 攻击。
“我们发现nx活动的设计和功能与沙虫(Shai-Hulud)存在显著重叠,”赞基说,“更令人担忧的是,恶意软件正通过被入侵的npm账户自动传播到其维护的软件包中。”
云安全公司Wiz也将这两个活动集群进行了对比,认为最新的攻击活动是s1ngularity攻击的“直接下游”。该公司称这是“迄今为止观察到的最严重的JavaScript供应链攻击之一”,并敦促立即采取行动,移除这些恶意版本的软件包,升级到干净的版本。
“此次攻击最显著的特征之一是,它的行为就像一种真正的蠕虫病毒,”合气道(Aikido)的研究员查理·埃里克森表示。“这种循环使得恶意软件能够持续感染维护者有权访问的每一个软件包。”
“每个已发布的软件包都会成为新的传播载体:一旦有人安装它,蠕虫就会执行、复制,并进一步侵入该生态系统。一旦单个环境遭到破坏,蠕虫就会借助维护者自身的发布权限,自动进行传播。”
crates.io钓鱼活动
这一披露发布之际,Rust安全响应工作组正警告称,存在来自拼写相似域名rustfoundation[.]dev的钓鱼邮件,其目标是crates.io用户。
这些邮件发自security@rustfoundation[.]dev,警告收件人crates.io基础设施据称已遭入侵,并指示他们点击内嵌链接重置登录信息,以“确保攻击者无法修改你发布的任何包”。
恶意链接github.rustfoundation[.]dev模仿了GitHub的登录页面,显然攻击者试图以此获取受害者的凭证。目前该钓鱼页面已无法访问。
“这些电子邮件具有恶意,来自一个不受Rust基金会(以及Rust项目)控制的域名,其目的似乎是窃取你的GitHub凭证,”Rust安全响应工作组表示。“我们没有证据表明crates.io基础设施遭到了入侵。”
Rust 团队还表示,除了让这个钓鱼域名被停用外,他们还在采取措施监控 crates.io 上的任何可疑活动。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


评论