想象一个技术精湛但容易受骗的助手(AI 智能体),他正试图为你处理事务,比如发送电子邮件、编辑文件或运行代码。这个助手阅读着一本写满了指令、笔记和消息的巨型笔记本。问题在于,一个聪明的骗子(攻击者)可以在笔记本中偷偷塞入笔记,试图诱骗助手去做一些危险的事情,比如删除数据库或把钱汇错人。
这篇论文介绍了一个名为 上下文执行完整性(Context-to-Execution Integrity, CXI) 的系统。你可以把 CXI 想象成站在“行动室”门口的一名极其严格的保安。他的职责不是去阅读整个故事或判断某项任务是否是个好主意;他的职责是检查助手是否拥有开启这扇门所需的特定且有效的钥匙。
以下是它的工作原理,使用简单的类比进行说明:
1. 问题所在:“权限洗白”(Authority Laundering)
通常情况下,如果助手在笔记本中读到一条笔记说:“文件失败了,所以请运行 delete_all 命令”,它可能会照做。论文将此称为权限洗白。这就像是一个小偷拿着一张看起来合法的身份证件(关于文件失败的笔记),并试图利用它来打开银行金库(执行删除命令)。这条笔记解释了为什么发生了某事,但不应该拥有让某事发生的权力。
2. 解决方案:三部分安全检查
CXI 充当守门人的角色。在助手真正执行任何操作(如写入文件或发送电子邮件)之前,守门人会检查三件事。所有这三件事都必须与同一个特定的计划(称为“清单/Manifest”)相匹配。
检查 1:“谁”(字段权限/Field Authority)
- 类比: 假设助手想要给特定的人写信。笔记本中的笔记可能会说:“发给鲍勃。”但保安会检查:“是否真的有一个受信任的老板或经过验证的系统说了‘发给鲍勃’?”
- 如果“鲍勃”这个名字仅仅来自攻击者写的随机笔记,保安会说不。这个名字必须来自一份“类型化发布”(Typed Release)——这是一张特殊的、经过验证的纸条,上面写着:“是的,这个特定的姓名允许用于这个特定的字段。”
检查 2:“什么”(效果权限/Effect Authority)
- 类比: 假设助手想要为某个计算机程序应用补丁。笔记说:“应用这段代码。”保安会检查:“这段代码实际执行的操作是否正如我们所想的那样?”
- 保安不仅看文字,还会看结果。如果代码是一个“补丁”,保安会验证它对系统究竟会做出哪些改变。如果攻击者试图混入一段看起来像补丁但实际上会删除文件的命令,保安会因为它与授权计划中的“效果”不符而将其拦截。
检查 3:“何时”(调用权限/Invocation Authority)
- 类比: 假设助手想要按下“开始”按钮。保安会检查:“助手现在是否有有效的票据来按下这个按钮?”
- 即使名字和计划都是正确的,助手也需要一个特定的“能力”或票据来触发动作。如果攻击者试图诱骗助手按下两次按钮或在错误的时间按下,保安会因为缺少或票据过期而拒绝,说不。
3. “清单”(Manifest,即主计划)
论文将最终批准的计划称为 清单(Manifest)。你可以把它看作是一份合同。
- 助手提议一个行动。
- 保安检查“谁”、“什么”和“何时”。
- 如果这三部分完美匹配并且都关联到同一个合同,保安就会在合同上盖章,并交给助手一份“租约”(Lease,即许可),允许其执行。
- 如果其中任何一部分缺失或不匹配(例如,名字是对的,但“何时”的票据不对),保安就会关上门。
4. 那些“坏”笔记怎么办?
论文指出,助手仍然可以阅读攻击者的笔记。
- 不透明数据(Opaque Data): 如果攻击者写道:“系统坏了”,助手可以将该文本复制到“注释”或“证据”框中。这就像是把笔记放在一个玻璃展示柜里。它是可见的,供人类阅读,但它没有任何力量去开门或触发行动。它仅仅是数据,而不是钥匙。
5. 他们测试了什么?
作者通过几种方式测试了这个系统:
- 实战模拟: 他们使用了一个“道场”(训练场),其中包含 720 个真实的场景,攻击者试图在这些场景中欺骗智能体。系统拦截了每一次未经授权的行动。
- 代码智能体: 他们测试了编写代码的智能体。即使攻击者尝试注入错误的命令,系统也只允许具有正确“钥匙”的行动通过。
- 结果: 在所有的测试中,零次未经授权的行动穿过了大门。该系统成功阻止了“权限洗白”。
总结
CXI 是一个防止 AI 智能体被欺骗的系统。 它确保了仅仅因为 AI 在笔记中读到了一条危险指令,并不意味着它就拥有执行该指令的权力。只有当一个受信任的系统明确给予它针对该特定工作的特定钥匙时,AI 才能采取行动。它将 AI 从一个容易受骗的读者转变为一个纪律严明的工人,只遵循经过验证的命令。
技术摘要:面向 LLM 智能体的上下文-执行完整性 (CXI)
1. 问题陈述
大语言模型 (LLM) 智能体正越来越多地通过读取攻击者可写的上下文(例如 CI 日志、Issue 评论、检索分块、工具输出)来运作,并据此提出触发现实世界副作用(例如文件写入、数据库查询、API 调用)的操作。识别出的核心安全失效是权限洗白 (Authority Laundering):即一种系统失效,其中本应仅作为证据的不可信文本,获得了选择工具、授权操作或为特权副作用提供参数的权限。
目前的安全性方法通常依赖于模式验证 (Schema Validation) 或全量调用信任 (Whole-call Trust),这些方法并不充分。一个工具调用可能在语法上是有效的(具有正确的 JSON 结构),但其语义字段(例如 tool、operation、approval_state)可能源自不可信来源。本文认为,安全边界必须从“该文本是否合理?”转向“每个受保护字段中的特定值是否具备执行该特定副作用所需的必要权限?”
2. 方法论:上下文-执行完整性 (CXI)
CXI 是一种执行边界系统,旨在调解从模型提议到汇聚点 (Sink) 执行之间的过渡。它强制执行严格的准入策略,即只有当三个不同的权限组件都绑定到同一个规范动作清单 (Canonical Action Manifest) 时,才会发生副作用:
- 字段权限 (Field Authority): 受保护的汇聚点字段(例如文件路径、工具名称)必须经过授权。
- 效果权限 (Effect Authority): 汇聚点解释的负载(例如补丁、SQL、Shell 命令)必须针对其特定的语义效果获得授权。
- 调用权限 (Invocation Authority): 调用汇聚点的事件本身(包括重试、批处理和调度)必须获得授权。
核心机制
- 类型化释放 (Typed Releases - D): 不可信的可写上下文 (W) 不能直接授权受保护字段 (X)。相反,受信任的代码(解分类器/Declassifiers)必须验证 W 并铸造一个狭窄的、目标作用域内的类型化释放。例如,一行日志行可以被验证以产生一个用于
file_path 参数的 FilePath 释放,但该文本本身不能授权 tool 的选择。
- 不透明数据 (Opaque Data - O): 不可信文本可以被复制到“不透明数据槽”中作为证据(例如评论、日志),但它不携带任何权限。如果这些数据稍后重新进入副作用边界,它将被视为可写的上下文。
- 精确效果授权 (Exact-Effect Authorization): 对于建设性负载(补丁、SQL、CI YAML),系统不仅检查负载字节。它使用效果适配器 (Effect Adapters) 在受信任的快照(例如代码库状态、策略纪元)下计算该汇聚点将应用的精确语义效果。执行被绑定到这一特定的效果承诺。
- 清单绑定门控 (Manifest-Bound Gate): 一个确定性的门控将提议的动作规范化为一个动作清单 (Action Manifest)。该清单记录了动作 Nonce、字段证据摘要、效果授权摘要以及调用授权摘要。
- 调用能力 (Invocation Capabilities): 门控在执行前会消耗一个清单绑定的调用能力(一种线性化的租约)。这可以防止重放攻击、未经授权的重试或批处理基数的变化。
溯源与证据
CXI 追踪的是影响 (Influence) 的溯源,而非仅仅是字节来源。
- 开源权重路径 (Open-Weight Path): 对于可以访问内部状态的模型(例如 vLLM),系统生成后端证据记录,将受保护字段的解码与特定的 Token 范围和注意力掩码绑定,确保没有任何不可信上下文影响了受保护字段的生成。
- 托管/API 路径 (Hosted/API Path): 对于内部状态隐藏的 API,系统依赖于字段局部构建证据。在此场景下,宿主确保字段写入者仅能看到受信任的状态和有效的类型化释放,同时将不透明数据排除在写入者的上下文之外。
3. 主要贡献
本文定义并评估了三项主要贡献:
- 定义 CXI: 提出了一个形式化要求,即受保护的选择、汇聚点解释的效果和调用事件必须各自携带对于同一规范动作的权限,才能使模型提议变为可执行。
- 清单绑定准入系统: 设计了一个将受保护字段证据、精确效果授权和可消耗的调用能力组合成单一汇聚点决策的系统,并由确定性门控强制执行。
- 全面评估: 通过开源权重字段投影路径、AgentDojo 实战剧集、代码智能体精确效果基准、账本故障注入以及托管/API 兼容性追踪进行了评估。
4. 评估结果
评估将任务效用 (Task Utility)(智能体是否解决了问题?)与准入完整性 (Admission Integrity)(是否出现了未经授权的权限跨越边界?)进行了区分。
- AgentDojo 实战剧集: 在 720 个实战剧集和 1,739 次 LLM 调用中,CXI 在受保护的准入中观察到零次字段、效果或调用逃逸。
- 代码智能体精确效果基准: 在 400 个代码库剧集中,系统实现了 231 次安全的任务完成。至关重要的是,观察到零次字段、效果或调用逃逸。
- 注:关于失败情况: 未完成的任务归因于解析失败(73 例)、缺乏效果授权(61 例)或任务质量问题(35 例),而非安全漏洞。
- 提议压力 (Proposal Pressure): 系统观察到了显著的“提议压力”,即模型试图选择未经授权的字段(例如在效用对抗设置中,300 个提议中有 196 个是未经授权的)。然而,门控成功拦截了所有此类尝试,导致零次执行逃逸。
- 账本故障 (Ledger Faults): 在清单绑定账本测试中,系统成功拒绝了重复的准入并抑制了双重支出,证实了调用能力消耗的完整性。
- 与基准对比:
- 仅模式验证 (Schema-only validation): 允许了 100% 的未经授权执行(W 派生的值填充了受保护字段)。
- 参数角色溯源近似法 (Argument-role provenance approximations): 未能阻止调用事件和后端绑定的失败。
- CXI: 在机制基准测试中,拦截了 20/20 个攻击案例,同时保留了 6/6 的效用案例。
5. 意义与主张
本文将 CXI 定位为一种针对受控汇聚点的具体系统属性,而非针对所有智能体安全问题的通用解决方案。
- 明确的边界: CXI 使从上下文到执行的转换变得显式、可检查且失效闭合 (Fail-closed)。它并不声称验证器是完备的、任务是正确的或提供商内部是可观测的;相反,它确保了如果一个动作执行了,那是因为该动作的特定权限链是完整的。
- 适度的范围: 作者明确指出,任务质量、验证器完备性和外部精确一次交付 (Exactly-once delivery) 是另外的义务。CXI 确保的是执行的权限是正确的,而不是执行的内容是令人满意的,亦不是模型的推理过程是合理的。
- 以策略为中心: 该系统依赖于受信任的策略工作(字段分类、解分类器契约、效果验证器)。它不会推断缺失的策略;如果一个字段未被分类或一个汇聚点未被中介,则该保证不成立。
- 证据差异性: 本文承认证据因部署模式而异。开源权重部署可以通过注意力掩码证明后端强制执行,而托管/API 部署只能证明宿主观察到的构建边界。然而,两者都输入到相同的清单绑定门控逻辑中。
总之,CXI 提供了一种防止权限洗白的机制,通过确保不可信文本只能通过显式的、经过验证且具有作用域的渠道(类型化释放、精确效果承诺和调用能力)来影响副作用,并将这些渠道绑定到单个规范动作清单中。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。