AGI 路线调研终稿 · 2026-09-21 快照
APPENDIX · 安全

APPENDIX_security

六类攻击面 / 最小权限 / 事故响应

个人安全护栏手册(AGI 项目 Round 3)

【统一 header】截至 2026-09-21|海外生态数字;国内分支见各附录相应声明。 本文件为最终交付物四附录之一(统一编号交叉引用):附录 A=生活场景玩法与红线(APPENDIX_scenarios.md)|附录 B=预算选型决策树与成本精算(APPENDIX_cost.md)|附录 C=安全护栏与事故响应(APPENDIX_security.md)|附录 D=三平台(Linux/macOS/Windows)命令等价速查(APPENDIX_platform.md)。主文档与配套:final/MASTER.md、final/ROUTE.md、final/CHECKLIST.md、final/APPENDIX_facts.md(事实核查账本)。 置信度标签沿用项目惯例:一手/双源/单源/低置信;所有带数字结论的验证日期、半衰期与重查时点见各附录"保鲜日历/时效性"节。

本附录定位(附录 C):怎么不出事——六类攻击面、最小权限五件套、渐进三级安全路径(L0→L2)、事故响应手册、红线清单。月预算硬上限的数字口径见附录 B,命令的三平台等价见附录 D。

时间基准:2026-09-21。融合输入:round2/security_redteam.md(全)+ round1/risk_cost.md §8 + round2/redteam_optimism.md fix#3、fix#5。 读者:普通中国大陆个人用户。本文件即最终交付物 final/APPENDIX_security.md附录 C):原则尽量少,动作尽量具体,命令可直接复制;命令的三平台等价见附录 D,月预算数字口径见附录 B §2。 证据纪律:标【实测 2026-09-21】= 本文作者在本机(Kali Linux,root)跑过的命令;标【转述】= 来自 round1/round2 报告的文献综合(原文含来源与置信度);未实测且无法实测的明确标注。


0. 三句话总纲(先背下来)

  1. 假设注入必然发生。 Prompt injection 在模型层无解(OpenAI 官方承认"可能永远无法完全解决";自适应攻击绕过全部 12 种已发表防御 >90%),一切依赖"模型自己拒绝"的防御都不可靠。防御必须放在模型外:权限、沙箱、网络、审计。【转述,round2 §1】
  2. 防御目标不是"不被打中",而是"打中了损失封顶"。 爆炸半径压到:单次任务、单把临时 key、单个任务目录、白名单内单域名。任何一层被穿透,损失都是"这一格"的量级。【转述,round2 §7.1 ⑤】
  3. 致命三要素(lethal trifecta)永不同时给一个 agent: ①可读私密数据(文件/key/记忆) ②暴露于不可信内容(网页/邮件/文档) ③能对外通信。三者任一单独存在都可防;三者同时成立,攻击只是时间问题。配权限时先问:这个 agent 需要三要素里的哪几个?能砍掉哪个?【转述,Simon Willison,round2 双引擎交叉】

1. 你在防什么:六类攻击面速览

详细攻击方式、真实案例、量化数据见 round2/security_redteam.md §2,此处只保留"一句话 + 你的第一道防御"。

# 攻击 一句话 真实案例(金额/CVE) 你的第一道防御
A1 间接注入 agent 读到的任何外部内容(网页/邮件/PDF/PR 标题)都可能携带指令 EchoLeak CVE-2025-32711(CVSS 9.3,一封邮件零点击外泄);GitHub PR 标题同时劫持三家 coding agent 砍三要素:读不可信内容的 agent 只给只读、不给外网
A2 MCP 工具投毒 工具的"描述文字"被原样注入模型,你批准时看到的和模型读到的是两回事;已装 server 还会被静默改定义(rug pull) MCPoison CVE-2025-54136;MCPTox 基准平均成功率 36.5% 装得少 + 只装官方 vendor 第一方 + 装前读完整描述 + 描述 hash 存档
A3 凭证泄露 agent 日志/context 里的 key 会被注入提取 METR 事件:注入后 agent 主动交出 API key,烧掉 $600K 赠金 主 key 永不进 agent;per-task 临时 key + gitleaks 扫日志
A4 自动化误操作 不是攻击,是 agent 自己搞砸:重试重复扣款、失控烧钱、"说做完了其实没做" $4,200/63h runaway agent;547 起真实失败里 59.6% 高危 幂等键 + 预算四维硬停 + 交付必须附机器可验证据
A5 记忆/RAG 投毒 记忆库被写入一次,攻击指令每次会话自动复活;长期记忆 = 投毒的持久化通道 MINJA(NeurIPS 2025):仅靠提问就能写入记忆且重启存活 记忆库当"攻击者可写":git 版本化 + 来源标签 + 每周 diff 抽读
A6 供应链投毒 你升级的动作本身就是攻击入口(升级后的版本开始偷数据) Postmark-mcp:恶意版本 BCC 密送全部邮件,43.7 万环境受影响 锁版本 + 升级前看 diff + 最小安装面(能不装就不装)

一条判断规则:round1 推荐的最终方案(多级 agent + MCP + 24/7 gateway)恰好是攻击面最重的组合。所以下面两章不是"可选项",是这个方案的出厂前提


2. 最小权限五件套

总纲:Docker 默认配置不是沙箱——普通容器离宿主沦陷只隔一个系统调用(gVisor 官方安全模型原话)。五件套按"个人可承担成本"排序,每件都是免费开源件。

2.1 第一件:Docker 沙箱隔离(Docker/Qdrant 三平台安装见附录 D §1.6)

每任务一次性容器模板(默认断网 + 只读根 + 资源顶格):

docker run --rm \
  --network none \                        # 完全断网【实测 2026-09-21:容器内 wget 报 bad address,真无出站】
  --memory 512m --cpus 0.5 --pids-limit 64 \
  --security-opt no-new-privileges \
  --read-only \
  --cap-drop ALL \
  -v "$PWD/workspace:/workspace" \        # 只挂任务目录,绝不挂 ~ 本身
  python:3.11-slim python /workspace/task.py

需要联网取数时:单独起一个容器走 egress 白名单代理(tinyproxy/squid,allowlist 只放模型 API 端点 + 你点名的域名),而不是给主容器开网。代码层"自觉不发请求"不算防御。

隔离强度阶梯(按信任度选档): - 你亲自审过的可信脚本 → 普通容器(上面模板去掉 --runtime=runsc) - agent 生成的代码 / 混合信任 → gVisor(runsc):用户态内核拦截 syscall,个人日常推荐档。注意:runsc 不在 Debian/Kali 默认仓库,需按 gVisor 官方文档(gvisor.dev/docs)加源安装,安装会改 docker 配置——生产机上装之前先在备用机演练。round2 原文写的 apt-get install -y runsc 一行在默认源上跑不通,此处修正。【转述 + 修正,未实测】 - 完全不受信代码/第三方 agent → Firecracker/Kata microVM 或云沙箱(E2B/Modal/Daytona)

五条铁律(每条背后都是真实事故): 1. 永不把 docker socket 挂进 agent 容器-v /var/run/docker.sock:...)= 完整沙箱逃逸。Codex/Cursor/Gemini CLI 三家官方沙箱被同一手法击穿(Pillar Security 2026-07)。 2. 云凭证文件永不进沙箱~/.aws~/.kube~/.docker/config.json.env 不出现在容器内。 3. --network none 是唯一可靠起点;联网容器单独起、走白名单代理(按"目标域名+动作"白名单,不只按端口——Postmark 案例的恶意流量走的就是正常 443 端口)。 4. MCP server 容器 = agent 同级隔离:每个 stdio MCP server 都是"以你用户权限跑的不信任代码",沙箱待遇相同。 5. 沙箱/权限配置 agent 自己改不了:CLAUDE.md、AGENTS.md、permissions 文件 root 属主 + 只读挂载,agent 会话内可读不可写。

本机验证状态--network none 断网已实测;runsc 未实测(生产机禁装),照抄前须在备用机验证。

2.2 第二件:权限白名单(deny-by-default)

白名单内容 个人实现
工具层 每工具允许的命令/域名/路径/操作 Claude Code permissions.allow/deny;Hermes permissions
MCP 层 server 白名单 + 每工具单独 scope 只装官方 vendor server;每 server 独立配置文件(便于 diff 审计)
系统层 文件路径/网络域名/systemd 资源限制 AppArmor profile + systemd-run --scope -p MemoryMax=2G【实测 2026-09-21 可用】

关键设计(红队强调的三条): - 写操作工具必须参数受限,不是开关受限。 允许"用 SQL 工具"不够,注入后 agent 仍能跑任意 SQL;正确粒度是"只允许调用 weekly_report_query 这一个预定义查询"——把动作模板化,注入就没有动作可改。 - 委托链降权:子 agent 权限 ≤ 父 agent;每个 subagent 单独配 permissions,默认继承"只读"。 - 每任务临时 key:最小 scope、最短有效期、独立额度、跑完即吊销。主 key 被提取的灾难变成"一次性 key 被提取,损失封顶"。

2.3 第三件:审计日志(JSONL,append-only)

原则:日志必须 agent 改不了,否则不算审计——被注入的 agent 第一件事就是抹自己的日志。

# 1) 结构化 JSONL 追加日志:时间 / 工具 / 参数摘要 / 结果摘要 / 审批人 / token 数
#    (字段对齐 OTel GenAI 语义约定,将来可无缝接 Langfuse/Phoenix)
# 2) append-only:进程只能追加,不能改不能删【实测 2026-09-21:追加 OK,覆盖/删除报 Operation not permitted】
sudo chattr +a /var/log/agent-audit.jsonl
#    注意:chattr 只在 ext4 等文件系统有效,btrfs/tmpfs 上会报错;解开用 chattr -a
# 3) 异机副本:每周 rsync 到另一台机器/对象存储(防"本机被完全控制")【实测 2026-09-21:rsync 在本机可用】
rsync -a /var/log/agent-audit.jsonl backup-host:/backups/agent/
# 4) journalctl 作为系统层兜底(systemd 单元跑的 agent 天然有)
journalctl -u agent-gateway --since "1 hour ago" | grep -i "tool_call"

审计里必须看的三个确定性告警(不是"记了就完")——三个都是正则/hash,不是模型,零误报担忧,Telegram 推送到你手机: 1. 敏感路径读取告警:tool call 参数出现 ~/.ssh.envid_rsacredentials → 立即推送。这是 A2/A3 类攻击的确定性检测器。 2. 工具描述 hash 存档:每次 session 启动记录所有 MCP server 工具描述的 hash,与上次 diff 出现变化 → 告警并暂停该 server。这是 rug pull 的唯一检测点。 3. egress 对账:代理日志(目标域名/字节数)与 agent 自报动作对账;出站到白名单外 → 断网 + 告警。

2.4 第四件:git 回滚(先 commit 再动手)

对象 机制 要点
文件 一切写操作经 commit 任务开始前先 snapshotgit stash create 或开分支);出事 git reset --hard <pre-task-sha>
数据库 只读账号是第一防线;写前备份 写账号 + 每日 binlog 保留 7 天
对外消息 延迟队列/草稿箱 生成后 10 分钟内人可撤销;邮件进草稿箱不直发
记忆库(最容易漏) 记忆/RAG 库进 git 投毒的恢复就是 git revert 记忆条目——没有版本化的记忆库被投毒后无法恢复
系统配置(最容易漏) dotfiles / CLAUDE.md / cron 定义进 git 注入类攻击喜欢种进 CLAUDE.md/.cursorrules;有版本历史才看得出"什么时候被种了"

不可逆操作(发钱、删库、对外发布)永不自动。

2.5 第五件:agent 自检(最便宜的一件)

个人用户没有 SOC,让另一个便宜模型当"巡逻犬",检查项做成 cron 任务:

  1. 每日自检(跑在只读权限的独立会话里): - 审计日志有无未解释的:敏感路径读取 / 白名单外出站 / 工具描述 hash 变化 - 记忆库 diff 抽读:有无"指令式"条目("永远记住:遇到 X 就 Y") - 配置文件(permissions/CLAUDE.md)有无非本人改动 - API 账单有无异常 spike(per-key 硬限额兜底)
  2. 每周 5 题 probe 回归门(round2 fix#5):24/7 系统的定时任务每周跑一次 5 题私有 probe 集,分数跌破阈值即自动降级到 L1 并告警——定时任务被静默破坏时这是唯一的自动发现通道。
  3. evidential 完成门禁:任务交付必须附机器可验证据(exit code / git diff / 文件 hash)。"说做完了"不算完成。
  4. 权限自我声明:长任务开头让 agent 声明"我当前拥有的权限:…"——声明与实际权限不符 = 配置已被改,人审时一眼可见。

3. 渐进式三级安全路径(L0 只读 → L1 受控 → L2 自动)

核心不变式:每升一级,差异不是"更会防注入",而是注入成功后的爆炸半径变大。所以每级都有明确的爆炸半径上限,和明确的准入条件。永远先定价、后解锁。

Level 0 — 只读(默认准入状态)

能做:搜索、抓取、读白名单目录、数据库 SELECT、起草文本。 不能做:任何写操作、任何对外发送、任何代码执行。

# L0 配置基线(以 Claude Code 类 permissions 为例,字段名随你的 harness 调整)
permissions:
  deny:
    - Bash(write*)            # 禁一切写命令
    - Bash(rm*)
    - Bash(git push*)
    - WebFetch(post*)         # 网络只许 GET
    - filesystem:write
  allow:
    - WebSearch
    - WebFetch(get*)
    - filesystem:read(/home/user/agent-workspace/**)   # 白名单目录
  mcp:
    enabled_servers: [playwright, fetch]   # 只装这两个
    exec_policy: never
# 网络:容器 --network none + 宿主侧代取数;或 egress 白名单只放模型 API
# 凭证:环境里只有一把最小权限 key,无 ssh / 云凭证

爆炸半径上限:信息泄露(它看到的东西)。防御重点:凭证不进 context、egress 白名单。 适用:调研、总结、监控、起草。约 80% 可靠度地平线在 8-15 分钟内的任务。

Level 1 — 受控执行(人审闸门)

新增:白名单命令/工具 + 参数校验 + 每次写操作人审(dry-run 默认)。在 L0 基线上追加:

permissions:
  allow:
    - Bash(python /workspace/scripts/*)      # 命令模板化,不是裸 Bash
    - filesystem:write(/workspace/output/**)
    - email:send_draft                       # 只能进草稿箱,不能直发
  approval:
    required_for: [write, email, payment, delete, publish]   # 不可逆操作枚举
    mode: per_action          # 每步人审;高频低危动作走 batch 审批防疲劳
mcp:
  enabled_servers: [playwright, fetch, filesystem, github]
  tool_scope: per_tool        # 每工具单独 scope

关键动作: - 写操作一律先出 diff 再问人;高危审批聚批处理(防审批疲劳——审批量必须低到人真的会看,否则人审名存实亡)。 - N8N/定时流程走"仅草稿"旁路先跑两周,验收后再切真发。 - 断路器上线:per-trace 成本上限(正常运行 p95 的 5-10 倍)+ 步数上限 + 幂等键。

爆炸半径上限:单次被批准的错误操作。此级主要剩余风险是 A4 误操作,不是注入(骗过每步人审闸门难一个量级)。

Level 2 — 自动执行(围栏内自治)

新增:容器/VM 隔离内自动执行、定时任务、抽样人审。

准入条件: - L0→L1:近 30 天只读任务零事故 + 审计日志能完整重放任一任务。 - L1→L2:近 60 天受控任务审批通过率 >95% 且零高危误批 + 有已验证的回滚演练记录 + 断路器实测触发过至少一次(故意测的)。

runtime:
  isolation: gvisor            # 所有执行进 2.1 容器模板
  egress: proxy-allowlist      # 白名单代理 + 出站对账
  memory_isolation: true       # 记忆库 git 化 + 来源标签
automation:
  scheduler: systemd timer / hermes cron(模型 pin 固定,防静默换模型)
  budget: {max_steps: 50, max_minutes: 30, max_cost_usd: 2.0}   # 预算四维
  circuit_breaker: {same_action_max: 3, on_trip: kill+alert}
  approval:
    mode: sampled              # 抽样人审 10%
    irreversible: [payment, delete, publish]   # 这三类永远 100% 人审,不上抽样
delegation:
  subagent_max_permission: parent   # 委托链降权

爆炸半径上限:围栏内的累积损失——预算四维 + egress 白名单 + 幂等写入 + 时间/金额上限封顶。此级头号新风险是 A5 记忆投毒(自动化 = 注入指令的复读机,被污染的 cron 指令每 30 分钟重读一次),记忆库版本化 + 每周 diff 是硬门槛。

升级 / 降级操作

  • 升级:满足准入条件 → 改配置 → 跑一次真实事故演练(故意喂一个坏页面 / 故意触发断路器)→ 演练通过才生效。
  • 降级(任何时候无门槛,且必须一键完成)bash cp permissions.L1.yaml permissions.yaml && systemctl restart agent-gateway 降级流程复杂 = 事故时会舍不得降。
  • 自动降级触发器(写进 cron 自检):probe 回归分跌破阈值、审计告警连续 2 天、账单 spike——任一命中即自动降一级并推送告警,人来决定何时升回。

4. 事故响应手册(检测 → 阻断 → 取证 → 恢复 → 复盘)

口诀:"the prompt is the cause but the tool call is the crime scene"——你围堵的是 agent 的 reach(工具/凭证/网络),不是它说的话。

4.0 事前准备(出事前必须就位,半天搞完)

  1. kill switch 一键脚本(提前写好 + 演练过,放 ~/bin/agent-killswitch.sh,chmod 700): bash #!/bin/bash # 0-2 分钟内完成 systemctl stop agent-gateway agent-cron.timer # 1. 停 agent 与定时器 hermes cron pause-all 2>/dev/null # 2. 停 cron(平台命令各异) ~/.agent/bin/revoke-all-keys.sh # 3. 吊销全部 agent key(预设脚本) docker ps -q --filter label=agent-sandbox | xargs -r docker kill # 4. 杀沙箱容器 iptables -A OUTPUT -m owner --uid-owner agent -j DROP # 5. UID 级断网兜底 cp /var/log/agent-audit.jsonl ~/incident-$(date +%s)/ # 6. 留证,再动任何配置 ⚠️ 注意:--uid-owner 需要 iptables owner match 模块,部分内核默认不可用(round2 自认盲点);且给 agent 单独 UID 需要在部署时规划。此脚本写好后必须本机演练一次——没演练过的 kill switch = 没有 kill switch。
  2. 凭证台账:每把 key 的 scope / 限额 / 最后轮换日期记半页纸。出事 30 秒内知道吊销什么。
  3. 日志保留 ≥30 天(取证最低要求)。
  4. 恢复介质:备份恢复流程完整演练过一次(没演练过的备份 = 没有备份)。
  5. 分级响应表:低危=记日志观察 → 中=收权 → 中高=暂停 → 高=kill switch + 吊销凭证。不是每次都拔总闸,但三种症状无条件立即 kill switch:正在外泄数据 / 目标被劫持(goal hijacking)/ 批量影响(资金、大规模对外消息)
  6. 记账机制:每个 tool call 有结构化日志(§2.3),事故时间线才可能重建。

4.1 检测(症状 → 判定)

信号族 具体症状 对应攻击面
工具调用异常 从不用的工具突然被调;调用序列漂移;高危工具(delete/admin/send/execute)首次出现 A2 / A1
数据访问异常 敏感路径读取(~/.ssh / .env);大批量分页读取 A3 / A5
出站异常 白名单外域名/IP;Base64 大 payload 外发;DNS 查询量异常(四层隔离后残余 ~2% 风险:DNS tunneling) A1 / A6
身份/账单异常 API 账单 spike;token 用量突变;同一 key 多地并发 A3 已泄
输出异常 "任务完成"但无机器可验证据;输出风格突变(persona 被劫持) A4 / A1

个人检测实现 = §2.3 三个确定性告警 + healthchecks.io/Uptime-Kuma 心跳兜底。

4.2 阻断(前 15 分钟,按优先级)

  1. 吊销 agent 全部工具凭证(token/OAuth/key)——单杠杆最高的动作。无有效 token 的 agent 无法调工具、读数据、外发。在 issuer 侧(厂商控制台)吊销,不是改本地配置——本机被控时本地配置不可信。
  2. 停 cron/heartbeat + 杀容器:定时器是被注入指令的复读机,先停;容器 kill 前docker commit 留证(见 4.3)。
  3. 断网:iptables UID 级 DROP,或防火墙 deny 攻击者 IP。
  4. 降级到 L1/L0:一键降级(§3 末尾)。graded containment:别因响应动作本身毁掉数据——中途杀数据库事务可能造成损坏,先让 in-flight 事务收尾。
  5. 阻断升级路径:多 agent 场景立即隔离受染 agent 的下游(被染 agent 会把污染状态传给同伴——只停一个进程不算遏制)。

4.3 取证(阻断后 1-4 小时内,别删任何东西)

  • 保留现场:docker commit <container> forensic-snapshotcp -a 审计日志/会话日志/工具调用记录到 incident 目录(日志轮转前抢拷)。
  • 时间线重建:从最早异常事件回溯,每个 tool call 的参数与结果;定位注入载体(用户消息 / 工具返回 / 检索文档 / 记忆条目 / 工具描述,五选一)。
  • 回答三个判定问题:①注入是直接还是间接?载体是什么?②哪些工具被调、哪些数据被读、是否已有数据出网(egress 对账日志)?③污染是否持久化(记忆/RAG/配置文件)——持久化了就必须走 4.4 的重建而非清理。

4.4 清除与恢复

  1. 吊销 ≠ 清除:轮换所有被波及凭证——不止 agent 自己的,是它读到过的一切(vault、云、邮箱 OAuth)。vault 批量 rotate。
  2. 清除持久化:投毒记忆条目 git revert;被种配置(CLAUDE.md/.cursorrules/cron)对照 git 历史还原;被深度污染的记忆库直接从干净备份重建,比逐条洗更可靠。
  3. 恢复上线:修好的配置先在 L1 人审模式跑 24-48h 监控,再回 L2。
  4. 外部系统对账:agent 有过写权限的所有外部系统(邮箱/仓库/云)逐个人工核对——AI 已发送的内容不可撤回,重复扣款要主动补偿。

4.5 复盘与降级

  • 四问:哪条控制失效了?为什么没在检测层先发现?哪条白名单过宽?这次事故改写哪条规则?
  • 任何事故 → 降一级 → 补控制 → 重新计时(升级准入条件重走)。
  • 每次事故至少新增一条确定性检测器,写进 §2.5 自检清单——这是个人版"组织学习"。
  • 每季度一次演练:故意注入一个坏页面走完全流程 + 吊销一把 key 计时恢复。

4.6 速查卡(打印贴墙版)

【发现 agent 行为异常 / 账单飙升 / 收到敏感路径告警】
1. systemctl stop agent-gateway && systemctl stop agent-cron.timer   (停)
2. 厂商控制台吊销 agent 全部 API key                                  (断腕)
3. iptables 出站断网 + kill 沙箱容器(先 docker commit 留证)          (围困)
4. cp 审计日志到 incident 目录,不删任何东西                           (留证)
5. git diff 配置文件 + 记忆库,找注入载体与污染范围                    (定位)
6. 轮换被波及凭证 → 从干净备份恢复 → L1 人审模式跑 48h                (恢复)
7. 写事故记录,新增一条检测规则,升级条件重新计时                      (复盘)

5. 红线清单(打印贴墙,任何一条都不许破)

权限红线: 1. 支付/转账/下单永不自动——无论流程多成熟。 2. 对外发布(发邮件/发帖/群发)永不自动,邮件只进草稿箱。 3. 删除/覆盖不可再生数据永不自动。 4. docker socket 永不进 agent 容器;云凭证文件永不进沙箱。 5. 主 key 永不进 agent context;每任务一把临时 key,跑完即吊销。 6. agent 永不修改自己的权限/沙箱/审批配置。 7. 致命三要素永不在同一 agent 进程内重合(配权限时先砍一个)。

运维红线: 8. 沙箱内默认断网;联网容器单独起、走白名单代理。 9. 记忆库/RAG 库必须 git 版本化 + 来源标签;未版本化的记忆库不许上线 L2。 10. 审计日志 append-only(chattr +a)+ 每周异机副本;agent 改不了的日志才算审计。 11. 新 MCP server 装前人工读完整工具描述;装后描述 hash 存档,变更即停用。 12. 版本锁定 + 升级前看 diff;一次性大版本升级隔离环境先跑。

行为红线: 13. 资金/对外/删除三类操作在 L2 也不上抽样人审,永远 100% 人审。 14. 交付必须附机器可验证据(exit code/diff/hash);"说做完了"不算完成。 15. 出事故必降级、必复盘、必新增一条检测规则,升级条件重新计时。

成本红线(融合 round1/risk_cost §8"不烧钱";四档预算与月账单精算见附录 B): 16. 月预算硬上限 $60(主力订阅 $20 + 按量 API $15 + 实验 $10 + 本地电费 $10-30,仅当已有 GPU/Mac);超支先查长上下文与循环调用。 17. 每把 API key 设月度硬限额;per-trace 成本上限 = 正常 p95 的 5-10 倍。 18. 429 重试必须带 backoff 上限——失控重试烧过 $4,200/63h。

合规红线: 19. 生产服务器上不动 systemd 服务/端口/防火墙/系统配置(本 BRIEF 红线,同样适用于 agent 的每一级)。 20. API 数据默认进厂商训练管道(OpenAI 一直如此;Anthropic 2026-06 起):评测集与私密任务走 API 前先开 opt-out;关键产物先落本地文件再进对话。


6. 与 round1 §8 应急手册的衔接(修正后)

round1/risk_cost §8"不出事"五条按 redteam_optimism fix#3 修正如下(原 J1/J2/J3/J5 判定 absorbed):

事故 修正后动作(5 分钟内)
API key 泄漏 厂商控制台吊销 → 检查账单 → 换新 key。工单只用于数据导出,不作为申诉主路径。
账号被封 有本地底牌(GPU/Mac + 已验证本地栈):切本地模型 → 用评测集验证能力损失范围 → 继续运转。无本地底牌:切备份厂商(备份 key 需每月活体验证一次——连坐封号是真实风险,平时不用等于没有)→ 重建 prompt → 明确接受"能力暂时降级",无兜底。
账单暴增 先查 reasoning 失控 / 长上下文复利 / 循环调用 → per-key 月限额兜底 → 超限即吊销。
疑似注入 §4.2 阻断流程:断网/吊销工具权限 → 查 agent 最近写操作 → git 回滚文件 → 按速查卡走。
模型突然弃用 查厂商 deprecation 页(OpenAI GA 模型 6 个月通知、preview 约 2 周;Anthropic 60 天)→ 切同级替代 → 用评测集验证输出质量。
数据备份 关键产物即时本地化:所有重要产出先写本地文件再进对话(这是工作流设计,不是备份);对话历史每周手动导出 zip + 月度抽查可读性(无导出 API,"cron + 一行命令"不成立,fix#5 修正)。

预算表的一个诚实缺口(round2 J3):$60 月预算的"本地电费"一行假设你已有 GPU/Mac。无硬件用户接受"封号 = 能力暂时降级",或一次性投入 ¥5,000+(round1 D 域方案 B)补上底牌——应急手册的适用人群必须与预算表一致


7. 时效性与维护

  • 稳定(≥3 年):三要素模型、最小权限/审计/回滚原则、事故响应骨架、Linux 沙箱原语。这些不用担心。
  • 半衰期 6-12 个月:MCP CVE 数字、OWASP Top 10 条目号、mcp-scan 类工具、沙箱产品价目。本文安全附录每季重跑检索(round2 开放问题 #8)。
  • 半衰期 ~3 个月:具体 CVE、benchmark 数字、各厂商 agent 安全功能细节。
  • 新手验收三动作(round2 开放问题 #10):走完全流程时必须能独立完成"装前人工审查工具描述"、"每月审计回看"、"季度演练"——做不到就再降维。
  • 本文零实测声明(继承 round2 自我锐评 #1):除标注【实测 2026-09-21】的 4 组命令外,docker runsc 模板、iptables 规则、egress 代理架构均为文献综合;照抄前必须本机/备用机验证,尤其 iptables owner match 与 runsc 安装两项。

手册完 | 融合:round2/security_redteam(全)+ round1/risk_cost §8 + round2/redteam_optimism fix#3、fix#5 | 2026-09-21 命令核实:--network none / chattr +a / rsync / systemd unit 均本机实测通过(详见 §2.1、§2.3 标注)