DEV Community

cognitalk
cognitalk

Posted on

Kagenti’s Approach to Multi-Agent Security for AI Agents


https://www.youtube.com/watch?v=4vfvvzzwcwI
视频主要介绍了开源项目 Kagenti 如何通过基础设施层的安全逻辑,解决多 AI Agent(智能体)系统在生产环境中的安全威胁,特别是“混淆代理”(Confused Deputy)漏洞 [00:00]。

以下是视频的核心内容总结:

1. 核心问题:“混淆代理”漏洞

  • 定义:一个拥有合法权限的 Agent,被诱骗利用其权限去执行不该执行的请求,从而导致隐蔽的数据泄露、恶意工具调用或提示词注入 [00:06]。
  • 传统防御的局限:传统应用有固定的调用图(Call Graph),可以通过网络隔离来防范;但 Agent 的核心价值在于自主决定下一步行动,无法静态保证请求路径,因此无法靠限制网络拓扑来解决授权问题 [03:07]。

2. Kagenti 的解决方案:保障“身份”而非“路径”

Kagenti 的理念是不再去强行限制 Agent 的执行路径,而是确保每个 Agent 的身份安全 [03:38]。当通过 Kagenti 部署 Agent 时,系统会自动部署两个“边车”(Sidecars)[03:48]:

  • SPIFFE:为 Agent 提供加密的工作负载身份(X.509 证书),这是一种短期的、绑定特定命名空间和服务的可验证凭证,而不是容易被复制粘贴的静态 API 密钥 [03:57]。
  • Keycloak 注册客户端:将 Agent 注册为 OAuth2 客户端,使其能够针对特定工具申请有限的 Token [04:59]。

3. OBridge 组件与全链条授权

为了彻底解决混淆代理问题,Kagenti 引入了 OBridge 组件 [05:17]:

  • 动态注入请求头:每次 Agent 发起调用时,OBridge 会注入一个经过加密签名的请求头。它不仅记录当前 Agent 的身份,还会记录完整的调用链(例如:“Agent D 受 Agent A 委托,代表某特定用户发起调用”)[05:46]。
  • 全链条验证:当请求到达工具或网关时,系统会检查调用链中的所有参与者是否都拥有权限。即使某个中间 Agent 手握合法 Token,只要它本身无权访问该数据,请求就会被拦截 [06:10]。

4. 开发者体验与技术栈

  • 无侵入部署:OBridge 在部署时会自动处理身份获取与轮转、Keycloak 注册以及 Envoy 代理的架设。开发者的 Agent 原生代码和容器无需做任何修改 [06:49]。
  • 工具端网关:通过 MCP 网关收束所有工具调用,统一处理路由、限流和 Token 验证 [07:21]。
  • 网络与可观测性:底层连接采用 Istio(Ambient 模式)实现 Agent 与工具之间的加密双向认证(mTLS)[07:39];同时集成 Phoenix 进行端到端追踪,集成 MLflow 进行实验追踪,方便在出问题时溯源审计 [07:56]。

视频最后强调,该方案中的所有组件(如 SPIFFE、Keycloak、Istio 等)均为 Apache 开源协议,由 Kagenti 整合在一起,非常适合正在构建多智能体系统的开发者 [08:13]。

Top comments (0)