返回项目档案
OPEN-SOURCE CONTRIBUTIONTRPC-AGENT-GOPR #2383

Tool Execution
Safety Guard

为 Agent 的命令与代码执行链路建立可配置、可解释、可审计的安全边界:先决策,再执行;运行中限制资源;数据跨边界前脱敏。

GOTOOL PERMISSIONSHELL ANALYSISOPEN TELEMETRYDEFENSE IN DEPTH
tRPC-Agent-Go 工具调用的安全扫描、执行与审计时序图
EXECUTION BOUNDARY / FROM TOOL CALL TO REDACTED RESULTPERMISSION IS THE HARD GATE

01 / WHY IT MATTERS

安全判断要发生在
工具真正运行之前。

Agent 工具可以读写文件、访问网络、安装依赖和启动进程。只靠危险字符串黑名单容易被 shell wrapper、变量展开、管道或二级执行器绕过;只靠沙箱也无法统一处理宿主机执行、权限审批、敏感输出和审计。

这项贡献把安全检查放入 tRPC-Agent-Go 的 Permission 执行门:扫描 BeforeTool 处理后的最终参数,只有明确 allow 才调用真实工具。策略、拦截、运行时资源限制、脱敏和审计分别落在各自正确的边界。

02 / DECISION PIPELINE

从参数到安全决策

失败关闭,证据可读,策略可调整;工具调用链每一步都有明确责任边界。

  1. 01

    接收最终工具参数

    在 BeforeTool callbacks 完成之后读取命令、代码、cwd、环境变量、资源限制、工具元数据与执行后端。

  2. 02

    解析并识别风险

    保守解析 Shell 结构,检查危险命令、敏感路径、网络目标、依赖变更、动态代码、超时、输出、并发与宿主机会话风险。

  3. 03

    策略决策与拦截

    根据可热配置的 YAML / JSON 策略返回 allow、ask 或 deny;只有 allow 能进入 Tool.Call,复核、拒绝或扫描异常均不执行。

  4. 04

    执行期约束与清理

    对输出实施 UTF-8 安全截断;hostexec 管理 PTY、后台任务、session TTL、超时取消及相关进程清理。

  5. 05

    脱敏、审计与观测

    对报告、JSONL 审计、工具结果与 artifact 做脱敏;记录结构化规则命中,并预留低敏感度的 OTel 属性。

03 / THREE SECURITY LAYERS

预防、约束、留痕,
不是单点规则扫描。

01

执行前:阻断不安全动作

拦截危险删除、凭据读取、非白名单网络、Shell 二次执行、依赖安装和高风险宿主机命令;解析不清楚时保守 ask / deny。

02

执行中:限制资源与残留

统一 stdout / stderr 输出上限和截断标记;限制超时、并发与长会话,并清理取消或超时后的 hostexec 子进程。

03

执行后:保护信息跨界

识别 API Key、Token、密码、Bearer Header 与 PEM 私钥;覆盖报告、审计、工具返回值及提前写入的 artifact。

13 / 13
补充高风险语料检出
5%
安全命令误报率(1 / 20)
88%+
tool/safety 测试覆盖率
14.4 ms
500 条混合命令扫描

数据来自项目记录的本地质量语料与基准测试;测试指标描述该样本,不代表对所有命令或运行环境的安全保证。

04 / IMPLEMENTATION

工程栈与交付面

不止新增一个 scanner:规则、调用链、执行器和结果流都需要接到正确的位置。

核心实现
Go 1.21 · tRPC-Agent-Go · tool.PermissionPolicy
命令分析
internal/shellsafe · Shell 结构解析 · Python / JS / Go 静态检查
策略与事件
YAML / JSON · JSONL 审计 · OpenTelemetry
执行边界
workspaceexec · hostexec · CodeExecutor(local / container / E2B)
验证
Go test · race · go vet · fuzz / 质量语料 · benchmark

05 / SECURITY BOUNDARY

安全扫描器不是沙箱。

静态分析不能证明允许执行的程序运行时可信,也不能提供内核级文件、网络或进程隔离。生产环境仍需组合 Permission、沙箱 / CodeExecutor、资源限制、网络策略、Secret 隔离、进程清理与人工审批。