Skip to content

ClosureBound:Agent Skill 传递依赖闭包与效果时刻授权 ​

摘要 ​

ClosureBound 处理一种授权转移问题:用户批准的根 Skill 没变,但递归 Skill、包、工具 Schema、模型、服务部署或效果适配器已经变化,旧授权仍被沿用;或者 Agent 改走 Shell、浏览器等不同表面路径,产生与已批准工具调用相同的持久效果。方案把类型化传递依赖图的精确闭包根、效果上限、用途、来源、时效和 epoch 绑定到授权,并在持久化前重新解析与校验。

作者提供不依赖云厂商的参考实现,在 40 个冻结生命周期夹具、18 个内核合同和 6 个 mutant 上验证机制;完整配置探索 84,608 个状态和 530,752 条转移,没有发现已声明不变量违规,弱化配置均产生反例。对 549 个公开 Skill、4,872 个唯一文件的词法审计发现 67 个越界链接,且没有根 Skill 声明 frontmatter dependencies 字段。证据来自单篇论文与作者实现,尚无跨运行时生产验证。

核心创新与差异 ​

原研究贡献。 ClosureBound 的授权单位不是根目录、manifest 或单次工具名,而是当前解析出的类型化传递闭包与规范化外部效果。准备阶段只保留短期 reservation;真正提交前重新解析闭包、状态和 epoch,并以联合 witness 做原子校验。

本站分析。 SkillGuard 约束 manifest 权限,VIGIL 将行为规范编译为轨迹约束。ClosureBound 的独立增量是把“此刻解析出的完整依赖图”和“不同调用路径产生的同一效果”同时纳入授权,并明确 prepare/commit 竞态。首个失效控制是旧授权未绑定实际执行时的能力身份与效果,而不是单一 Skill 内容是否恶意。

威胁模型与攻击链 ​

攻击者可控制 Skill 元数据、指令、文件、递归依赖、包、工具或服务,并可利用浮动版本、符号链接、缓存、惰性加载、Schema 漂移和准备—提交竞态。可信计算基包括授权发行者、解析器、效果规范化器、epoch 服务和线性化提交点。

  1. 用户基于根 Skill 和当前依赖批准一个受限任务。
  2. 依赖或服务在执行前变化,或 Agent 改走可产生同等效果的另一调用表面。
  3. 只检查根签名或工具名的系统会把旧授权转移给新能力。
  4. ClosureBound 在持久化点重新解析闭包并规范化效果;闭包根、状态或效果不一致时拒绝或要求重新授权。

攻击方法与复现材料 ​

以下为本站依据公开机制重构的去武器化生命周期夹具,仅写入本地 Mock ledger:

text
activate skill@1.0 -> dependency helper@1.0
prepare effect = WRITE("fixture-ledger", amount=1, mode="DRY_RUN")
mutate resolver: helper@1.0 -> helper@1.1
commit same surface call
expected = REAUTHORIZE(reason="closure_root_changed")
assert external_target == "local-fixture.invalid"

另一个夹具把 typed API 换成 Shell 适配器,但规范化后仍得到同一 WRITE 效果,预期共享同一效果上限。检测信号包括闭包根变化、依赖 epoch 过期、效果 IR 不一致和 reservation 重放。省略真实支付、消息发送和远程服务配置,避免产生可执行副作用。

实验设计与实际过程 ​

作者用 40 个冻结生命周期夹具覆盖解析、授权、prepare、commit 和 settlement;18 个内核合同及 6 个 mutant 检验绑定与降级条件;有限状态探索覆盖 84,608 个状态和 530,752 条转移。生态审计对 549 个公开 Skill 的 4,872 个唯一文件做词法闭包检查。本站核对论文 HTML,未运行参考实现;论文称提供 provider-free 实现,但 arXiv 页面没有公开专属仓库直链。

关键结果与实际影响 ​

  • 完整配置在给定状态空间内没有声明不变量违规;六个弱化配置都生成 witness,说明版本、epoch、效果路径和提交时复核各自不可随意省略。
  • 526 个带 bundled files 的根 Skill 中,仅 21 个逐字列出所有非 manifest 路径;67 个链接解析到根目录之外;549 个根均未声明 dependencies 字段。
  • 这些审计结果说明保守闭包发现有现实必要性,但不证明 67 个越界链接具有恶意,也不证明 ClosureBound 能自动判断程序等价或远程服务诚实。

防护措施与验证方法 ​

  • 对文件、递归 Skill、包、工具 Schema、模型、服务和效果合同建立带类型边的闭包承诺。
  • 授权绑定完整效果元组、用途、接收者、数据范围、有效期和 epoch,禁止从多个授权拼接字段。
  • 在持久化点重新解析并原子消费 reservation;不确定是否已提交时返回 INDETERMINATE,不能盲目重试。
  • 为不同 API、Shell、浏览器和数据库路径建立可信效果适配器;无法规范化的高风险路径默认拒绝或置于更强沙箱。

局限与待验证问题 ​

安全结论依赖完整依赖发现、完整效果中介、可信新鲜度、规范化正确性、密码学绑定和线性化提交。它不证明任意程序等价,不验证已固定依赖是否善意,也不能识别稳定 URL 背后的未证明服务变化。有限状态模型和词法审计不能替代真实运行时、跨生态互操作、误拒率和性能评测。

参考链接 ​