随着开源项目的广泛普及,供应链攻击逐渐成为网络安全领域日益严峻的挑战。2025年8月26日,著名的开源构建平台NX遭遇了一场针对供应链的复杂攻击事件,引发业界的广泛关注。此次事件不仅导致多个版本的NX相关npm包被植入恶意代码,更导致成千上万的敏感秘密数据被黑客窃取,向技术社区敲响了警钟。 NX作为一种针对大型项目进行代码管理和构建的开源平台,拥有超过四百万的每周下载量。凭借其集成了编辑器和持续集成(CI)功能并优先支持人工智能的定位,NX在开发者群体中拥有广泛的应用基础。然而,正是因为其庞大的用户规模与影响力,使其成为黑客实施供应链攻击的重点目标。
根据NX维护团队的官方声明,攻击者利用了一个被称为s1ngularity的攻击链。黑客通过攻破一名开发者的身份验证令牌(token),成功发布了含有恶意代码的npm包版本。这些恶意版本利用postinstall脚本,在安装时扫描受害者的文件系统,重点搜索包含敏感账号信息的文本文件,并将这些数据经过Base64编码后上传到GitHub上的公开仓库。这些仓库名称统一采用了s1ngularity-repository及其变体,短时间内被发现多达一千多个类似仓库。 此次攻击的核心技术细节十分值得研究。攻击者操作的起点是nx项目中的一种GitHub工作流(workflow)配置,该配置使用了pull_request_target触发器。
该触发器与常规的pull_request不同,其运行时拥有更高权限,包括读取和写入仓库的GITHUB_TOKEN。攻击者巧妙地利用了这一点,构建恶意的pull request以执行任意代码,进而窃取敏感的npm令牌和GitHub令牌。利用这些令牌,攻击者在受信任的NX仓库中成功发布了带有恶意代码的版本,影响范围快速扩大。 除了直接的数据泄露,恶意代码还通过篡改受害者的终端配置文件(如.zshrc和.bashrc)注入了一段极具欺骗性的脚本,该脚本试图通过伪装为系统关机命令"sudo shutdown -h 0"诱导用户输入系统密码。获取密码后,黑客能够进一步掌握受害方机器的控制权,极大加剧了安全风险。 尽管NX维护团队在发现异常后迅速采取行动,包括撤销受影响包版本、重置相关令牌、加强发布流程中的双因素认证,但损害已经产生。
安全研究公司Wiz的分析显示,高达90%的被窃取GitHub令牌仍处于有效状态,部分云服务API密钥同样暴露。令牌的泄露使攻击者能够持续访问并操控受攻击系统,甚至可能导致未来的连锁反应。 更令人担忧的是,该攻击首次将人工智能命令行工具作为辅助攻击手段。安全企业StepSecurity指出,攻击者使用诸如Claude、Google Gemini和Amazon Q等AI工具递归扫描受害设备的文件系统,自动识别并整理敏感路径,显著提升了攻击的自动化和隐蔽性。这种攻击模式标志着网络威胁正在向智能化和自动化方向演进。 攻破发生后,受影响的macOS系统尤为突出,达到了85%的感染比例。
黑客通过NX的Visual Studio Code扩展程序传播恶意软件,借助该环境的流行性和易用性加快感染速度和范围。大量开发者因使用了感染版本的npm包而无意中成为攻击的受害者。 针对这一事件,安全专家提出多项防范建议。首先,开发团队应加强CI/CD流水线中GitHub Actions权限管理,避免使用pull_request_target触发器时赋予过高权限;其次,应定期轮换和审计敏感令牌,及时撤销不再使用的token;再次,开发者要认真检查项目依赖是否存在恶意版本,必要时利用自动化工具进行依赖包安全性扫描。 企业和个人用户也需提高对终端配置文件的警惕,排查并清除任何不明来源的修改内容,避免被植入恶意命令。此外,应加强对云平台和代码托管服务账户的安全防护,启用多因素认证并限制访问权限,以减小安全面攻击面的暴露。
此次NX供应链攻击揭示了开源生态中供应链安全的潜在威胁以及攻击者逐渐采用智能化工具的趋势。随着开放源代码项目的规模不断扩大,更加复杂且自动化的攻击方式将成为常态。开发者、维护者以及企业必须共同提高安全意识,不断完善安全实践,建立从源代码到发布全链条的防护体系。 从此次事件中汲取教训,整个生态系统亟需建立更为严格的软件供应链安全标准和监控机制。社区应加强对关键开源项目维护者的安全培训和身份验证保护,推动安全工具的普及与应用,同时政府和产业界亦应联合行动,共同筑牢数字时代的安全屏障。 综上所述,NX供应链攻击事件不仅暴露了当前开源软件安全中的薄弱环节,更指明了未来安全防护的方向 - - 融合人工智能的安全审查、严格的权限管理和令牌生命周期监控将成为守护开源信任的关键。
唯有如此,才能真正筑造一个既开放又安全的技术生态,为全球软件开发者保驾护航。 。