npm史上最大规模垃圾包攻击之一:15万恶意包暗藏挖矿

事情的调查一点也不简单。亚马逊内部的检测团队在十月下旬靠着新加的一套规则和 AI 工具,先把一批看起来怪怪的包给盯上了。到十一月七号,他们已经把成千上万个相关包贴上了可疑标签。十一月十二号再统计时,发现从多个开发者账号里累计被打上的恶意包超过了十五万件。公司在十一月十三号把这事公布出来,媒体在十一月十七号开始跟进报道,大家才知道事情比想象中大得多。

npm史上最大规模垃圾包攻击之一:15万恶意包暗藏挖矿

这些问题包和一个叫 tea.xyz 的去中心化协议有关。tea.xyz 用 TEA 代币奖励那些对开源项目有贡献的人,代币能用来激励、质押和参与治理。攻击者盯上了这个奖励通道,把恶意代码塞进 npm 包里,代码带着自我复制的逻辑,会自动生成并发布新包。每当这些包被系统当成正常“贡献”处理,奖励就会流到攻击者指定的钱包——这些钱包地址藏在包里的 tea.yaml 配置文件里。简单说,就是把开源的奖励机制当提款机,用自动化大规模“挖”代币。

从技术角度看,这波攻击不是传统意义上的投毒、窃凭证或直接植入勒索软件。关键在于自动化:恶意包里有自动生成和发布新包的脚本,一旦触发就会把新包塞回注册表。为防被一眼识破,攻击者还用了许多开发者账号分散来源,降低被单个账号封禁的风险。结果是短期内注册表里充满了大量低质量、没什么实际功能的包,影响很明显——空间和带宽被占用,用户筛查成本上来,社区信任被消磨。

AWS 两位研究员 Chi Tran 和 Charlie Bacon 把这次活动称作“通过金融激励进行的注册表污染”。他们提醒,这种以金钱为驱动的新玩法,让攻击者不必去偷数据或装后门,直接操纵奖励流就能赚钱。问题有好几层:注册表被垃圾包淹没,真正的贡献更难被发现;基础设施承担额外存储和流量压力;更要命的是,大家开始怀疑什么包能用,开源协作的信任链被打断。

应对措施上,亚马逊并不是单打独斗。公司把检测到的恶意包提交给开放源码安全基金会 OpenSSF,放进他们的恶意包库。每个被提交的包平均在三十分钟内拿到一个 MAL-ID 标识,方便其他平台快速识别和拦截。这种协同联动让受污染的包更快被连锁阻断,减少扩散。

在技术检测方面,亚马逊启用了 Inspector 的新规则,并让 AI 帮忙筛查那些模式化、自动生成的包名、元数据和发布行为。AI 负责从海量样本里挑出异常,再由人工复核。十月底开始,这套组合就开始发挥效果,后续的人工分析把疑点范围扩大到数万乃至十几万件,才暴露出这次规模。

攻击者选用茶系代币并不奇怪:奖励系统直接把“贡献”变成能兑现的价值,流程清晰可追踪,适合放脚本去滥用。搭建攻击链条也不复杂:做个带自动生成脚本的包,在元数据里放个指向控制钱包的 tea.yaml,然后让自动化在合适时机发布。被滥用的注册表生态和开源协作流程,无形中给了他们操作的“合法外衣”。

这类问题不只会发生在 npm。研究者警告,任何把线上行为直接换成可提现价值的系统,都可能被类似自动化手段滥用。眼下看到的只是第一波,规模大、自动化强,但还比较容易被发现。将来如果有人把手法藏得更深,后果会更严重。

对开发者和组织来说,有几件实用的事可以做:用现有的扫描工具检查开发环境里有没有和 tea.xyz 挖矿活动相关的包;清理并下架那些低质量、功能空洞的依赖;在供应链安全上做点基本功,列如维护软件物料清单(SBOM);把 CI/CD 环境隔离,降低被自动化脚本触发的几率;还有就是跨社区共享情报,把恶意包信息及时同步到公共库里,减少重复被利用的机会。

看着注册表被刷成这样,的确 让人有点无语。开源本来是大家互帮互助,偏偏有人把它当成能直接赚钱的通道去利用。对普通开发者来说,多点警觉、多做防护,别让自己的构建环境和依赖链成了别人提款的工具。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
可是他们只要的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容