章节摘要:沙箱框住了「能碰到什么」,还剩两个问题:哪些命令根本不该执行(权限),以及出事后如何知道发生过什么(审计)。本章不重讲原理——权限与审批门的设计原理在《Harness 工程:从零打造智能体运行环境》第 5 章有完整论述——而是专注「落位」:把 allowlist 从一张平面名单升级为带粒度层级的策略(精确匹配、子命令匹配、模式匹配各有陷阱),把路径作用域做成路径收敛建模,把审批门接进网关流程,让 deny 与 needs_approval 成为两个不同的出口。审计侧给出事件 schema、JSONL 落盘与哈希链防篡改的最小审计器 auditor.py,以及「时间线重建、重放对照、指标统计」三层回放思路。至此三层防线全部落地,并为第 4 章供应链事件取证与第 6 章红队演练预埋了判据。
一条命令在权限与审计体系中的旅程(接第 2.3 节网关) 命令 ──▶ ┌─ 策略评估 ──────────────────────────┐ │ 精确/子命令/模式 三级匹配 + 路径作用域 │ └───┬──────────┬──────────┬───────────┘ allow │ deny │ unsure │ ▼ ▼ ▼ 直接执行 拒绝并落审计 needs_approval ──▶ 人确认 ──▶ 再执行 │ │ │ ▼ ▼ ▼ ┌────────── 审计事件(JSONL + 哈希链)──────────┐ │ 请求 / 决策 / 执行 / 结果,全量落盘、可验证、可回放 │ └───────────────────────────────────────────┘
一句话金句:白名单决定 Agent 的自由度,审计日志决定你的追责权。
(文字流程图)每个决策点都发事件:request ──▶ decision ──▶ approval ──▶ result,串成一条可回放、可验证的执行史。
┌──────────────────────────┐ ┌──────────────────────────┐ │ 3.1 allowlist 与审批门落位 │ │ 3.2 审计日志与回放 │ │ 事前:决定「能不能做」 │ ────▶ │ 事后:记录「做了什么」 │ │ 策略粒度 + 路径作用域 + 审批 │ │ schema + 哈希链 + 回放 │ └────────────┬─────────────┘ └────────────┬─────────────┘ │ 每个决策点都发审计事件 │ 判据供红队与取证用 └──────────────────┬──────────────────┘ ▼ 第 4 章 供应链治理(事件取证从这里开始) 第 6 章 红队自测(演练判据从这里来)