首次AI CLI代理黑客攻击:NX构建系统供应链攻击事件深度分析
事件概述:NX构建系统遭受精密供应链攻击
2025年8月26日UTC时间22:32,流行的Nx构建系统软件包在npm注册表上发布了一个恶意版本,标志着供应链攻击史上的一个重大转折点。这次攻击不同于以往的软件供应链攻击,因为它首次记录了恶意软件利用AI命令行工具(CLI)进行侦察和数据窃取的案例,使开发者的AI助手变成了攻击的帮凶。
Nx是一个极其流行的构建系统,每周下载量超过400万次,在npm上的月下载量甚至达到2.44亿次,这意味着潜在影响范围极其广泛。攻击者在短短几个小时内发布了8个恶意版本,分布在两个主要版本分支中(20.x和21.x),这些恶意版本在网络上存活了约5小时20分钟后才被下架,但在这段时间内已经影响了成千上万的开发者。
攻击者采用了多向量复合攻击策略,结合了传统供应链攻击技术和新颖的AI工具滥用方法。攻击不仅窃取SSH密钥、npm令牌和.gitconfig文件,还创新性地武器化了开发者常用的AI命令行工具(包括Claude、Gemini和q),将这些本应提高生产力的工具转变为攻击者的侦查和数据外传工具。
时间 (UTC) | 事件描述 | 阶段 |
---|---|---|
2025-08-26 22:32 | 首个恶意版本 (21.5.0) 发布 | 🔥 攻击阶段 |
2025-08-26 22:39 | 第二个恶意版本 (20.9.0) 发布 | 🔥 攻击阶段 |
2025-08-26 23:54 | 同时发布两个版本 (20.10.0 & 21.6.0) | 🔥 攻击阶段 |
2025-08-27 00:16 | 发布恶意版本 (20.11.0) | 🔥 攻击阶段 |
2025-08-27 00:17 | 发布恶意版本 (21.7.0) | 🔥 攻击阶段 |
2025-08-27 00:37 | 最后两个恶意版本发布 (21.8.0 & 20.12.0) | 🔥 攻击阶段 |
2025-08-27 02:44 | npm 官方下架恶意包 | 🛡️ 响应阶段 |
2025-08-27 03:52 | 维护者账号权限吊销 | 🛡️ 响应阶段 |
这次事件突显了AI集成开发环境中的新型安全风险,攻击者不再仅仅依赖传统的恶意代码注入,而是能够利用环境中已有的AI工具作为攻击链条的一部分。安全专家指出,鉴于Nx生态系统的流行度以及AI工具滥用的创新性,该事件展示了供应链攻击复杂性不断演进的特点。
攻击技术深度分析
攻击流程与技术细节
本次攻击展示了高度复杂的多阶段攻击策略,结合了传统的凭据窃取和新颖的AI工具滥用技术。攻击始于攻击者获取了Nx维护者的npm账号令牌,从而获得了发布权限。攻击者随后在合法的Nx包中植入了恶意的post-install钩子,该钩子在软件包安装后自动执行一个名为telemetry.js
的脚本。
恶意脚本的功能极其全面且具有破坏性。它首先系统化地收集受害机器上的敏感信息,包括系统信息(环境变量、主机名、操作系统细节)、加密货币钱包(MetaMask密钥库、Electrum钱包、Ledger与Trezor硬件钱包数据、Exodus、Phantom和Solflare钱包)以及通用的密钥文件。收集到信息后,恶意程序执行一套隐蔽又高效的外传步骤:
- 使用窃取的GitHub令牌,自动创建一个名为
s1ngularity-repository
的公共GitHub仓库(部分变体会在名字后加数字后缀) - 将所有收集到的数据进行三次Base64编码(triple-base64 encode)
- 把编码结果写入名为
results.b64
的文件,并上传到新建仓库 - 将仓库设为公开状态,使敏感数据间接暴露在互联网上
AI工具的攻击性滥用
本次攻击最令人担忧的创新是恶意软件对本地安装的生成式AI CLI工具的滥用。攻击代码强制AI工具(如Claude、Gemini和q)递归检查文件系统,并将发现的敏感文件路径写入/tmp/inventory.txt
文件中。这种技术使合法的AI工具成为了攻击的"帮凶",这是有史以来恶意软件胁迫AI助手CLI协助侦查的首个案例。
攻击者通过使用--dangerously-skip-permissions
和--trust-all-tools
等参数执行命令,绕过传统安全边界,迫使AI助手执行本不应允许的操作。这种技术展示了攻击者如何利用AI工具的设计特性来实现恶意目的,而不是利用工具本身的漏洞。
破坏性载荷与持久化机制
除了数据窃取外,恶意软件还包含了破坏性功能。在~/.bashrc
和~/.zshrc
文件末尾,恶意程序会添加命令:sudo shutdown -h 0
,这导致每次用户新开一个终端,系统就会尝试立即关机。这种行为造成了拒绝服务(DoS)效果,严重破坏了开发者的工作环境。
安全研究人员指出,攻击者在人们的shell中增加关机命令可能加速了问题的发现,从而减轻了整体影响。然而,攻击者公开发布所有被盗数据的决定非常令人担忧,因为这会导致更多的GitHub和npm令牌落入恶意威胁人员手中,可能催生更多类似攻击。
发布时间(UTC) | 版本号 | 影响范围 |
---|---|---|
2025-08-26 22:32 | 21.5.0 | 首个恶意版本 |
2025-08-26 22:39 | 20.9.0 | 第二个恶意版本 |
2025-08-26 23:54 | 20.10.0 和 21.6.0 | 同时发布两个带毒版本 |
2025-08-27 00:16 | 20.11.0 | 第四个恶意版本 |
2025-08-27 00:17 | 21.7.0 | 仅一分钟后发布 |
2025-08-27 00:37 | 21.8.0 和 20.12.0 | 最后两个恶意版本 |
AI工具被滥用的新颖性与重要性
首例AI辅助的供应链攻击
此次NX攻击事件代表了安全威胁演变的一个转折点,它是历史上首个恶意软件胁迫AI助手CLI协助侦查的案例。这种新技术标志着攻击策略的显著进化,攻击者不再仅仅依赖传统的恶意代码注入,而是利用环境中已有的AI工具作为攻击链条的一部分。
AI命令行工具原本设计用于提高开发者生产力,帮助完成代码生成、系统调试和自动化任务等操作。然而,攻击者巧妙地将这些工具重新用途化为攻击工具,利用其强大的文件系统访问和自然语言处理能力来识别和提取敏感数据。这种滥用模式之所以可能,是因为这些AI工具通常被授予了广泛的系统权限,以便更好地辅助开发工作。
AI工具滥用技术细节
在本次攻击中,恶意软件通过特殊参数执行AI CLI命令,迫使AI工具递归遍历文件系统,寻找敏感文件和凭证。具体来说,攻击代码使用--dangerously-skip-permissions
和--trust-all-tools
等参数,这些参数本应在开发或调试场景中使用,却在此次攻击中被恶意利用。
AI工具被指令将发现的敏感文件路径写入/tmp/inventory.txt
文件中,随后攻击者可以使用这些信息来定位和窃取高价值数据。这种方法之所以危险,是因为它合法工具执行恶意任务,使得许多传统安全解决方案难以检测和阻止这种异常行为。
与传统攻击方法的对比
与传统的恶意软件攻击相比,这种新型AI辅助攻击具有几个显著优势:
- 绕过检测机制:由于使用合法的AI工具执行恶意操作,这种攻击可以避开基于签名和行为分析的安全解决方案
- 动态适应能力:AI工具可以根据环境调整其行为,比静态恶意代码更加灵活
- 最小足迹:攻击者不需要部署大量恶意代码,只需引导现有AI工具执行恶意任务即可
- 难以归因:由于使用合法工具,攻击来源更难追踪
特征 | 传统攻击 | AI辅助攻击 |
---|---|---|
检测难度 | 相对容易,基于签名和行为模式 | 困难,使用合法工具 |
攻击载荷 | 需要分发大量恶意代码 | 最小代码足迹 |
适应性 | 静态,依赖预定义逻辑 | 动态,AI可适应环境 |
数据提取 | 预定义模式 | 智能识别敏感数据 |
安全漏洞与供应链风险
npm生态系统中的安全漏洞
本次攻击暴露了npm生态系统中的深层脆弱性。尽管维护者账号启用了双因素认证机制,但攻击者仍然通过某种方式获取了发布令牌。这表明即使采用了强认证措施,npm生态系统仍然存在单点故障风险。
npm包管理系统的一个关键问题是过度依赖令牌作为发布机制。一旦攻击者获得有效令牌,他们就可以发布恶意版本,而无需绕过双因素认证等其他安全措施。此外,npm的命名规则和版本管理机制使得恶意包很容易被误认为是合法更新,特别是当攻击者同时针对多个主要版本分支时。
供应链攻击的复杂性
此次攻击展示了现代软件供应链攻击的高度复杂性。攻击者不仅需要技术能力来创建恶意载荷,还需要对开发工具和流程有深入理解,以确保持久性和隐蔽性。供应链攻击特别危险,因为它们利用信任关系——开发者信任广泛使用的软件包不会恶意行为。
在NX攻击中,攻击者巧妙地选择了post-install钩子作为攻击向量,这是因为这些钩子在包安装后自动运行,是npm生态系统的标准功能,不会引起怀疑。此外,攻击者针对Linux和macOS系统,避开了Windows平台,这可能是因为这些系统在开发环境中更常见,或者因为攻击载荷与Unix系系统更兼容。
响应与缓解措施
针对此次攻击,nx团队已经发布了官方安全通告(编号GHSA-cxm3-wv7p-598c),确认了这次入侵,并披露了更多细节。npm官方在UTC时间02:44采取行动,移除了所有受影响版本,nx组织所有者也在03:52吊销了被盗的维护者账号,阻止了进一步的恶意发布。
安全专家建议受影响用户立即采取以下补救措施:
- 检查使用的NX版本,如果使用20.9.0至21.8.0版本,可能已遭入侵
- 清除恶意代码:删除node_modules、清空npm缓存、更新package-lock.json
- 检查shell配置:从.bashrc和.zshrc中移除任何关机命令
- 审计账户:搜索未经授权的GitHub仓库、审查日志并撤销令牌
- 立即轮换所有凭证:包括GitHub令牌、npm凭证、SSH密钥、API密钥和加密货币钱包
事件响应与缓解措施
官方与社区反应
NX攻击事件爆发后,多方响应迅速展开。nx团队发布了官方安全通告(编号GHSA-cxm3-ww7p-598c),确认了入侵事件并提供了详细的技术细节。npm官方在接到通知后不到一小时的时间内移除了所有受影响版本,显示了供应链攻击响应机制的效率。
GitHub也采取了行动,限制了被窃取机密信息的仓库,将其设为私有并从搜索结果中移除,以减少进一步的数据泄露风险。然而,数据显示已经有超过1000个合法的GitHub令牌被泄露,约2万个文件被盗和遭泄露,以及数十个有效的云凭据和npm令牌被盗,这表明实际影响已经相当广泛。
安全研究人员强调,立即修复对于安装这些受陷版本的任何人而言都至关重要。StepSecurity公司的联合创始人Sshish Kurmi指出:"鉴于Nx生态系统的热门度以及AI工具滥用的创新性,该事件凸显了供应链攻击的复杂性不断演进"。
受影响用户的修复指南
对于可能受影响的用户,安全专家提供了详细的自查指南和修复步骤。用户应检查以下迹象:
- 被修改的文件(~/.bashrc、~/.zshrc)中包含sudo shutdown -h 0命令
- 新创建的文件(/tmp/inventory.txt、/tmp/inventory.txt.bak)
- 向api.github.com发出的外联请求创建名为s1ngularity-repository的仓库
- 未经授权的GitHub仓库中存在results.b64文件
应急响应措施应包括:
- 立即隔离受影响系统,防止进一步数据泄露
- 全面扫描系统中是否存在恶意脚本或后门
- 轮换所有凭据,包括GitHub令牌、npm凭证、SSH密钥、API密钥和加密货币钱包
- 审查账户活动,查找未经授权的访问或操作
- 更新安全策略,限制AI工具的权限和访问范围
长期防护建议
针对此类新型攻击,安全专家提出了长期防护建议:
- 最小权限原则:不要给AI代理授予超过必要权限的访问权,避免授予完整系统或云权限
- 严格审查第三方代码:不要仅依赖自动化,手动审查所有pull请求,特别是涉及提示逻辑或代理行为的请求
- 监控AI代理行为:设置可观察性措施围绕AI行动,使用日志记录跟踪提示、文件更改和命令执行
- 沙箱化危险能力:在允许与真实系统交互前,在隔离环境中运行潜在危险的提示或功能
行业影响与未来挑战
对开发者生态系统的影响
NX攻击事件对开发者社区产生了深远影响。作为每周下载量超过400万次的流行构建系统,Nx被广泛应用于现代Web开发流程中。此次攻击不仅导致数千名开发者的敏感数据被盗,还严重破坏了他们对开源生态系统的信任。
攻击者创新性地滥用AI命令行工具的行为,标志着攻击策略的显著演变。安全研究人员警告,这可能只是攻击潮的第一步,后续可能会有更多类似攻击,这是真实存在的风险。Aikido公司的恶意软件研究人员指出,NX供应链攻击是看到的首个案例,它可能有助于我们了解攻击者未来如何调整攻击策略。
AI安全的新挑战
此次事件凸显了AI集成环境中新型安全挑战。随着AI编码助手变得越来越强大和普及,它们被授予的权限也越来越广泛,这在不知不觉中创造了新的攻击面。AI工具通常需要访问文件系统、网络资源和各种API才能有效工作,但这些权限也可能被攻击者利用。
提示注入攻击作为一种新型攻击向量,尤其令人担忧。在Amazon Q事件中(2025年7月),攻击者通过精心构造的提示词成功注入了恶意指令,几乎导致大规模破坏。虽然那次攻击因格式错误未能完全执行,但它揭示了提示注入作为攻击向量的潜力。
未来防御策略展望
面对这些新型威胁,安全范式需要根本性转变。传统网络安全专注于防止未经授权的访问,但AI代理攻击涉及滥用已授权的访问权限。这意味着需要新的安全方法和工具来应对这些挑战。
未来防御策略可能包括:
- AI行为监控:开发专门用于检测AI工具异常行为的监控系统
- 提示词验证:实施提示词安全检查机制,防止恶意指令注入
- 权限细分:为AI工具提供更细粒度的权限控制,而不是全有或全无的访问权
- 安全培训:教育开发者了解AI集成的风险和安全最佳实践
安全领域 | 当前状态 | 未来建议 |
---|---|---|
权限管理 | 粗粒度,全有或全无 | 细粒度,基于最小权限原则 |
行为监控 | 有限或不存在 | 专门AI行为监控系统 |
提示词安全 | 基本验证 | 高级提示词检查和过滤 |
开发教育 | 基本安全意识 | 专门AI安全培训课程 |
总结
NX构建系统攻击事件标志着网络安全新纪元的到来,它是历史上首次有记录的恶意软件利用AI CLI工具进行侦察和数据窃取的案例。这次事件不仅展示了攻击者如何不断创新地结合多种攻击向量(利用传统CI配置漏洞、发布恶意npm包、滥用AI代理),还突显了AI集成开发环境中的新型安全风险。
随着AI工具变得更加普及和强大,我们必须重新思考安全模型和实践。AI代理不是传统软件,它们解释自然语言指令并采取行动的能力既是一种力量,也是一种弱点——当这些指令来自恶意攻击者时。未来的安全解决方案需要专门设计用于应对这些新挑战,包括更好的权限控制、AI行为监控和提示词验证机制。