执行前:阻断不安全动作
拦截危险删除、凭据读取、非白名单网络、Shell 二次执行、依赖安装和高风险宿主机命令;解析不清楚时保守 ask / deny。
点击按钮或按 Enter 开始
为 Agent 的命令与代码执行链路建立可配置、可解释、可审计的安全边界:先决策,再执行;运行中限制资源;数据跨边界前脱敏。
01 / WHY IT MATTERS
Agent 工具可以读写文件、访问网络、安装依赖和启动进程。只靠危险字符串黑名单容易被 shell wrapper、变量展开、管道或二级执行器绕过;只靠沙箱也无法统一处理宿主机执行、权限审批、敏感输出和审计。
这项贡献把安全检查放入 tRPC-Agent-Go 的 Permission 执行门:扫描 BeforeTool 处理后的最终参数,只有明确 allow 才调用真实工具。策略、拦截、运行时资源限制、脱敏和审计分别落在各自正确的边界。
02 / DECISION PIPELINE
失败关闭,证据可读,策略可调整;工具调用链每一步都有明确责任边界。
在 BeforeTool callbacks 完成之后读取命令、代码、cwd、环境变量、资源限制、工具元数据与执行后端。
保守解析 Shell 结构,检查危险命令、敏感路径、网络目标、依赖变更、动态代码、超时、输出、并发与宿主机会话风险。
根据可热配置的 YAML / JSON 策略返回 allow、ask 或 deny;只有 allow 能进入 Tool.Call,复核、拒绝或扫描异常均不执行。
对输出实施 UTF-8 安全截断;hostexec 管理 PTY、后台任务、session TTL、超时取消及相关进程清理。
对报告、JSONL 审计、工具结果与 artifact 做脱敏;记录结构化规则命中,并预留低敏感度的 OTel 属性。
03 / THREE SECURITY LAYERS
拦截危险删除、凭据读取、非白名单网络、Shell 二次执行、依赖安装和高风险宿主机命令;解析不清楚时保守 ask / deny。
统一 stdout / stderr 输出上限和截断标记;限制超时、并发与长会话,并清理取消或超时后的 hostexec 子进程。
识别 API Key、Token、密码、Bearer Header 与 PEM 私钥;覆盖报告、审计、工具返回值及提前写入的 artifact。
数据来自项目记录的本地质量语料与基准测试;测试指标描述该样本,不代表对所有命令或运行环境的安全保证。
04 / IMPLEMENTATION
不止新增一个 scanner:规则、调用链、执行器和结果流都需要接到正确的位置。
05 / SECURITY BOUNDARY
静态分析不能证明允许执行的程序运行时可信,也不能提供内核级文件、网络或进程隔离。生产环境仍需组合 Permission、沙箱 / CodeExecutor、资源限制、网络策略、Secret 隔离、进程清理与人工审批。