AsyncAPI npm供应链遭攻陷:200万周下载量包植入恶意代码,偷密+挖币+RAT全功能

AsyncAPI npm供应链攻击分析:攻击者入侵维护者账户,在4个周下载量超200万的包中注入混合恶意代码(信息窃取、加密货币窃取、RAT),利用IPFS和BitTorrent作为C2,并能自我传播。本文提供攻击链、IOC、缓解措施及FAQ,帮助安全团队防御该严重供应链威胁。

⛓️ Critical 供应链攻击

安全研究人员发现AsyncAPI npm组织被入侵,四个主流包(周下载量超200万)中注入了复杂的恶意代码。该恶意软件集信息窃取、加密货币窃取、远程访问木马(RAT)于一体,利用IPFS和BitTorrent节点作为备用C2,并能自动传播到npm/PyPI/Cargo上的开发者其他包。

来源:Security Affairs | 2026-07-15 | 原文链接

🔍 关键发现

  • 恶意代码长达91,973行,功能复杂,包括窃取凭证、加密货币钱包、远程控制等
  • 使用IPFS(ipfs.io)存储恶意载荷并作为备用C2,同时利用BitTorrent引导节点(router.bittorrent.com、router.utorrent.com、dht.transmissionbt.com)保持通信
  • 检测虚拟机、EDR工具及俄语系统区域设置,若命中则终止运行,避免被沙箱分析和误伤操作者
  • 代码中嵌入Miasma字符串,疑似刻意伪装成已知活动以误导分析溯源
  • 虽然npm v12已阻止post-install脚本,但攻击者直接将恶意代码写入主JS文件,导入即执行,绕过该防护

⚔️ 攻击链分析

1. 攻击者入侵AsyncAPI npm维护者账户,获得发布权限。2. 在四个包(@asyncapi/generator、@asyncapi/generator-components、@asyncapi/generator-helpers、@asyncapi/specs)的主JS文件中直接嵌入恶意代码。3. 用户在项目中导入这些包时,恶意代码自动执行。4. 恶意代码收集本地令牌、密钥,并尝试利用受害者账户向npm/PyPI/Cargo上其维护的其他包发布恶意版本,实现自我传播。

🚩 失陷指标 (IOC)

  • 85.137.53.71(主C2服务器)
  • 0x12c37A86a0Ed0beBe5d1d6a43E42f07860eAc710(以太坊合约地址)
  • ipfs.io(IPFS网关,用于存储载荷和后备C2)
  • router.bittorrent.com
  • router.utorrent.com
  • dht.transmissionbt.com(BitTorrent引导节点)

🛡️ 缓解建议

  • ✅ 立即撤销受影响机器上所有npm、PyPI、Cargo开发令牌并轮换密码/密钥
  • ✅ 审计近期通过开发者机器发布的包版本,检查是否有未授权的版本发布
  • ✅ 在开发者网络防火墙中监控对IPFS网关及BitTorrent引导节点的异常出站连接
  • ✅ 使用SBOM工具(如npm audit、snyk)扫描是否使用了上述恶意版本(@asyncapi/generator 3.3.1、@asyncapi/generator-components 0.7.1、@asyncapi/generator-helpers 1.1.1、@asyncapi/specs 6.11.2/6.11.2-alpha.1)
  • ✅ 升级npm至最新版本并启用严格的安全策略,同时加强对第三方依赖的审查流程

涉及漏洞:[]


⚠️ 本文仅供安全研究与学习,IOC 信息请勿用于非法目的。

🤖 常见问题解答(FAQ)

❓ 如何快速确认自己是否受影响?

检查项目依赖中是否包含@asyncapi/generator 3.3.1、@asyncapi/generator-components 0.7.1、@asyncapi/generator-helpers 1.1.1、@asyncapi/specs 6.11.2/6.11.2-alpha.1,若有则立即隔离并执行后续缓解措施。

❓ 为什么npm v12的post-install防护没能阻止此攻击?

攻击者直接将恶意代码嵌入包的主JS文件(如index.js),在导入时执行,无需post-install脚本,因此npm v12的限制对此无效。

❓ 这次攻击与Miasma/Shai-Hulud活动是否有关联?

OX Research判定代码中的Miasma字符串是故意植入的虚假线索,以误导分析人员;实际攻击手法与过往活动不同,建议独立溯源。

[!] CONTACT_CHANNELS

如需商务合作、技术咨询或漏洞反馈,请通过以下离岸节点联系作者。

> PING_AUTHOR (@A1RedTeam)