随着开源软件的普及,NPM作为全球最大的JavaScript包管理平台,承载了数百万开发者的日常开发需求。NX作为一个被广泛使用的工具集和工作区框架,凭借其在大型项目中的强大效能和灵活扩展,赢得了众多开发者和企业的青睐。然而,正因为其巨大影响力,NX在安全层面对攻击者来说也具有极大吸引力。2025年下半年,安全研究机构Aikido Security的自动化情报系统检测到NX的多个包在NPM上被植入恶意代码,引发了软件供应链安全领域的广泛关注。恶意代码不仅导致大量用户密钥、GitHub令牌及其他敏感信息被窃取,更罕见的是其恶意后门行为进一步危害受害者的设备安全,对互联网生态和开发者社区构成严重威胁。此次安全事件的曝光揭示了现代软件包管理系统在面对复杂威胁环境中所面临的脆弱性,同时也引出了开发者需加强安全意识和技术防护的紧迫性。
恶意代码的核心是在某些受害NX包中植入了名为telemetry.js的脚本文件,其被自动调用以执行postinstall安装后脚本。该脚本意图明显,几乎没有隐藏其攻击目的。它主要通过遍历用户系统中的关键目录,例如用户主目录中的配置、存储和加密钱包相关文件夹,搜寻符合特定命名模式的敏感文件,如加密货币钱包密钥文件、SSH密钥、环境变量文件(.env)等。通过这种方式,攻击者能系统性地收集大量关键信息。 更加危险的是,脚本会读取开发者本地的GitHub CLI令牌、npm用户信息以及本地配置文件(.npmrc),这些文件往往包含用于身份验证或访问权限的令牌和密钥。一旦获得这些令牌,攻击者能够以受害者身份绕过认证系统,进行进一步的供应链攻击,甚至创建恶意仓库来公开上传窃取的数据,直接暴露给全球互联网用户。
此外,恶意代码还在受害者的shell配置文件(如.bashrc和.zshrc)中追加了一条极具破坏性的命令 - - "sudo shutdown -h 0",使得每次用户重新登录时系统即被自动关闭。这种操作明显意在制造混乱并增加应急响应难度,促使安全事件尽快被发现并限制恶意活动的进一步扩散,但也间接影响了用户的正常工作。 此次攻击的一大创新点是,恶意脚本还检查系统中是否安装了某些人工智能语言模型客户端(如claude、gemini和q等),并尝试利用这些工具根据预设提示词递归地从系统中提取更多敏感数据。这是首次在供应链攻击中见到利用大语言模型(LLM)作为辅助工具进行信息侦察的案例,反映出攻击者手法正与人工智能技术紧密结合,手段愈发复杂和隐蔽。 经过Aikido和NX安全团队的调查确认,受到影响的NX包主要包括nx、@nx/workspace、@nx/js、@nx/key、@nx/node、@nx/enterprise-cloud、@nx/eslint以及@nx/devkit等多个主流库,其受污染的版本涉及20.9.0至21.8.0以及3.2.0版本。由于这些版本在NPM上每周拥有数百万的下载量,影响范围广泛且波及众多开发者和企业项目。
攻击行为异常恶劣,令牌及敏感数据被上传到攻击者通过窃取令牌创建的公开GitHub仓库,仓库名称通常为s1ngularity-repository或带有数字后缀的变种。安全团队及时通报GitHub进行关闭处理,但由于数据的公开性质,泄密问题已无法完全挽回,将长期影响相关用户及其项目的安全环境。 面对如此严重的安全事件,开发者应立刻检查是否存在被创建的恶意仓库,及时删除以阻断攻击链传递。同时必须尽快更换所有可能泄露的令牌与密钥,包括GitHub访问令牌、NPM认证信息以及本地环境变量中存储的所有秘密数据。进一步,清理本地shell配置文件以移除可能存在的破坏性命令对于保证设备稳定运行至关重要。 从此次事件可以看出,开源软件包的供应链安全已经不仅仅局限于单一模块的漏洞修补,更需整体分析代码的执行行为和环境影响。
攻击者利用postinstall生命周期钩子表达恶意意图的做法提示我们,对软件包的信任机制应该更加严格,且持续监控异常行为与非预期网络访问至关重要。 与此同时,开发团队和安全专家应重视自动化安全扫描技术的部署,使用先进的静态应用安全测试(SAST)、软件成分分析(SCA)等工具,提前识别可能嵌入恶意代码的低质依赖库。此外,加强安全培训和意识建设,鼓励开发者审视每一个引入的第三方依赖,理解其内部实现,建立有效的快速响应与事件处置机制,这些都是未来抵御供应链攻击的必然选择。 也值得关注的是攻击者借助人工智能技术进行的辅助信息收集手段,将成为未来威胁场景的重要组成部分。这一趋势促使安全防护策略不得不与AI技术同步提升,通过智能威胁检测、行为分析及异常流量识别来阻断恶意利用。同时开发出针对LLM相关威胁的安全框架和防御机制,将成为安全领域的新兴研究热点。
总的来看,此次NX包的安全事件不仅暴露出当前NPM生态在包质量审核与权限管理方面的漏洞,也体现出软件供应链攻击手法的快速演化和恶意技术的增强复杂度。只有通过社区合作、技术创新与政策规范的多重发力,才能构建更加安全、可靠的开源生态环境,保障广大开发者和用户免受类似攻击。 未来,除了加强包本身的安全性,开发者和企业还应建立跨平台的安全监控与事件响应体系,同时推动行业内的信息共享与威胁情报交流,借助云时代的数据优势防范新型攻击。大家只有同心协力,方能共筑开源世界安全基石,让创新成果在安全的环境下持续造福全球。 。