TL博士
ENISE 2026 教会了我们哪些关于人工智能编码代理安全性的知识
人工智能已经可以帮你编写代码了。至于哪些代码最终会投入生产,仍然由你来决定。
- 一句话就足够了: GitHub 问题标题中隐藏的一个提示引导 AI 分诊代理启动了一系列最终导致……的流程。 未经授权发布克莱恩一款拥有超过五百万用户的编码助手。
- 没有涉及CVE事件: 该攻击利用了五个缺失的控制项,而不是典型的漏洞,因此传统的扫描器无法发出任何警报。
- 瓶颈位置已转移: 人工智能可以快速编写代码并发现漏洞。现在的难点在于如何安全地集成代码并验证哪些发现是真实的。
- 编码代理是您供应链的一部分: 攻击者会攻击任何编写代码的东西:捏造的包名、被污染的依赖项,甚至是开发人员笔记本电脑上的 AI 助手。
第一步: 回答四个问题。哪些代理商参与了您的开发项目?他们能带来什么?您的 pipelines 可以执行,以及您可以实际验证哪些发现。
在莱昂举行的 ENISE 2026 大会上,我们的首席执行官 Jesús Cuadrado 没有摆出一连串统计数据,而是用一个故事作为他关于人工智能编码代理安全性的演讲开场白。以下是他向与会者讲述的内容,以及他留下的四个问题。 CISO 与。
一句话就足够了
今年早些时候,一位安全研究人员证明,无需利用漏洞、零日漏洞或窃取的密码,就可以发布一个被数百万开发者使用的编码助手的伪造版本。而这一切只需要在 GitHub 问题标题中写上一句话即可。
该工具名为 Cline,是一款流行的开源代码助手。与如今许多项目一样,Cline 团队利用人工智能实现了部分工作的自动化:一个代理程序会读取 GitHub 上每个新提交的问题,对其进行分类并回复。为了完成这项工作,该代理程序拥有终端访问权限,并且可以处理互联网上任何人提交的问题。研究员 Adnan Khan 将这种攻击链命名为“Clinejection”,而 Simon Willison 也对此进行了研究。 对工作原理进行清晰的总结。
链条断裂处共有五处:
- 外部文本变成了指令。 问题标题直接显示在代理的提示符中,因此安装工具的请求看起来像一条命令。
- 该特工拥有了过大的权力。 它原本是用来处理紧急问题的,但它也能运行命令,所以就运行了命令。
- 分诊和发布共享缓存。 已安装的工具污染了 CI 缓存,发布工作流程也受到了影响。
- 发布版本使用了长期有效的令牌。 缓存被破坏后,npm 发布令牌就唾手可得了。
- 未经任何人批准发布。 没有任何程序需要在发货前进行版本验证。
几周后,有人真正利用了这个漏洞,发布了未经授权的版本 cline@2.3.0。该版本在线停留了大约八个小时,被安装了约四千次。这一次,有效载荷只安装了另一个人工智能代理。它也可能是一个窃取凭证的程序或勒索软件。
注意一下缺少了什么:没有 SQL 注入漏洞,没有 CVE 漏洞,没有任何传统扫描器会检测到的漏洞。那么,是谁决定发布这个版本的?
没有人。
五个缺失的控件,以及关闭每个控件的方法
Clinejection攻击链中的每一个环节都存在一个并不存在的控制点。利用这些控制点都不需要CVE漏洞。
| 链条中的一环 | 缺失了什么? | 关闭它的控件 |
|---|---|---|
| 1. 问题标题 | 未经信任的文本直接进入了代理的提示信息中。 | 将所有外部输入视为不可信,并禁止将其纳入代理指令。 |
| 2. 分诊员 | 分诊员可以运行任何命令 | 最小权限原则:仅授予每个代理执行其任务所需的工具。 |
| 3. 共享缓存 | 分诊和发布工作流程使用相同的缓存键 | 隔离工作流程并进行审查 pipeline 配置即代码 |
| 4. npm 令牌 | 发布依赖于长期有效的发布代币。 | 短期、有范围的出版凭证 |
| 5。 发布 | 发布前未经人工审核或验证 | 每次发布都需要获得批准并签署来源证明。 |
编写代码不再是瓶颈
Cline并非个例,而是一个预览版。人工智能编码代理现在可以编写、安装和…… commit 代码编写速度之快,完全超出了审查流程的设计能力范围,甚至人工智能实验室也反映,他们集成变更的速度比自己的工具所能处理的速度还要快。
瓶颈已经转移。编写代码成本不高,但安全地集成代码却并非如此。
发现漏洞成本不高,但知道哪些漏洞是真实存在的却并非易事。
人工智能非常擅长发现漏洞。但它自身无法告诉你哪些漏洞是真实存在的。
curl 库的维护者们,这个运行在数十亿台设备上的库,让这个问题变得显而易见。他们收到的大多数安全报告并非真正的漏洞,但每一份报告都耗费了一个小型志愿者团队数小时的时间。2026 年 1 月, curl 终止了其漏洞赏金计划并指出,大量低质量的、人工智能生成的报告造成了这一问题。
同样的AI驱动发现功能,既可以产生数百条真实有效的发现,也可能产生海量的无用信息。区别在于谁来验证这些信息,以及验证的成本是多少。
您的编码代理现在是您供应链的一部分
攻击者得出了一个合乎逻辑的结论:如果代码是由代理人编写的,那么为什么要攻击代码呢?攻击编写代码的人就对了。
- 蹲着。 对人工智能生成代码的研究发现,模型经常推荐不存在的软件包,而且往往重复使用相同的虚构名称。攻击者只需注册一个软件包,然后等待即可。
- 人工智能助手背叛了它们的主人。 在针对热门构建工具 Nx 的 s1ngularity 攻击中,恶意软件会寻找开发者机器上的 AI 代码助手,并要求它们查找机密信息,例如 .env 文件、SSH 密钥和云令牌。受害者自身的 AI 程序则替攻击者完成了这些工作。
攻击面不再仅仅是你的代码,而是所有为你编写代码的工具。许多此类风险现在都已在……中进行了映射。 OWASP 十大法学硕士申请问题 并且出现在 OWASP 十大代理应用程序安全漏洞列表中,我们在指南中对此进行了解释。 OWASP Agentic AI Top 10.
AI编码代理安全性:四个问题 CISO应该能够回答

赫苏斯将这一切归纳为四个问题。请尝试为你们的组织回答这些问题:
- 如今,哪些因素和模式在推动我们的发展? 不是你批准的那些:而是已经存在的那些。比如IDE助手、GitHub机器人、别人为了节省时间而设置的代理程序。
- 他们能为我们的软件带来什么? 虚构的软件包、诱饵依赖项、IDE扩展、 MCP 服务器模型可从任何地方下载。
- 我们能做什么 pipelines 执行,以及拥有哪些权限? 在 Cline 中,共享缓存足以获取发布令牌。
- 在我们听到的所有信息中,哪些结论是我们可以真正验证的?
第四个问题比表面看起来更重要:你不能依赖代理人自己对所作所为的总结。你需要独立的证据。
Xygeni是如何回答这些问题的?
看看那里有什么。 Xygeni AI 安全 它会建立一份存储库中模型、代理、MCP 服务器和 AI 编码工具的清单,并将风险映射到 OWASP Top 10 风险库中关于 LLM 应用的风险。你无法管理你不知道存在的东西。

阻止不应该进入的东西进入。 恶意软件预警 它可以检测恶意软件包,即使没有特征码也能检测到,而且它包含在我们的免费套餐中。 西吉尼 Shield 在恶意软件包安装到开发人员工作站之前将其阻止,并对软件包、IDE 扩展和插件强制执行最低使用期限,从而关闭了这些攻击所依赖的窗口。

保护 pipeline. CI/CD 安全检查工作流程、权限和密钥,以及 Build Security 新增签名 萨尔瓦多 认证机制,这样你就可以证明你发布的内容就是你实际构建的内容。而这正是 Cline 失败的原因。
用证据验证,而不是用观点。 这正是人工智能最有潜力也最容易出错的地方。每次运行结果都不同的程序,既不能作为审计人员的证据,也不能作为判断标准。 pipeline因此,在 Xygeni,人工智能并不做决定。在人工智能渗透测试中,LLM(层级管理)会像渗透测试人员一样规划攻击,但最终由一个确定性的预言机根据真实安全的信号来判断攻击是否成功。每个判定结果都是可利用的,而不是不可利用的或不确定的,并且每个判定结果都附带一个可重复运行的概念验证,您可以将其展示给审计人员或董事会。

人工智能提出方案,确定性引擎做出决定,你保留证据。
德cis离子仍然是你的
赫苏斯最终还是回到了原点。克莱恩的一个版本未经授权就发布了,并非团队疏忽,而是因为没有人及时提出正确的问题。这就是人工智能编码代理安全性的关键所在:在代理发布任何内容之前,必须先提出这些问题。
人工智能已经可以帮你编写代码了。至于哪些代码最终会投入生产,仍然由你来决定。
那么,这四个问题中,哪个是你今天无法回答的?
我们在62号展位花了三天时间与安全和开发团队探讨了这些问题。感谢每一位莅临参观的朋友。

Xygeni 团队在 ENISE 2026 的合影,从左至右: 耶稣广场, 马科斯·马丁, 和 阿古斯丁·桑切斯·丰塞卡。
常见问题
什么是人工智能编码代理安全?
AI编码代理安全是指控制AI编码助手和代理在软件开发生命周期中可以查看、安装、执行和发布的内容。它涵盖代理本身、它们引入的组件以及其他相关内容。 pipeline它们可以触发,以及你需要哪些证据来信任它们的输出。
什么是克莱因喷射性攻击?
Clinejection 是针对 Cline 代码库的一系列攻击,攻击者在 GitHub 问题标题中隐藏提示信息,诱使 AI 分类代理执行命令。通过缓存投毒,攻击者获取了 npm 发布令牌,并发布了未经授权的 Cline 版本,该版本被安装了约四千次。
什么是蹲式露营?
恶意抢注软件包是一种供应链攻击,攻击者注册人工智能模型经常会生成的软件包名称。当开发者或编码人员安装这些虚构的软件包时,他们实际上会获得攻击者的代码。
人工智能能否自行验证安全发现?
并非总是可靠。人工智能可以发现并解释漏洞,但其输出结果可能因运行而异,因此作为证据的效力有限。更稳妥的方法是让人工智能提出建议,而由确定性引擎进行决策,这样相同的输入始终会产生相同且可验证的结果。







