跳转到正文

Security Model

kxen 的信任边界、凭证、工具权限、网络检查和恢复保护。

更新于 查看 Markdown

kxen 在用户本机执行模型生成的操作。安全目标不是让模型永不出错,而是让高风险行为在执行层可见、可拒绝和可恢复。

flowchart LR
Intent["模型工具请求"] --> Permission["角色权限"]
Permission --> Safety["Safety 检查"]
Safety -->|"低风险"| Execute["执行"]
Safety -->|"需要确认"| Approval["Approval"]
Approval -->|"允许"| Execute
Approval -->|"拒绝"| Stop["停止"]
Execute --> Recovery["Checkpoint 和事件记录"]

信任边界

边界 规则
Workspace 统一解析相对、绝对和不存在的目标路径
项目配置 未信任 Workspace 不加载项目 TOML
项目 MCP 未信任 Workspace 不加载;stdio 还需独立执行审批
外部文件 需要原生文件选择器授权,授权按路径生效
模型调用 统一经过 MRM 和 Auth store
工具调用 统一经过角色权限、Safety 和 Approval
Bot 执行 固定 revision 和 permission snapshot,不继承 peer 权限
网络请求 URL 与实际连接地址受检,Browser 全流量经过受控代理

凭证

API key 和 OAuth token 保存在本地权限受限文件中。凭证不进入项目 TOML、Session prompt、文档和 Git。

Provider 凭证可以来自官方客户端的本地登录状态或用户显式配置。模型只看到调用结果,不获得原始 secret。

原生文件选择器也不能把 credential 目录或常见 secret 文件授权给 Agent,包括 kxen 数据目录、Keychain、.ssh.gnupg.aws.kube.docker、各类 Agent 配置目录,以及 .p8.p12.pfx 和 keychain 文件。不存在目标通过最近存在父目录完成 canonicalization,符号链接和 .. 不能绕过 Workspace 边界。

最小权限

研究和规划角色默认只读。写文件、执行命令和删除数据需要 execution 权限。MCP 工具还可以逐项配置 allow、ask 或 deny。

Bot capability、Workspace path 和 Connector grant 在 publish 前由 Owner 明确授予。每个 Bot 的 self-builder、Bot Message、CollaborationTask、Memory 和 ArtifactRef 都不能扩大权限。self-builder 只能修改所属 Bot 的 design-time draft,不能执行工具、授权或发布。MCP tool 还需要 exact server grant 和 Connector 的 Workspace binding;Bot 当前不暴露无法按 path grant 完整过滤的 LSP。

Shell 命令在宿主机执行,不宣称提供进程沙盒。kxen 不加载用户 Shell rc 或 alias 快照,并且每条命令和 background task start/restart 都需要显示完整 command 与 cwd 的当次 Approval。拒绝或没有可用 Approval channel 时执行失败关闭。

硬保护

Safety 对系统路径、Credential 目录、Git 元数据、磁盘操作和大范围资源销毁执行硬拒绝。项目 Rules 和用户 Prompt 不能覆盖这些规则。

审批规则(审批卡上的「本会话放行」「总是放行」)只能收窄 Ask 档的逐次询问:Deny 判定先于规则表,含 shell 元字符的复合命令永不自动放行,每次规则放行都先落会话审计再执行。规则可在设置页查看和撤销,全部审批决定在审批审计区块按时间倒序可见。

可恢复性

  • 文件和 Session 删除进入系统废纸篓。
  • Checkpoint 使用独立 shadow Git repository,默认保留最近 50 个(checkpoint_keep 可配置),超出窗口的旧检查点在提交成功后自动裁剪。
  • Rewind 前的现场挂在独立 ref 上作为补偿点,Rewind 后可在 Session 中撤销;撤销只恢复文件,不回写对话记录。
  • Worktree 隔离并行修改;删除仍有未提交改动的 Worktree 前会自动把改动导出为 patch 备份(.agents/kxen/backups/,保留最近 50 个且不超过 30 天),删除后仍可把备份合回主树。
  • Session-scoped Approval 结果写入对应 Session;全局审批不伪造 Session 记录。
  • 用户停止 Session 会使未完成审批失效;审批等待窗口默认 300 秒,approval_timeout_seconds 可配置。
  • BotRun 的 cancellation、tool journal 和 UNKNOWN Recovery 写入独立 durable event stream。

已知边界

Browser 会在初始导航前检查 URL,并把 Chrome 的 HTTP、HTTPS 和 WebSocket 流量固定到进程内代理,不配置 direct fallback。代理对每个导航、redirect、iframe、子资源和脚本请求分别解析域名,拒绝任一受限地址,并只连接本次检查通过的具体地址。HTTPS 保留原始域名的 TLS SNI。请求解析、连接、空闲和流量超过上限时失败关闭。每个非 close 操作后的 top-level URL 复查是额外防线,不承担网络拦截职责。

Remote MCP、Browser automation 和自动知识沉淀仍是实验性能力,个人配置中默认全部关闭,项目配置不能替用户开启。启用后也不能用于无监督处理高敏感数据。

导航

输入关键词以搜索…

↑↓ 移动↵ 打开Esc 关闭