随着开源软件在全球范围内的广泛使用,NPM作为JavaScript生态中最大的包管理平台,承担着数以亿计开发者的信任和依赖。然而,2025年9月发生的一次大规模供应链攻击事件却点燃了行业的警钟。黑客通过钓鱼手段成功获取了某些关键维护者的账户权限,随后向其维护的核心NPM软件包注入恶意代码,波及周下载量累计高达26亿次的软件包,影响范围极为广泛。此次攻击的背后,不仅展示了黑客技术的不断进化,也反映了开源软件供应链安全面临的新挑战。攻击者利用冒充官方的钓鱼邮件,以更新两步验证信息为由诱骗维护者点击恶意链接。相关钓鱼网站极具迷惑性,模仿了npm官方真实域名的样式和内容,进一步提高了成功率。
此次攻击目标的维护者Josh Junon公开确认其账户被劫持,揭示了攻击的详细操作细节。值得注意的是,在黑客成功获得维护者权限后,他们不仅发布了恶意代码,还设计了针对性极强的浏览器端恶意拦截功能。该恶意代码主要嵌入在index.js文件中,能在用户浏览器中监控并劫持以太坊、比特币、Solana、Tron等主流加密货币的交易行为。通过篡改钱包地址和拦截网络请求,黑客能在用户签署交易前将资金导向自己的控制账户,造成资金盗窃。该恶意代码通过HOOK常见的JavaScript网络请求方法如fetch、XMLHttpRequest,以及钱包API(例如window.ethereum)实现对用户交易的无声劫持。攻击技术隐蔽,用户几乎无法察觉资金流向已被篡改。
这一攻击事件被安全公司Aikido Security详细分析,指出此次供应链攻击的复杂性和多层次攻击面。攻击不仅改变网页显示的内容,还干扰应用程序与区块链钱包的交互接口,完美融合了前端劫持技术和网络流量篡改。此次被感染的软件包中涵盖了众多热门NPM库,如debug包每周下载量高达3.57亿次,ansi-styles、chalk、strip-ansi等包的下载量也均在数亿级别。如此庞大的下载量使得被注入恶意代码的影响力呈指数级扩散。此外,此类攻击事件虽属供应链攻击,但具体受影响的开发者和项目仍需满足一定条件,如安装时间窗口处于攻击发生时段且依赖受到污染的包版本,并且包管理锁文件中包含相应依赖才能触发风险。因此,尽管影响面广,但实际被恶意代码感染的应用数量相对有限。
值得一提的是,在攻击被及时发现后,NPM官方迅速下架并清理了多款恶意版本的软件包。在过去数月中,类似针对JavaScript生态的攻击频繁出现,例如7月击中了eslint-config-prettier等拥有上千万周下载量的包,3月时则多款库被植入信息窃取恶意代码。由此可见,攻击者已将开源软件包作为主要目标,利用其广泛依赖关系发动大规模供应链攻击。此次事件突出强调了开源生态系统中维护者账户安全的重要性。GitHub、NPM等平台纷纷呼吁开发者强化多因素认证,谨防钓鱼攻击。对于企业和开发者来说,应当严格审查引入的第三方依赖,并尽量锁定依赖版本,避免在不确定安全性的情况下随意升级。
此外,业内专家建议通过持续监控依赖库的安全报告和漏洞公告,及时更新补丁、防范潜在风险。借助自动化安全工具进行代码审计和依赖扫描,也是提升防护能力的关键措施。面对日益严峻的威胁环境,整个开发者社区需加强合作,构筑更完善的供应链安全防线。此次NPM供应链攻击还再次印证了现代浏览器作为攻击面日益扩大的一面镜子。黑客通过注入浏览器端脚本,绕过传统服务器端安全防护,直接对终端用户交易进行篡改。浏览器安全本身成为网络安全的新战场。
相关安全会议和专业研讨会也在今年不断提及浏览器安全隐患及防护策略,提醒开发人员和终端用户提高警觉。此次事件虽被评估为整体影响程度有限,但其潜在风险和示范意义不可低估。供应链攻击的破坏力及高扩散性要求IT行业和安全社区携手加固技术壁垒,强化安全意识与实操培训。未来,NPM及其他开源包管理平台或将逐步引入更强的身份验证机制、包签名、行为检测等安全措施,构建更健康安全的生态环境。总之,黑客通过供应链攻击劫持拥有数十亿下载量的NPM包,不仅突显了开源软件安全的脆弱性,也为行业敲响警钟。开发者社区、企业安全团队及平台运营方应共同推进安全机制升级,采用前瞻性思维应对复杂多变的网络威胁,保障软件供应链的可靠与安全。
。