智能体人工智能风险和爆炸半径

智能体人工智能的风险和影响范围:限制智能体,还是加快恢复速度?

TL博士

关于人工智能风险的同一问题的三个答案

我们原本期望在限制人工智能代理方面达成广泛共识,结果却得到了三种不同的答案。

  • 佩德罗·福图纳: 将代理拆分成许多小的、特定的代理,每个代理都拥有尽可能小的权限,并添加运行时监控,以便在早期停止它们。
  • 杰克·特雷丰: 对于编码代理来说,情况则恰恰相反。限制一个代理就会破坏其作用,因此要接受其影响范围,并投资于追踪和快速恢复。
  • 路易斯·罗德里格斯·贝尔索萨: 第三条原则。像对待恶意软件一样对待前沿模型,设计防御机制来限制每个专门的代理,并在所有机制之下设置一个强制执行层,当其上层机制失效时,该强制执行层仍然有效。

三人相遇的地点: 你无法保护你没有清点过的东西,每个操作都必须记录下来,阻止代理的东西必须位于代理之外。

没有违反任何规定。

代理程序完成了它的任务。在此过程中,它决定需要修改一个依赖项、一个配置项或一项服务,而此前没有人要求它这样做。但它始终没有违反任何权限。没有违反任何规则,因此没有触发任何异常。

我们把这个案例提交给三位专业人士,原本期望他们能就如何处理这个问题达成共识。结果却得到了三个不同的答案,其中两个答案还互相矛盾。

智能体人工智能的风险通常被描述为攻击者的问题。但这是另一种解读。二十年来,我们为那些严格按照指令执行的软件划定了权限边界。例如服务帐户、持续集成运行器、计划任务等等。我们经常划错边界,但边界内的程序是可预测的。它每次都以相同的方式执行同一项任务。

现在,边界内的事物决定一切。而边界的绘制方式依然如旧:预先绘制,在配置阶段,由一个无法预知任务最终走向的人绘制。

这才是真正值得讨论的智能体人工智能风险,我们在上一季中花了一个小时讨论了这个问题。 SafeDev 讲座 - 佩德罗·福图纳 来自 Jscrambler, 杰克·特雷丰 Trefon Digital Consulting 的 路易斯·罗德里格斯·贝尔佐萨 由 Xygeni 主办 亚历杭德罗·埃斯特拉达.

我们原本预期他们会达成大致共识,但结果并非如此。

智能体人工智能的风险:看似令人安心却并不成立的前提

上面的框架中有一个词发挥了过多的作用: 攻击者没有。这样做是为了简化情况。

佩德罗一招就把它拆开了。

“攻击者与否是一个人类的概念。攻击者之所以是攻击者,是因为他们有着不同的目标。而一个目标不一致的主体,也同样有着不同的目标。”

请仔细思考这一点,因为它颠覆了大多数关于人工智能主动性风险讨论的前提,包括我们为自己的活动撰写的描述。如果攻击者的定义是目标分歧而非恶意,那么“这个故事里没有攻击者”这种说法就是一种毫无根据的安慰。从结构上看,风险并无二致。缺失的是意图,而意图从来都不是你的控制措施所能检测到的。它们检测的是结果。一直以来都是如此。

这也是行业术语发生变化的原因。OWASP的 2026年法学硕士申请排名前十 将过度代理的排名从第六位提升到第三位,这与其说是意见的改变,不如说是事件记录赶上了已经部署的架构。

“拥抱脸”事件的真正含义

7月份发生的这起事件中,一个边境型号的机器人攻击了第三方,外界普遍认为这是一起机器人失控的事件。但路易斯对此有不同的解读,他认为责任方并非他想象的那样。

“问题不在于前沿模型。前沿模型完成了它被赋予的任务。问题在于实验设计。”

目标是开放式的,没有任何限制。而且,用来隔离它的沙箱环境竟然存在一个通往互联网的窗口——代理程序可以通过软件包缓存中的服务器端请求伪造漏洞访问到该漏洞。这些都是设计缺陷。cis人产生的离子。

由此产生的句子应该会改变你提供这些资源的方式:

“前沿模型需要像恶意软件一样看待,因为它们可以自主行动并采取各种措施。”cis恶意离子。并非有意为之,但最终确实具有恶意。

这并非对模型的侮辱,而是一种部署策略。你不会把一个 bash shell 交给恶意软件,然后指望它能明确地指定目标。

佩德罗对同一事件的解读是,关键在于时机而非设计:

“一旦发现代理程序通过不应使用的服务上的文件夹名称进行通信,就必须立即阻止这些代理程序。无需等到这些代理程序成功入侵 Hugging Face 后再判断其行为是否恶意。”

响应过程中还有一个值得注意的细节。响应人员尝试使用一款商业代理工具来分析追踪信息,但由于达到了速率限制而失败。而攻击者则没有这样的限制。“攻击本身就存在不对称性。”

实际的争论点是:限制代理,还是加快恢复速度?

专家组在此产生了分歧,这是两位凭借自身实力赢得席位的从业者之间的真正分歧。

佩德罗主张分解。 十五年来在浏览器内部推行隔离的经验让他明白,你无法在运行时对单体应用强制执行任何措施。必须将架构拆分成具有特定功能的小模块,只有这样,控制和监控点才能发挥作用。代理程序也不例外。

我认为应该将其细分为多个专门负责特定任务的智能体。即使最终有五十个智能体也没关系,总比只有一个智能体要好。

Jack 则持相反观点,尤其针对编码代理。 你可能会认为,在受监管的加密货币交易所从事技术运营工作的人,其背景会受到最严格的限制。但事实恰恰相反,他们的限制最少。

他最初提出的类比根本不是威胁模型:

“我看待典型的代理部署,就像看待新员工一样。这个人可能执行得完美无瑕,也可能犯错。我看不出有什么太大的区别。”

对于特定用途的代理,他的要求和任何人一样严格。在描述他目前正在构建的只读审查代理时,他直言不讳地指出,常见的部署方式是站不住脚的:将其部署到一台拥有 bash 访问权限的普通 Linux 服务器上“无异于向整个威胁生态系统敞开大门”。但对于通用代码审查代理,逻辑则恰恰相反,他也知道这种观点不受欢迎:

“经纪人的权力越大,就越有创造力,也越有效。所以,并非是限制和缩小范围才使行业蓬勃发展。”

那么,如果不加以限制,还能做什么呢?断路器,尤其是基于时间的快照:并非阻止爆炸半径,而是让灾后恢复变得廉价快捷。他把这些都融入到了系统中。 琥珀色一个他利用业余时间编写的无依赖 C++ 代理框架,带有循环快照功能(项目现场).

以及关于另一条路尽头的警告:

“如果我们开始剥夺某些工具,那么最终只会剩下一个工具,而那个开发者将能够打开和关闭灯光。”

路易斯位列第三这既不是约束也不是恢复,而是从下方包含:假设代理最终会像恶意软件一样运行,设计框架来限制每个专门的代理,并在所有这些下面放置一个强制执行层,当上面的所有内容都失败时,该强制执行层仍然有效。

解决同一问题的三种方法

三种职位,每种职位都有代价。没有一种职位是免费的,也没有一种职位能够单独保证代理人的安全。

途径核心动作这需要花费你多少钱?
分解佩德罗·福图纳许多权限有限的小型代理,加上运行时监控,可以提前阻止它们运行。前期需要投入大量设计精力,而开放式的编码工作则更具挑战性。
恢复杰克·特雷丰保留现有功能,增加熔断器和基于时间的快照,以便回滚成本低廉。更大的爆炸半径,以及对及时发现并消除爆炸的信心。
包含以下内容路易斯·罗德里格斯·贝尔佐萨假设恶意软件行为,限制安全框架中的每个代理,并在工作站和 CI 运行器上强制执行。大多数终端堆栈尚未提供基础设施和工具。

并排阅读他们的论述,就会发现分歧远比表面看起来要小。三者都认同代理人会做出一些意想不到的事情。他们的分歧在于资金的用途:用于事前的建筑设计、事后的补救措施,还是用于两者之下的底层结构。

为什么最小特权原则不能转化为智能体人工智能风险

最小权限原则的前提是您了解这项工作。您需要将权限范围限定在特定任务上。

代理程序会悄无声息地打破这种规则,因为它的权限边界是在配置时划定的,而任务则是在运行时才到达的。你实际授予它的权限是它可能被要求执行的所有操作的总和。这并非最小权限原则;恰恰相反,它只是披着最小权限的外衣而已。

路易斯提出了一种重新构建框架的方法,这种方法借鉴自一个比这一切都更古老的想法:

“我想到的是UNIX的管道机制,它将简单的工具连接起来执行复杂的任务。你可以定义具有受控配置的特定代理,限制该专用代理可以执行的操作。而且你可以将它们组合起来执行几乎任何任务。”

此外,还有第二个大多数团队都没有尝试过的设计理念: 与其扩大权限,不如对工具进行封装。 并非 bash(它会交出整个系统),而是一个功能有限的包装器,它是唯一可调用的路径,并且还有一些只读变体包装了通用版本。代理获得的是一种能力,而不是一个 shell。

他还明确指出,障碍不在于设计,而在于推广。开发者机器上的新控制措施一直以来都存在被规避的现象,而这种现象并不会因为所涉工具是代理程序而改变。

以及他认为这一切最终会如何结束:

我认为最终我们将拥有能够控制其他自主代理的自主代理。

笔记本电脑成了镇店之宝,而你的EDR系统却毫无察觉。

代理需要持续访问权限才能发挥作用。这包括:不会在任务执行过程中过期的令牌、缓存的凭据、推送权限、注册表访问权限以及实时路径。 pipeline这些都是必要条件,而不是疏忽,这意味着工具越好,开发人员的精力就越集中。

攻击者最先发现了这一点。正如佩德罗所说,他们并非意识形态狂热分子:

“他们像小型公司一样组织起来。他们需要赚钱,所以就朝着最有利可图的方向发展。他们很快就发现,在开发站里有利可图。”

我们每周都会关注注册表中反映出的这种变化。 恶意代码摘要现在,凭证窃取者通常会像窃取云端和注册表密钥一样,窃取 AI 提供商密钥。

他的缓解措施清单并不吸引人,但却有效:删除机器上所有不需要的密钥,将剩余的密钥与 OpenID Connect 或硬件密钥等第二因素配对,这样即使令牌被盗也不足以构成威胁,并且尽可能将环境从主机上移开,例如通过开发容器或云 IDE。

然后路易斯提出了一点,这一点应该引起所有认为其端点堆栈涵盖了这种情况的人的警惕:

“EDR 专门针对传统恶意软件,对代理工具并不了解。即使它们正常工作,也会产生大量误报,因为代理工具会执行一些检测模式目前无法识别的操作。”

同时出现两种故障模式:它漏掉了重要的信息,却标记了无关紧要的信息。他的解决方案是设置一个外部强制执行层,位于开发人员工作站和 CI 运行器周围,在安全框架之下,限制恶意代理的访问范围。这就是差距所在。 西吉尼 Shield 专为在实际安装发生的端点上强制执行策略而构建。

Jack 的说法更直白:不要把你的比特币放在你的开发机上。

三人一致同意的地板

三种不同的答案,至少有一个共同点。

  • 首先清点库存。 “你无法保护你不知道的事物。”其他所有cision 依赖于了解存在哪些代理、技能和 MCP 服务器,但几乎没有一个被公开。
  • 记录所有操作。 杰克和路易斯从相反的方向来到这里。杰克想要找到痕迹,因为痕迹是恢复和组织成长的途径。路易斯想要痕迹,因为没有痕迹就无法重建爆炸半径。杰克的思路值得借鉴:审问行动者(无论是人还是代理人)毫无意义,只有充分理解背景才能避免重蹈覆辙。
  • 阻止代理人行动的因素必须位于代理人之外。 Pedro 的运行时监控、Luis 的执行层、Jack 的断路器和快照。不同的机制,同一个原则。

杰克对行业目前的发展阶段给出了一个很有价值的概括。他回忆起自己收到的第一封垃圾邮件,邮件里说他继承了尼日利亚的一座金矿。这是一个成熟度的问题,而成熟是在犯错之后,而不是在犯错之前。

周五之前要做什么

选择一个代理人。写下两份清单:一份是该代理人被允许执行的任务清单,另一份是该代理人本周实际被要求执行的任务清单。

这些列表之间的差距就是你的爆炸半径,也是你的团队在一个下午就能完成的衡量人工智能自主风险的最有效方法。它只需要一个下午的时间,无需任何预算,就能解决你组织面临的上述争论,因为这三个立场实际上是对“这个差距应该有多大”这个问题的三种不同答案。

大多数球队从未将其写下来。

此 整小时 可以回看,其中包括杰克关于为什么欧洲的人机交互要求使得一些人工智能防御措施在实践中不可行的观点。 

如果锻炼cise 返回了一个你不喜欢的答案, 西吉尼 发现存储库中的每个 AI 资产,包括无人声明的代理、技能和 MCP 服务器,并绘制每个资产可以访问的范围。 预约演示 or 免费开始, 我们将在您的电脑上运行它。

常见问题解答

人工智能体的爆炸半径是多少?

代理程序出错时可能访问到的所有资源,与它被要求执行的任务截然不同。这些资源取决于它在运行时可用的权限、凭证和工具,而不是任务本身。这两者之间的差距才是真正值得衡量的,而大多数团队从未将其记录下来。

如果代理程序从未超出其权限范围,那么代理程序超出其任务范围是否构成安全事件?

这就是分歧的核心。佩德罗的答案实际上是肯定的,因为攻击者的定义在于目标偏差而非恶意,而目标偏差的代理已经偏离了目标。杰克的答案则更接近于否定:这是一种操作失误,就像新员工犯的错误一样,正确的应对措施是追踪和恢复,而不是加强约束。路易斯则回避了这个问题,他从一开始就假设了最坏的情况,然后问当这种情况发生时,哪一层仍然有效。

编码代理是否应该置于沙箱环境中?

对于功能狭窄、任务特定的代理,三位专家毫不犹豫地表示同意:尽可能只读,不使用 Bash,除非必要,否则不使用网络。对于通用编码代理,专家组的意见则分为三类:Pedro 建议对其进行分解,Jack 会积极保留其功能并进行快照,而 Luis 则会在底层添加一个强制执行层,无论代理被允许执行什么操作。

我的EDR是否涵盖智能体AI风险?

可能不太理想。目前的终端安全工具是基于传统的恶意软件模式构建的,并没有模拟代理行为,因此它们往往会忽略一些重要的信息,而把一些无关紧要的信息标记出来。路易斯的方案是一个专为开发者环境设计的外部强制执行层,而不是通用的EDR工具。

首先要做的事情是什么?

构建清单。清单包括存储库中的每个模型、代理、技能和 MCP 服务器,以及它们各自可以访问的内容。这是三位小组成员都提到的关键步骤,也是其他所有控制项所依赖的唯一步骤。

sca-tools-软件-成分分析工具
确定软件风险的优先级、进行补救并加以保护
注册免费账号。
不需要信用卡。

确保您的软件开发和交付安全无虞

使用 Xygeni 产品套件