一个能调用另一个代理的代理已经提升了其自身权限
摘要
本文讨论了能调用其他代理的AI代理如何可能导致超出审查边界的权限提升,强调了安全风险,并建议在系统设计中更好地限定凭据范围。
代理通常通过缩小其工具列表来限定范围。该列表被视为爆炸半径。五个工具,审查这五个,边界就清楚了。边界是单跳深度的。如果任何允许的工具能通过生成调用、服务端点、其他组件监听的队列或工作流触发器访问另一个代理,那么实际能力集是所有可达代理的传递闭包。被审查的只是第一跳列表。旨在跨跳持续的约束通常转化为提示文本。 “仅处理租户42。” “保持在五十美元以下。” 下游这些句子只是建议。数据库不会检查它们。支付API也不会检查它们。那么问问如果子代理忽略这个句子会发生什么,如果答案是它根本不会,那么一个建议就被当作了权限。事后重建也很尴尬。通过委托的权限提升不会产生看起来像提升的日志行。子代理使用自己的真实凭据做它被允许的事情,链中的每一跳都是单独授权且单独乏味的。记录中缺失的是因果部分,即整个事件追溯到一个没人授予其访问权限的代理。低成本检查。拿工具允许列表,对每个条目询问其另一端是否本身就是一个代理。如果答案是肯定的,要么在生成时铸造更窄的凭据,让资源而不是模型来执行约束,要么接受边界是单跳深度的,并明确说明。明显的反对意见是合理的,而且大多数时候确实如此。在许多技术栈中,子代理是同一进程中具有相同凭据的相同信任边界内的组件,所以也许这个区分的好处不如听起来那么大。真正棘手的是跨进程或组织边界的委托,或者能比父运行活得更久的子代理。不受信任的输入引导委托决策是同一问题更糟糕的版本。你是为每个子代理限定凭据范围,还是通过提示文本传递约束,你的框架实际上让什么变得容易?
相似文章
当你的智能体调用另一家公司的智能体时——谁在真正验证握手?
一位开发者描述了当一个AI智能体调用第三方供应商的智能体时遇到的认证和授权漏洞,重点说明了权限提升、未验证链和混淆代理攻击等故障模式。他们向社区询问如何处理跨组织智能体调用验证。
AI 代理最危险的部分始于其获得执行权限之时
本文强调了 AI 代理获得基础设施执行权限所带来的关键风险,认为如果没有外部准入层来防止灾难性故障,现有的安全护栏是不够的。
子代理不应自动继承父代理的权限
本文主张AI子代理不应自动继承其父代理的全部权限,而是提倡采用明确范围、工具限制和审计跟踪的弱化委托方式,以增强多代理系统的安全性。
当AI代理跨越多个系统时,谁真正拥有权限?
本文讨论了跨越多个系统的AI代理工作流中权限和治理的挑战,质疑权限和策略如何在交易链中交互。
为什么一旦智能体调用其他智能体,智能体防护栏和权限映射就会失效?
本文讨论了在多智能体AI系统中,当智能体调用其他智能体时,管理权限和防护栏的挑战,强调需要能在混合环境中工作且无需重写智能体的可扩展工具。