IsolateGPT 执行隔离架构
一句话
核验状态:pending。 本页按论文自述做阅读笔记;venue、DOI、实现细节、benchmark 数字和结论仍需回到官方来源核验。正文中的数字均应读作”据论文报告”。
据论文,IsolateGPT 用 hub-and-spoke 架构把第三方 LLM app 的模型、记忆和执行上下文隔离开,再由可信 hub 做路由、权限和跨 app 协作控制。
为什么读这篇
IsolateGPT 是一条 agentic systems 执行隔离架构阅读线索,可对照本站 C_SAFE^{capability} 的实际工程实现。
它和 CaMeL 都属于”capability 系列”防御,但视角不同:
- CaMeL: 单个 agent 内,控制流-数据流分离 + capability 标签
- IsolateGPT: 多个 third-party agent 共存,进程级隔离 + hub 路由
读完它,你会理解 ToLO 防御里”capability”不只是 sanitizer 函数,而是架构层概念。
先对齐术语
- Hub-and-spoke:可信 hub 负责路由、权限与用户确认;每个第三方 app 作为 spoke 在隔离上下文运行。
- Process isolation(进程隔离):用 OS 进程边界限制一个 spoke 的内存、文件、网络或崩溃影响面。
- ISC(Inter-Spoke Communication):spoke 之间通信必须经 hub 转发与检查,不能直接共享上下文。
C_SAFE^{capability}:ToLO 中的能力门控 sanitizer;IsolateGPT 展示的是架构级能力控制,不是单个 escaping 函数。- TCB(Trusted Computing Base):必须被信任的系统组件。IsolateGPT 中 hub 是核心 TCB。
核心贡献
- 提出 agent app 执行隔离架构
- 用 hub 统一管理权限与路由
- 用 ISC(Inter-Spoke Communication)协议 约束跨 app 协作
它解决的问题
当 LLM 平台支持第三方 plugin / agent app(类似 ChatGPT plugin store、Claude MCP 生态),会出现:
- 跨 app 数据泄露:A app 处理的隐私数据被 B app 偷走
- 跨 app 行为劫持:被注入的 A app 让 B app 干坏事
- 权限混淆:user 不清楚一个动作背后是哪个 app 真的执行
- 责任不明:出事后难以归因到具体 app
许多 agent 框架或 plugin 平台在默认示例中倾向于共享 conversation history、tool list 或 memory。这是 ToLO 在多 app 场景需要重点审查的地带。
IsolateGPT 重新设计架构。
方法摘要
据论文,hub-and-spoke 架构:
┌────────────────┐ │ Trusted Hub │ │ (路由 / 权限 / │ │ user consent) │ └───────┬─────────┘ │ ISC 协议 ┌─────────────────┼─────────────────┐ │ │ │ ┌────▼────┐ ┌───▼────┐ ┌───▼────┐ │ Spoke A │ │ Spoke B │ │ Spoke C │ │ (App-A) │ │ (App-B) │ │ (App-C) │ │ LLM │ │ LLM │ │ LLM │ │ Memory │ │ Memory │ │ Memory │ │ Tools │ │ Tools │ │ Tools │ └─────────┘ └─────────┘ └─────────┘ (Process (Process (Process isolation) isolation) isolation)Hub 职责
- 可信接口(user-facing)
- 请求路由(决定调哪个 spoke)
- 权限管理(spoke 间不能跨权)
- spoke 管理(启动 / 停止 / 监控 spoke)
- 系统级记忆(跨 spoke 共享的少量元数据)
Spoke 设计
每个第三方 app 在隔离 spoke 中运行:
- Dedicated LLM(spoke 内 LLM 独立)
- Dedicated memory(spoke 内 memory 独立)
- Process isolation(基于 OS 进程隔离实现)
ISC 协议
Inter-Spoke Communication(ISC) 必须经 hub 转发:
- 定义好的 request/response format
- 关键步骤请求 user consent(高敏感动作需要 user 点同意)
- hub 校验 spoke 权限后才转发
实现
- 基于 LangChain 与 LlamaIndex 改造
- Process isolation 提供隔离机制
与 ToLO 的关联
IsolateGPT 是 C_SAFE^{capability} 的设计参考:它不把 S_LLM 当作全局可信协调器,而是在工具边界与执行边界处引入非 LLM 控制面。
每个 spoke 拥有独立 LLM 与 memory,跨 spoke communication 必须经 hub 路由,并在关键步骤请求 user consent。这类 capability gating 不对应单一 ToLO 子类,但可降低 ToLO-{Exec,Shell,SQL,Path,SSRF,Template} 等 sink 前的越权传播风险。
对七子类的具体作用
| 子类 | IsolateGPT 怎么帮 |
|---|---|
ToLO-Exec | spoke 内 exec 不能影响 hub 或其他 spoke |
ToLO-Shell | 同上 |
ToLO-Path | spoke 文件系统 chroot,跨 spoke 读取被 hub 拒绝 |
ToLO-SSRF | spoke 网络限制由 hub 策略决定 |
ToLO-SQL | spoke 内数据库连接由 hub 配置(可读 only / minimal perms) |
ToLO-Deser | spoke 内反序列化结果不能跨 spoke 传 |
ToLO-Template | spoke 内模板渲染不能影响其他 spoke |
为什么这对 ToLO 重要
IsolateGPT 让 C_SAFE^{capability} 从”代码里有一个检查函数”升级为系统架构约束。ToLO 的很多 sink 风险来自 LLM 输出被赋予过大的 ambient authority:同一个 agent 既能读全部 memory,又能调用全部 tools,还共享同一个执行上下文。Hub-and-spoke 把这些隐式权限拆开,使污染数据即使进入某个 spoke,也难以跨 app 扩散。
它尤其适合解释 C4 工具边界:第三方工具或 MCP server 即便返回恶意内容,也应只影响所属 spoke 的受限能力集合,不能直接驱动其他 app 的工具或读取 hub 的系统级 memory。
实验与结论要点
据论文,作者将 IsolateGPT 与 VanillaGPT 对比,评估:
- adversary 改变其他 app 行为:被攻击 spoke 不能干扰其他 spoke
- 窃取其他 app 或系统数据:跨 app 数据隔离
- 自然语言歧义导致的误暴露或行为改变:hub 的明确路由减少歧义
据论文,功能与性能评估使用 LangChain benchmarks;所有 benchmark 功能与 VanillaGPT 相同,75.73% tested queries 的 overhead under 30%。该数字仍按 pending 处理。
局限与开放问题
- hub 自身成为可信计算基(TCB),策略错误会影响整体安全。
- process isolation 与 user consent 的真实产品成本仍需进一步量化。
- app 开发者必须改造代码适应 IsolateGPT 架构 —— 现有 LangChain 应用不能”零成本迁移”。
- 对单 app 内的 ToLO(一个 LangChain agent 自己有 path traversal)不直接帮助 —— IsolateGPT 关注跨 app 边界。
- 它不替代单个 spoke 内部的 schema、allowlist、safe-codec 或参数化调用;spoke 内仍可能存在
ToLO-SQL、ToLO-Path等普通源码级缺陷。
对本站的启发
该论文支持本站把 C_SAFE^{capability} 单列为 sanitizer 类:有效防御不只是在 LLM 输出后做字符串校验,还要把 app capability、memory、tool access 与跨域通信纳入运行时控制。
无需扩展 ToLO 七子类;更适合在 Defensive Patterns 作为 capability sanitizer 的正面案例引用。
对静态分析的具体启发
CodeQL 检测 C_SAFE^{capability} 时,可以识别以下 IsolateGPT 风格 pattern:
- spoke 启动函数(如
spoke = HubClient.start_spoke(...)) - ISC 调用(如
hub.route(target_spoke, request)) - user consent 调用(如
await hub.request_user_consent(...))
这些都可作为 capability barrier 的标志。
ToLO 一行标注
- / - / - / C_SAFE^{capability} / 工具+执行边界 (跨 app)阅读顺序
建议在 CaMeL 之后读本文。CaMeL 更适合单 agent 内的数据/控制流隔离,IsolateGPT 更适合多 app、多 plugin、多 MCP server 的平台场景。若关注攻击入口,可回读 ToolHijacker。
读完检查
- IsolateGPT 和 CaMeL 主要差别?
- IsolateGPT 偏 架构 / 运行时隔离(进程 + hub);CaMeL 偏 静态策略 + 数据 capability 标签。
- 单一 agent 应用(一个 LangChain 实例)用 IsolateGPT 直接有意义吗?
- 没有直接意义。IsolateGPT 解决多 app 共存场景。单 agent 应用应当用 CaMeL 或类似设计。
- MCP 生态可以从 IsolateGPT 学到什么?
- 很多。MCP 本质上是”多 third-party server 共存”。如果 MCP host(如 Claude Desktop)按 IsolateGPT 思路实现,可以大幅降低 C4(MCP server 响应控制)的影响面。
外部链接
- 论文:https://www.ndss-symposium.org/ndss-paper/isolategpt-an-execution-isolation-architecture-for-llm-based-agentic-systems/
- 代码 / 数据集:https://github.com/llm-platform-security/SecGPT/tree/IsolateGPT-AE
- 作者主页: