NPM 供应链攻击:1 封邮件差点毁了整个加密世界

JonasJonas
/2025年9月11日
NPM 供应链攻击:1 封邮件差点毁了整个加密世界

要点总结

• 黑客通过钓鱼邮件劫持 NPM 维护者账号,注入恶意代码并污染上游依赖

• 受污染库一旦被更新,前端网页即可能自动加载恶意脚本,拦截并篡改用户交易

• 攻击利用了地址相似度算法伪造地址,诱导用户签名错误交易

• 事件虽然损失金额不大,但暴露出供应链攻击的高传播性与隐蔽性

• 硬件钱包能独立解析交易并在屏幕上展示「所见即所签」,是本次事件中的安全护盾

• OneKey 使用锁版本管理依赖,未引入恶意更新版本

• 开发者需通过锁版本、私有源和自动扫描等手段降低依赖被污染的风险

• 安全不是锦上添花,而是 Web3 中最基本的生存工具

• OneKey 的 SignGuard 功能实现对交易内容的本地独立验证,确保交易透明

• 本次逃过一劫只是运气,下一次攻击可能已经在路上

「NPM」、「供应链攻击」、「前端劫持」、「不要进行任何链上操作」.......

昨天一觉醒来,时间线已被相关关键词刷屏。你可能下意识地以为只是又一起黑客闹剧,却没意识到——一场史无前例的「 NPM 供应链攻击」早已在深夜悄然引爆。

先简单总结一下那晚发生了什么:「黑客劫持了 NPM 开源库维护者的账号,并植入恶意代码,更新过相关库的网站将会自动执行恶意程序,该程序会通过前端网站监控并拦截加密钱包发起的交易,并篡改交易信息,将收款人地址篡改为攻击者地址,以此盗取用户资金」。

这就是一次针对 NPM 库的供应链攻击:攻击者不是直接攻击你项目的代码,而是「上游」——你项目依赖的第三方包、这些包的维护者账号、发布流程或仓库。一旦上游被污染,就会顺着依赖链传到无数下游项目,造成大范围中毒。

这场超大规模的黑客事件为何发生的?OneKey 用户又是如何幸免于此?这篇文章从头到尾给你讲个明白👇

「事件的来龙去脉」

北京时间 9 月 8 日晚 10 点左右,网络安全公司 aikido 的成员在社媒平台 bsky 上喊话 NPM 维护员 qix,称其相关账号已经被盗,并恶意更新相关开源库。随后很快被本人证实。

而被盗原因却非常的简单:一封钓鱼邮件。被盗者 qix 称其收到一封来自 NPM 团队的邮件,要求他更新「2FA」信息,否则其账号权限将会被冻结。在乖乖操作之后,黑客已经劫持了这位维护者的账号,获取了篡改代码的权限!

之后,黑客不断更新开源库的代码,并发布新的版本。根据统计,受到影响的库累计下载量超 26 亿次,可见影响范围之广

直到此时,你在各种 Dapp 前端进行的交易可能已经被恶意程序盯上了,盗窃流程可以简述为:

用户在前端发起一笔交易 -> 恶意程序监控并提前拦截 -> 在发送给钱包签名前替换收款人地址  -> 将篡改过的交易信息提交给钱包并签名 -> 资金发送给黑客控制的钱包。

你可能会觉得当签名发起,核查到发送地址不对时很容易避免这次「低级攻击」,实则你太小瞧黑客了。为了让你「安心」签下这笔交易,黑客会用一种叫做「Levenshtein 距离算法」来选择一个和你地址字段非常相似的地址来替换,以此让你放松警惕。

在维护者账号被盗之后的 8 小时,所有被恶意篡改的 NPM 库已经全部恢复正常,根据 Security Alliance(@_SEAL_Org)的分析报告称,这次事件总共造成了不到 50 美金被盗。但其背后巨额防范成本难以估量。

「运气好就不需要关心?这绝对不是最后一次」

这次极小的损失只得益于运气好,以及各类安全团队、相关开发者的快速响应和配合。这并不意味着我们不需要重视,因为这不是第一次,也绝对不会是最后一次

实际上,上一次 NPM 库供应链攻击仅仅发生不到一年......

在2024 年 12 月 2 日,Solana 的 web3.js 就已经发生了非常类似的事件,同样是开源库维护者账号被盗,同样是植入恶意程序,只不过上次黑客的目标是直接窃取你的私钥,最终黑客在短短5小时内盗取了 16 万美金。

当时我们也进行了详细的分析。(https://x.com/OneKeyCN/status/1864655720303739303

「这一次,我们又学到了什么?」

硬件钱包又一次上大分,再次完美躲过一劫

本次攻击主要是基于浏览器的环境进行作恶。用户在应用前端提交交易申请时,黑客的恶意程序趁虚而入篡改交易信息,让用户对错误信息进行签名而不自知。

而对于硬件钱包来说,就算你在网页端提交交易,所有交易信息都会独立传输到硬件钱包,并由硬件钱包的芯片进行独立模拟解析,并且将所有交易内容解析为「人话」,告诉用户目前交易调用的合约函数、授权金额、授权地址、以及合约名称等信息,实现「所见即所签」,清楚地查看每一个关键信息,确保交易的安全。

供应链攻击防不胜防,开发者防卫习惯是关键

开发者也是人,总有疏忽大意的时候,这次是上游代码投毒,下次可能就是窃取开发日志敏感信息。不管怎样,如果开发者能顺着所有供应链环节,层层做好日常防范措施,还是可以很大程度上避免黑客攻击的发生。

比如这次的权限失控导致的上游代码库被污染,下游开发者可以通过以下几个要点进行防范,避免影响到终端用户:
 - 锁定包版本:使用锁文件冻结依赖版本,防止自动更新,也不会引入未审核代码。
 - 私有注册表:搭建内部镜像仓库,审核并缓存公共依赖库,避免直接暴露外部源。
 - 自动化安全扫描:集成如 Dependabot 这样的安全扫描工具,在快速响应依赖缺陷的同时进行人工复核。

想要了解完整的防范措施,可以查看 Onekey的开源硬核防范指南👇
https://x.com/OneKeyCN/status/1900443506159870078

「如果你是 OneKey 的硬件钱包用户」

如果你是 OneKey 的硬件钱包用户,同时搭配着 OneKey 的 App 使用,那么恭喜你,你在这次黑客攻击事件中不会有任何影响,因为:

  • OneKey 的硬件钱包自带「SignGuard」签名解析系统。交易信息在本地独立验证解析后会清晰地呈现给用户,所有交易内容可以确保真实,如果存在任何可疑 / 错误信息,用户在硬件设备上确认时可以马上察觉。
  • OneKey 的依赖代码管理采用了锁版本的方式,不会更新未被审核的版本。所以此次恶意更新版本未被 OneKey 团队使用。

「End」

这次 NPM 供应链攻击再次提醒我们:安全不是可选项,而是唯一选项。

无数血淋淋的案例已经证明了硬件钱包是加密游乐场的必备单品,选择具有签名解析的硬件钱包更是让你的加密之旅安全感拉满。

使用 OneKey 保护您的加密之旅

View details for OneKey ProOneKey Pro

OneKey Pro

极致真无线,风险全隔绝。 世界顶级隔空签名冷钱包。

View details for OneKey Classic 1SOneKey Classic 1S

OneKey Classic 1S

超薄。口袋大小。银行级安全。

View details for OneKey SifuOneKey Sifu

OneKey Sifu

与 OneKey 专家进行一对一钱包设置。

继续阅读