随着开源软件生态的蓬勃发展,NPM(Node Package Manager)作为全球最流行的JavaScript包管理平台,其安全性愈发成为业内关注的焦点。近日,一场针对Gluestack旗下热门NPM软件包的供应链攻击引起了安全界的强烈震动。这些涉及‘@react-native-aria’系列的包单周下载量超过96万次,恶意代码则伪装隐匿于关键文件中,具备远程访问能力,令依赖这些包的数以万计开发项目蒙受潜在风险。此次事件揭示了依赖链攻击的复杂性以及维护开源项目安全所面临的挑战。攻击起因起初源于2025年6月6日下午4点33分(美国东部时间),当事人通过向‘@react-native-aria/focus’包发布恶意版本开启了此次入侵。随后不到48小时内,Gluestack旗下20个相关包中的17个陆续被篡改,植入了异乎寻常的隐匿远程访问木马代码。
安全公司Aikido Security第一时间探测到了注入于‘lib/index.js’文件末尾的这段重度混淆代码。该恶意代码并未直接暴露,而是通过填充大量空格隐藏其踪迹,极大增加了人工与自动检测的难度。更令人忧虑的是,该远程访问木马具备命令与控制功能,攻击者可以远程执行各种系统命令,包括目录操作、文件上传甚至后台停止上传进程等核心控制指令。通过这些能力,攻击者能够在被控设备上实现几乎完全的操控权。除远控功能外,恶意代码还利用Windows环境变量路径劫持技术,将假冒Python路径优先插入PATH变量中,从而劫持常用命令如python和pip,使得恶意二进制文件得以被隐蔽执行。这种技术加剧了安全防护的复杂度与应急响应难度。
此次供应链攻击的影响范围颇广,涉及诸如‘@react-native-aria/button’、‘@react-native-aria/checkbox’、‘@react-native-aria/interactions’和‘@react-native-aria/utils’等使用频率极高的软件包。综合统计显示库下载量已突破百万次每周,这不仅会影响个人开发者,更可能波及众多企业级项目和产品。安全研究人员与社区成员对Gluestack项目维护团队进行了多次联系尝试,包括在GitHub上提交问题报告等,但响应暂时迟缓。开发团队后来确认已撤销用于发布受感染版本的访问令牌,且受影响版本已在NPM官方上被标记过时(deprecated)。遗憾的是,由于存在依赖关系,删除受感染的版本存在一定障碍,目前团队采取的措施是将最新标签指向更安全的历史版本,作为应急补救。令人关注的是,安全公司Aikido Security还指出,这次事件疑似同一攻击组织所为,该组织近几周内已多次针对其他NPM软件包发动类似攻击,反映出黑客组织针对开源包管理平台的持续高强度攻势。
作为开发者和安全从业者,学会识别和防范此类供应链攻击显得尤为重要。首先,依赖的第三方包应优先选择拥有良好维护记录和快速响应安全事件的项目。其次,借助自动化工具对引入代码持续进行安全扫描和行为分析,避免恶意代码潜伏。加强对NPM包版本的审查,避免盲目升级未经充分测试的新版本。持续关注官方安全通告和社区反馈,可以第一时间掌握风险动态并做出相应调整。此外,针对PATH劫持等技术,可强化运行环境的白名单策略,限制不明路径程序执行,及时排查异常进程及网络访问行为。
此次事件也再次敲响了供应链安全警钟,说明开源生态的安全性需要依赖开发者、维护者、包平台与安全厂商多方协作。NPM官方和相关组织应该加强包发布流程的安全验证措施,引入多因子认证、异常行为检测等机制,减少包被恶意篡改风险。开发者则需持续提升安全意识,结合静态与动态检测工具,及时发现潜在威胁,保护应用与用户数据安全。总结来看,Gluestack NPM软件包供应链攻击不仅暴露了当前开源包安全审查中的薄弱环节,更凸显了攻击者利用供应链隐蔽入口的高超策略。只有通过产业链上下游紧密配合、采用先进的安全防护手段,才能有效降低此类威胁的发生频率与破坏程度。面对瞬息万变的网络安全环境,堤防未然永远是最佳法宝。
未来,NPM及其庞大的开源社区将持续开展深入的安全改进和防护创新,以确保广大开发者的项目基础稳固、生态环境健康,从而推动整个互联网应用领域的可持续发展。