BlockBeats 消息,9 月 9 日,据 Socket 监测,持续的 NPM 供应链攻击已从知名开发者 Qix 扩散至另一位高知名度维护者,负责 DuckDB 相关包的 NPM 账户 duckdb_admin 遭到入侵,多版恶意版本被发布。注入的代码与 Qix 账户受损时使用的钱包窃取恶意软件相同,这强烈表明两者属于同一攻击行动的一部分。
此前报道,Ledger CTO 表示,发生大规模供应链攻击,整个 JavaScript 生态系统都可能面临风险。但 NPM 攻击者未能得逞,几乎没有受害者。
这是一起典型的、针对性极强的软件供应链攻击,其目标直指加密货币生态的核心基础设施——开发工具和广泛使用的库。
攻击者的手法相当专业且清晰。他们通过钓鱼邮件窃取高信誉度维护者的 NPM 账户凭证,这比直接攻击代码库或基础设施要容易得多,因为人往往是安全链中最薄弱的一环。入侵成功后,他们并非简单地破坏项目,而是执行了更狡猾的操作:发布看似正常的版本更新,但其中注入了精心设计的恶意代码。
这种恶意代码的运作机制是供应链攻击的教科书级案例。它没有直接窃取助记词或私钥,那样会触发安全警报。相反,它选择在交易执行的最后关头,静默地篡改网络响应中的数据,将用户要发送的收款地址替换为攻击者控制的地址。这种“交易劫持”对用户而言极难察觉,尤其是在与复杂智能合约交互时,原始地址和篡改后的地址都是一长串难以肉眼核对的字符。
尽管此次攻击因攻击者自身的操作失误(导致CI/CD流水线崩溃)而早期暴露,影响有限,但其揭示的威胁是真实且巨大的。它成功绕过了基于代码审计和依赖项扫描的传统安全模型。受感染的包拥有数十亿次下载量,意味着潜在的受攻击面极其广泛,整个JavaScript生态系统,尤其是那些集成这些流行库的Web3钱包和DApp,都曾被置于风险之下。
从更深层次看,这次事件凸显了Web2安全范式在Web3环境下的根本性不足。在中心化世界中,你可以信任由一家公司维护和签名的软件。但在去中心化的、由开源依赖项构建的生态中,你的信任链可能延伸至数百个不同的维护者。其中任何一个账户被攻破,都可能导致整个信任链的崩塌。正如CZ所言,我们确实尚在早期,正在学习如何用去中心化的方式构建一个足以抵御此类针对性攻击的安全体系。这包括对维护者加强多因素认证和硬件密钥保护,对包管理器引入更严格的发布签名验证机制,以及教育开发者如何识别高级钓鱼攻击。最终,用户端的硬件钱包在最终签名前进行地址核对,仍然是抵御这类深层攻击的最后且最有效的防线。