Files
LangBot/docs/agent-runner-pluginization/SECURITY_HARDENING.md
2026-05-29 21:03:21 +08:00

4.0 KiB
Raw Permalink Blame History

Agent Runner Security Hardening

本文档记录 agent-runner 插件化进入生产发布前需要补齐的安全与稳定加固项。

状态

当前结论:暂不塞进本阶段 agent-runner plugin 协议闭环。

本阶段目标是验证 LangBot 可以通过统一的 run(event, binding) 协议接入 local-agent 与外部 harness runner如 Claude Code runner并能传递事件、上下文、资源句柄、状态和结果流。

安全发布级 hardening 是后续 release gate不应阻塞当前协议闭环但必须作为进入生产默认启用前的验收条件。

责任边界

LangBot Host 负责

  • 资源授权:决定某个 run_id / binding 可以访问哪些模型、RAG、MCP、skill、artifact、history、state。
  • 资源投影:只把授权后的资源句柄、配置片段或上下文文件传给 runner。
  • 路径策略:限制 workspace / context file / artifact 的允许路径和清理策略。
  • Secret 策略:过滤环境变量、配置、日志和 transcript 中的 secret。
  • 运行约束:配置超时、轮次、并发、配额、输出大小和取消路径。
  • 审计记录记录事件、绑定、资源授权、runner 调用、外部 harness session id、关键错误和结果摘要。

Runner Plugin 负责

  • 遵守 LangBot 下发的 binding config、授权资源和运行约束。
  • 将 LangBot 资源投影成目标 runner 可消费的形式,例如 context 文件、MCP 配置、环境变量或 CLI 参数。
  • 不把长期状态保存在插件实例内;需要跨轮次保存的外部 session id / working directory 等状态应写入 host-owned state。
  • 对外部进程做最小必要封装,包括命令参数构造、超时、取消、输出解析和错误映射。

外部 Harness 负责

Claude Code、Codex、Kimi Code 等外部 harness 可以继续使用自身的权限模型、工具 allow / deny 规则、MCP 加载策略、session/resume 机制和沙箱能力。

但外部 harness 不是 LangBot 的唯一安全边界。LangBot 仍必须在调用前完成资源授权、路径限制、secret 过滤和审计记录。

当前 MVP 可接受边界

当前阶段可以接受以下前提:

  • 由可信管理员配置 runner binding。
  • 工作目录和 context 输出目录为显式配置或 host 生成路径。
  • 外部 runner 默认使用保守权限,例如 plan / no-write 模式或禁用高风险工具。
  • 通过 timeout、max turns、输出长度和进程取消降低失控风险。
  • 通过 host-owned state 保存 external.session_idexternal.working_directory 等 resume 所需指针。

这些前提足够做本地 E2E 与协议验收,不等同于生产发布完成。

Release Gate Checklist

进入生产默认启用前,需要补齐:

  • Path isolationworkspace allowlist、路径规范化、防止 .. 逃逸、context / artifact 清理。
  • Permission boundaryrunner 能力声明、binding 级资源授权、run 级权限校验。
  • Secret handling环境变量白名单、配置脱敏、日志和 transcript redaction。
  • MCP policyMCP server allowlist、scoped token、tool allow / deny、危险工具审计。
  • Skill projection policyskill 来源验证、只读投影、版本和摘要记录。
  • Process isolation进程组管理、取消、超时、CPU / 内存 / 输出配额。
  • State lifecyclesession id、workspace、artifact 的过期、清理、迁移和审计。
  • Audit first-class事件、资源授权、外部命令、session id、结果摘要可追踪。
  • UI / Admin control管理员能看到 runner 权限、风险提示、资源绑定和禁用入口。
  • Test matrix路径逃逸、secret 泄漏、权限拒绝、timeout、取消、MCP deny、resume、cleanup、audit 完整性。

非当前范围

以下内容不属于本阶段协议闭环:

  • 完整异步队列与 issue-centric 产品模型。
  • 复杂 workflow engine。
  • Codex / Kimi runner 全量接入。
  • EBA 分支完整迁移和联调。
  • 发布级安全 hardening 的完整实现。