Node.js和其默认的软件包管理工具Node Package Manager(NPM)在现代Web开发中扮演着至关重要的角色。数以百万计的开发者通过NPM共享和使用代码库,极大提升了开发效率。然而,这一开源生态的开放性也成为攻击者的目标,尤其是在供应链攻击方面。2025年7月中旬,知名安全平台Socket揭露了一场由朝鲜支持的黑客组织发动的供应链攻击活动,该组织通过67个恶意NPM软件包,成功将名为XORIndex的恶意载荷植入开发者系统。该事件再次敲响了针对开源软件安全的警钟。XORIndex的植入发生在背景复杂的“Contagious Interview”行动中,这是一个长期活跃的朝鲜国家支持的网络攻击运动,主要针对开发者,利用虚假的职位邀请诱骗受害者执行恶意代码。
此类攻击不仅意在窃取敏感信息,还瞄准加密货币资产的盗取。Socket的研究表明,仅此次植入的67个恶意软件包累计下载量就超过了17,000次,显示该活动覆盖广泛,潜在影响极其严重。恶意软件包名称巧妙模拟正规软件项目,如vite-meta-plugin、pretty-chalk和postcss-preloader等,易使开发者误以为安装的是可信工具。恶意软件的执行依赖于NPM的‘postinstall’脚本,一旦触发,XORIndex Loader便会在受害者设备上启动。XORIndex Loader的功能主要是收集受害主机的环境数据,并将信息发送到一个利用Vercel云计算平台搭建的硬编码命令与控制(C2)服务器。C2服务器会响应并下发多种JavaScript代码,这些代码通过eval()函数执行,极具隐蔽性和灵活性。
其中最常见的是BeaverTail和InvisibleFerret两款后门程序,这些工具均与朝鲜“Contagious Interview”行动高度相关。BeaverTail和InvisibleFerret可实现远程访问、数据窃取和进一步的恶意载荷下载,使攻击者能够持续控制受感染设备并窃取关键资产。值得注意的是,XORIndex Loader与此前发现的HexEval Loader频繁同时出现,这种组合使用多种加载器的手段,显著提高了攻击的隐蔽性和持久性。朝鲜攻击团队在这些载荷中融合了传统和新兴技术,通过微小的修改规避安全检测,同时不断更换NPM账户和软件包名称,使得每次安全清理后均能卷土重来。安全专家呼吁开发者务必警惕拼写近似(typosquatting)和恶意仿冒软件包。仅依赖知名项目和有信誉的维护者发布的软件包,配合严格的代码审查,才能有效降低风险。
尤其在安装未知或新发布的软件包时,应在隔离环境中进行安全测试,排查潜在的恶意代码或异常行为。尽管Socket已向NPM官方报告了相关恶意软件包,但部分仍可能存在于公共仓库,持续威胁开发生态。此次事件再次强调了开源软件供应链安全的脆弱性以及防护难度。数字化时代,软件依赖关系复杂且庞大,每一个环节的安全漏洞都有可能被攻击者利用。针对这一挑战,除了开发者自身的谨慎外,NPM及其他代码托管平台也在强化安全措施,例如强制双因素认证、多层权限审核以及加强社区举报机制,以期阻断恶意软件包的传播途径。同时,企业和安全团队应部署针对JavaScript生态的行为分析和威胁检测工具,及时发现和响应异常活动。
未来,随着攻击者不断创新技术手段,开发者必须提升安全意识,结合自动化检测与人工代码审查,构筑多层防御体系,保护项目安全。此外,教育培训、开源社区协作和跨界信息共享对于抵御此类供应链攻击也尤为重要。此次北朝鲜黑客集团XORIndex恶意软件的曝光,突显供应链攻击的隐蔽性和危害性。开源生态的繁荣背后需警惕潜藏风险,只有构筑坚实的安全防线,开发者与企业才能在数字化浪潮中立于不败之地。