安全

Agent NAS 不阻止提示词注入,它限制注入之后的后果:用窄域租约限定一次运行能碰什么,用分支让错误可撤销,用 Rule of Two 阻止读过不可信内容的会话再同时拥有敏感数据与对外通道,并留下可追溯的记录。

v0.2 规范草案 更新于

范围与信任假设

  • 我们保护: NAS 里的数据与历史;授权的边界;记录的完整性;记忆的可追溯性。
  • 我们不保护: 智能体在 NAS 之外的行为;运行计算本身的隔离(那是沙箱的工作);模型提供商那一侧发生的事。
  • 信任假设: 可信计算基(TCB)是 NAS 网关、策略引擎与记录服务;主机没有被攻陷;沙箱负责隔离计算。TCB 被攻陷,本页的保证就失效。

Rule of Two:会话不变量

三个性质:[A] 会话读过不可信内容,[B] 租约允许读敏感数据,[C] 租约允许改变受保护的状态或对外通信。同一会话里三者同时成立时,触发 C 的那次调用不会被自动放行。

场景ABC结果
总结一个网页,写成分支里的笔记是是否(只写分支)自动:分支内的写入不算 C。
读过网页之后,向 main 提议合并是是是Human Gate。
只读公开数据,写临时区是否否自动。
读过外部邮件之后发出邮件(出口)是是是闸门;涉及 secret 则拒绝。

这是 Meta 的 Agents Rule of Two 在存储边界上的实现。Meta 自己强调,它是减轻风险的启发式,不是终点,也不替代最小权限;我们的用法也是如此。机制见 Trust Labels。

威胁模型

威胁NAS 能强制的NAS 做不到的残余风险
T1 间接提示注入(经文件、网页、邮件)Rule of Two;租约限定;分支;闸门。阻止注入发生;阻止注入之后在租约内的恶意行为。租约之内的误用。
T2 凭据泄露(智能体读到长期密钥)长期凭据不在运行手里;密钥扫描器标记 secret;短 TTL。防止智能体把租约内的数据发往已授权的出口。租约内的数据外发。
T3 过宽权限与误操作窄域租约;分支;软删除;快照不在任何租约之内。撤销外部副作用。NAS 之外的后果。
T4 记忆投毒(含跨角色传播)来源与污点;隔离区;已审阅才自动加载;回滚。识别“看起来合理”的错误事实。被审阅者放过的投毒。
T5 租约被窃取或重放短 TTL;可撤销;可选的持有者绑定(DPoP、mTLS)。阻止 TTL 内的滥用。TTL 窗口。
T6 审批疲劳与橡皮图章闸门稀少;NAS 渲染差异;批准绑定摘要;监控批准率。让人认真看。人为失误。
T7 日志篡改哈希链;可选的外部锚定。没有锚定时,防止 root 毁掉日志。恶意的管理员。
T8 数据外泄(出口、共享、搜索结果)出口需要租约动作与闸门;secret 禁止出口;派生物继承标签。防止人批准之后的泄露;隐蔽信道。批准后的泄露。
T9 供应链(技能、MCP 服务器、插件、模型)技能与外部 MCP 的内容视为 external;技能目录可以固定到某个提交;运行时清单写入记录。保证第三方代码无害。被固定下来的恶意版本。
T10 资源耗尽(分支炸弹、预算耗尽、循环读取)配额;TTL;预算;熔断。区分合法的大任务与失控。局部的拒绝服务。

控制措施

  • 策略引擎: 确定性(Cedar 或 Rego 风格),默认拒绝,拒绝时给出可读的原因与命中的规则;不调用 LLM。
  • 凭据代理: 长期密钥只在代理手里;仅在获批的出口动作里为运行铸造短时的下游令牌。
  • 隔离与密钥: 每个角色一个 Home 与路径空间;sensitive 保留类使用单独的密钥域。
  • 供应链: 技能、MCP 服务器与插件的内容视为 external;运行开始时,把使用的技能与版本写入记录。

坦诚的局限

  1. 这不是提示词注入的防御。它限制后果,并让后果可见。
  2. 租约之内的合法权限仍可能被误用。
  3. 对 NAS 之外的副作用无能为力:已经发出的邮件、已经调用的接口。
  4. 隐蔽信道与侧信道不在范围内。
  5. TCB 被攻陷,则保证失效。
  6. 人会犯错:闸门降低但不能消除这种风险。
  7. 污点是保守的,会带来摩擦与误报;需要调参,也需要可见的拒绝原因。
  8. 加密粉碎只保护我们能控制的副本。

事件应对

  • 熔断: revoke_run 与 revoke_role 立即撤销租约并冻结分支。
  • 回滚: 把受影响的树恢复到某个提交。
  • 溯源: 用读清单和记录链找出“这次运行读过什么、写过什么、影响了哪些笔记”。
  • 清理: 用 Cascade Forget 删除受影响的派生物,并出具报告。

可观测性与审计

  • 三类数据: 记录(事件)、读清单(输入集合)、指标与 trace。
  • **explain(commit):** 返回这个提交由哪次运行、哪张租约产生,经过了哪些闸门,读过什么,以及依赖的输入。
  • 与现有观测栈集成: 一次运行对应一个 OpenTelemetry GenAI span,租约与闸门以事件的形式挂在上面;记录可以导出为 JSON Lines,或接入 SIEM。
  • 指标: 租约发放与拒绝率;闸门队列长度、批准率与批准耗时;分支数量与年龄;索引新鲜度;预算消耗;记录链校验结果。
  • 隐私与保留: 默认只记元数据,不记内容;记录的保留与内容的删除各自独立;读取记录本身也需要租约。

引用本页

为读者、搜索引擎和智能体提供稳定的网址与建议的引用格式。

建议引用格式
Agent NAS project. “安全.” agentnas.com, 2026-11-11. https://agentnas.com/zh-cn/security/