信任边界¶
OS 不信任它运行的程序。
这不是工程选择,是设计原则:用户程序可能有 bug,可能被入侵,可能恶意。OS 假设最坏情况,通过两个独立机制来限制损害:权限(程序能做什么)和资源隔离(程序能看到什么)。两者缺一不可——只有权限没有隔离,程序可以读到任何数据;只有隔离没有权限,程序可以对可见的数据做任何操作。
Harness 面对同样的结构问题,重新发明了这两个机制。
权限维度:工具调用 = 系统调用¶
OS 的系统调用是用户程序访问特权资源的唯一合法入口。程序不能直接操作硬件、网络栈、文件系统——只能通过 syscall 请求 kernel 代为执行,kernel 在执行前验证权限。
Agent 的工具调用结构完全相同:agent 不能直接发邮件、修改数据库、执行命令,只能通过 tool call 请求 harness 代为执行,harness 在执行前验证权限。Syscall 是 agent 系统里的 tool call。
生产级 agent 系统已经在重新发明这个结构。核心原则和 OS 安全一脉相承:deny 优先于 allow——拒绝永远比允许有更高的优先级,任何层级设置的 deny 不可被更低层级 override。
权限模式形成一个谱系,从完全手动确认到完全自动执行——就像 OS 从受限用户态到 root 的不同信任级别。权限范围的层级嵌套也是 OS 风格的:组织策略覆盖项目配置,项目配置覆盖用户偏好,但 deny 是单向的。这和 ring 保护的逻辑相同:ring 0 的约束对 ring 3 不可见、不可逾越。
权限侧断裂点:CPU 可以被说服¶
OS 进程不会被"说服"去做越权操作。
进程不理解自己在执行什么——它只是按指令集跑二进制代码。你可以注入恶意代码,但恶意代码至少受指令集的约束:没有合法指令序列的程序就是不会运行。即使注入成功,攻击者控制的代码依然在 OS 的权限系统里运行,syscall 的访问控制依然有效。
Agent 在这里遇到了 OS 从未面对的问题:这个 OS 的 CPU 可以被语言改写行为。
一条精心构造的 prompt injection 不需要找到代码漏洞,不需要提升权限——只需要使 agent 表现出越权行为(无论底层机制是"指令跟随"还是"上下文劫持",可观测的效果相同)。自然语言没有类型系统,没有编译器,没有"这条指令无效"的机制。权限边界在架构层面,攻击面在语义层面。
在 OS 里,你只需要信任 kernel 的逻辑,不需要信任 CPU 本身——CPU 是确定性的执行硬件。在 agent 系统里,这个假设失效了:LLM 既是执行引擎,又是理解输入的那个系统,而输入可以是攻击向量。
Execute-Only Agents(ASPLOS 2026,Tiwari & Williams)提出了一个结构性回应:把规划层和执行层分进两个安全域,执行层不接受自然语言指令,只处理预批准的操作集。不能被语言说服的组件,才是真正的安全边界。这不是在权限系统上打补丁,而是从架构上消灭攻击面。
资源维度:数据的可见性分层¶
OS 的文件系统权限通过 owner/mode 把数据分成三层可见性:内核独占的(/proc、/lib,用户进程只读或不可见)、系统管理的共享资源(/etc,受控写入)、用户的私有空间(~/,完全读写)。三层的设计原理是同一个:不同信任级别的实体看到不同的数据,写权限严格递增。
Agent 系统面对同样的分层需求。平台提供的不可变基础(基础配置、内置能力)对 agent 只读;跨 session 的共享状态(全局配置、共享知识)只能通过受控接口修改;当前 session 的工作区完全归当前 session 所有。三层结构和 OS 文件系统同构——不是巧合,是相同约束(多租户、最小权限、审计需求)逼出来的相同解法。
OS 在这一层还有一个经典策略:fork() 的 Copy-on-Write。父子进程共享同一份物理页,只在写时才复制。Agent session 初始化时可以用同样的策略——共享层的数据不做全量拷贝,只在 agent 需要修改时才创建私有副本。延迟复制,只在写时分配,避免不必要的初始化开销。
两层防御的完整性¶
权限维度防止 agent "做错事"——调用了不该调用的工具,执行了不该执行的操作。资源维度防止 agent "看错数据"——访问了不该访问的信息,污染了不该污染的共享状态。
两者的威胁模型不同,防御机制不同,但互补:权限系统被 prompt injection 绕过时,资源隔离是第二道防线;资源隔离被错误配置时,权限系统是第一道防线。这是纵深防御,不是单点防护。
权限和隔离解决了"agent 独自工作时"的信任问题。当 agent 需要协作——和人类协作,和其他 agent 协作——信任边界之间需要有通信通道。这是下一根支柱要解决的问题。
延伸阅读¶
- OpenAI. (2025). Unrolling the Codex Agent Loop. openai.com/engineering. — 信任边界的另一种生产实现:每个任务在独立沙箱中运行,网络默认关闭,文件系统隔离;和本文讨论的权限+资源双维度防御形成互补视角
概念与实体¶
本文涉及的核心概念与实体,在项目知识库中有更详细的资料:
- Claude Code Permission System — 本文讨论的 deny-first 权限模式的生产级实现
- Permission Modes — 从完全手动到完全自动的权限谱系详解
- Permission Rules Hierarchy — deny 优先于 allow 的层级嵌套规则
- Agent Sandboxing — 资源维度隔离的工程机制
- LLM Security — "CPU 可以被说服"这一断裂点对应的安全研究
- Guardrails — 权限与隔离之上的约束边界框架