面向 AI 辅助开发的新供应链警告
Mozilla 的生成式 AI 漏洞赏金平台 0DIN 的安全研究人员描述了一条攻击路径,它会把一个外观看起来正常的 GitHub 仓库变成一个针对使用 AI 编码代理的开发者的机器入侵陷阱。核心问题并不是模型本身存在某个炫目的漏洞,而是间接提示注入、自动化设置行为,以及一个能够在运行时执行所获取代码的仓库工作流三者的结合。
研究人员表示,攻击者可以发布一个仓库,该仓库在开发者浏览招聘信息、教程或协作链接时看起来都很普通。一旦使用 Claude Code 之类的 AI 编码工具打开该仓库,攻击就可以在设置阶段开始。恶意逻辑经过设计,使危险载荷不会直接存放在仓库中,这意味着常规代码审查和许多扫描工具可能无法提前看到决定性步骤。
这一细节使该发现尤为重要。开发者多年来一直在学习检查仓库中是否存在可疑脚本、硬编码载荷或明显篡改痕迹。在这种情况下,研究人员称仓库表面上可以保持干净,同时仍在需要时从仓库外部拉取由攻击者控制的指令。
攻击如何运作
据报道,这种方法依赖于仓库中的一个设置脚本。在执行过程中,该脚本会从 DNS 记录中获取一条命令,然后运行它。由于命令是动态获取的,最具破坏性的代码无需存在于仓库本身。研究人员称,这使得扫描器、人工审查者,甚至帮助进行设置过程的 AI 代理都更难检测到攻击。
The Decoder 对 0DIN 研究的总结指出,编码代理遇到一个看似常规的设置错误,随后通过运行脚本作出响应,然后向攻击者打开一个反向 Shell。从那里,攻击者可以从一次性执行升级为对机器的完全控制。报道中的后果包括获取 API 密钥、登录凭据,以及建立持久访问的立足点。
这意味着开发者需要以不同方式看待 AI 赋能工具带来的风险。传统的软件供应链攻击往往依赖被投毒的依赖项、遭入侵的软件包注册账户,或者构建脚本中隐藏的恶意安装步骤。这里,研究人员描述的是一种工作流,其中开发者的信任由一个本应帮助自动化设置和排错的代理来中介。如果代理把第三方设置说明当作例行操作,它就可能成为加速入侵的机制。
为什么 AI 编码工具会改变风险画像
AI 编码助手的设计目标是减少摩擦。它们会检查代码库、推断项目结构,并帮助用户更快完成安装、调试和环境配置。正是这种便利性,在攻击者理解工具如何处理脚本和设置错误时,会扩大攻击影响范围。
在传统的手动流程中,开发者可能会在运行陌生的设置命令前停下来,检查脚本,或者质疑为什么一个项目在安装期间需要网络访问。自动化助手则可能把同样的序列解释为正常的修复步骤。如果这种行为没有配合强有力的防护、说明和明确的审批门槛,速度优势就会变成安全负担。
研究人员的描述还指出了一个可见性问题。如果危险指令是在运行时通过 DNS 解析出来的,防御者可能不会在他们审查的仓库快照中找到可疑的二进制文件或 Shell 载荷。这削弱了开发者依赖的多种习惯:阅读设置文件、审查拉取请求,以及在执行前扫描仓库。
结果是一种更具欺骗性的威胁模型。一个仓库在静态状态下看起来无害,但在执行时可能表现不同,尤其当 AI 助手被授权代表用户采取行动时更是如此。
研究人员的建议
研究人员提出的直接修复措施很简单:AI 代理在运行设置脚本之前,应先展示脚本内容。这并不能解决问题的所有变体,但它会在许多用户目前仍视为模板化内容的开发阶段中,强制加入一个可见性检查点。展示脚本内容有助于用户发现意外的网络调用、动态命令获取,或超出设置既定目的的命令。
第二条建议更为根本。开发者应将第三方仓库中的设置说明视为不受信任的代码。这一原则并不新鲜,但研究表明,它现在必须以与未知 Shell 脚本和未签名二进制文件相同的严格程度,应用到代理辅助工作流中。
对于采用 AI 编码工具的团队来说,更广泛的启示在于治理。能够检查仓库、解释说明并执行命令的工具,需要与其权限相匹配的控制措施。这包括清晰预览将要运行的内容、受限权限,以及关于代理何时可以自动行动、何时必须停止接受审查的政策。
0DIN 的发现并不是说 AI 编码助手天生不安全。它确实表明,自动化层改变了信任决策发生的位置。如果这些决策被隐藏在代理的排障流程中,开发者可能会授予比自己意识到的更多执行权限。
一项可能超出单一工具的警示
尽管报告点名了 Claude Code,但其底层模式远不止一个产品。任何能够读取仓库说明、响应设置失败并执行本地命令的 AI 编码系统,都可能因对抗性仓库而面临类似压力。随着这些工具在企业工程、研究实验室和开源工作中变得普遍,微小的工作流假设也可能演变为重大的安全依赖。
实际含义很简单:仓库不再只是需要阅读的代码。在代理式开发环境中,它们也可以是提示表面和执行触发器。这意味着仓库信任、设置透明度和代理权限现在是紧密相连的问题。
对于开发者和安全团队来说,这一发现提醒人们,AI 辅助设置的便利不应与安全混为一谈。如果仓库来自未知来源,那么每一个设置动作都仍然是一个安全决策,无论是人还是 AI 代理点击运行。
本文基于 The Decoder 的报道。阅读原文。
Originally published on the-decoder.com

