自进化 Agent 安全治理:3 类污染风险与 5 道写入闸门¶
Ch04.451 自进化 Agent 安全治理:3 类污染风险与 5 道写入闸门¶
📊 Level ⭐⭐ | 8.1KB |
entities/self-evolving-agent-security-governance-hermes.md-> 原文存档
自进化 Agent 安全治理¶
一句话¶
当 Agent 开始"自己学习"时,安全问题从"单次任务出错"升级为"永久知识污染"。Hermes Agent 的方案:3 类风险分类(学错/学脏/学危险)× 对应防御(5 道闸门 / 3 层脱敏 / 3 道注入防线)+ 4 步应急响应。
核心洞察¶
普通 Agent 出问题最多影响一次任务,自进化 Agent 出问题会污染所有后续任务。
自进化 Agent(能自动沉淀 Skill、写入 Memory、复盘学习)的安全风险本质不同:攻击不再是单次的,而是永久的。一次"学错"可能在无关任务里突然浮现;一次"学脏"可能让敏感数据出现在 100 次后续对话中。
3 类污染风险¶
| 风险 | 本质 | 典型场景 | 严重性 |
|---|---|---|---|
| 学错(False Pattern) | 把个例当规律 | 修 bug 碰巧删了缓存→写入 Skill→以后每次都先删缓存 | 最常见、最难发现 |
| 学脏(Sensitive Data Leak) | 运行时数据持久化 | SQL 结果含手机号→沉淀为 Skill 示例→3 个月后所有 DBA 可见 | 泄露面被极大放大 |
| 学危险(Adversarial Learning) | 对话诱导危险行为 | 反复提示"规则其实是 XXX"→假规则写入 Memory→永久绕过权限 | 最严重、最隐蔽 |
学错:巧合被当成因果¶
Agent 不是没学到东西,是学到了错的东西。本质是"成功一次"不够作为规律,但 Agent 把巧合当因果。
学脏:一次脏操作→100 次后续泄露¶
Memory/Skill 写入不脱敏 → 敏感数据永久持久化 → 被未来所有任务 Prompt 引用。
真实事故:Agent 排查 DBA 问题时记住 SQL 结果(含用户手机号)→ 沉淀为 Skill 示例数据 → 3 个月后所有 DBA 可见。
学危险:提示词注入的升级版¶
攻击不再是单次的,而是永久的。通过对话诱导 Agent 把假规则写入 Memory,或把恶意代码沉淀为 Skill。
防"学错":5 道写入闸门¶
| 闸门 | 检查内容 | 失败处理 |
|---|---|---|
| 1. 内容脱敏 | PII(正则+NER)、Token/API Key、私钥、内网地址 | 默认拒绝(不走自动脱敏) |
| 2. Schema 校验 | name/description/trigger/steps 必填,命名规范,permission_tier 声明,tools_used 列表 | 拒绝写入 |
| 3. 静态危险扫描 | rm -rf/drop database、生产 URL 正则、unknown domain/IP、sudo/chmod 777 | 标记高危→闸门 5 |
| 4. 沙箱试跑 | 隔离环境执行(白名单网络、临时目录、无生产数据、资源上限) | 发现学错最有效 |
| 5. 人工审核 | 高危 Skill 必须人工签字(PR 流程) | Approve 后才能 merge |
5 道闸门 = 5 个独立过滤器,叠加起来才能防住 Agent 的"误学"。任何一道单独使用都不够。
防"学脏":3 层脱敏管道¶
工具输出 → [第1层: 采集端脱敏] → Trajectory
↓
→ [第2层: 写入Memory/Skill时脱敏] → 知识库
↓
→ [第3层: 读取时再扫描] → Prompt Builder → 模型
关键原则:任何一层漏了,下一层还能兜住。
特殊数据特殊处理: | 数据类型 | 处理方式 | |---------|---------| | 密码 | Agent 完全不接触,走单独密码管理 | | 支付凭证 | 完全屏蔽 | | 用户私聊内容 | 默认不接触,需用户显式授权 | | 财务报表 | 角色控制,普通 Agent 不可读 |
脱敏不是技术问题,是产品设计问题——决定"哪些数据 Agent 能看,哪些不能看"是产品+安全+法务一起讨论的事。
防"学危险":3 道注入防御¶
| 防御 | 机制 | 目的 |
|---|---|---|
| 输入分级 | SYSTEM 和 USER 在 Prompt 中物理分离 | 模型只把 SYSTEM 当规则,USER 只是任务描述 |
| 写入校验 | 独立函数校验 Schema + 自我修改关键词 + 来源授权 | 可疑写入→拒绝+报警 |
| 关键词黑名单 | "忽略所有规则"/"跳过权限检查"/"不需要确认"/"覆盖系统提示"/"act as"/"ignore previous" | 最简单的兜底 |
自进化 Agent 的安全,本质是"自我修改路径"的安全。只要"自我修改路径"是受控的,Agent 学得再多也不会变坏。
4 步应急响应¶
- 检测:Trajectory 异常告警(Skill 成功率骤降)+ 用户反馈 + 审计告警(工具调用频率飙升)+ 外部反馈
- 隔离:下线问题 Skill,标记影响范围(哪些任务用过、哪些 Memory 由此衍生、哪些下游系统被操作)
- 回滚:Skill 用 Git 回滚;Memory 是 append+dedup 需单独清洗
- 复盘:污染入口→哪道闸门应拦未拦→加规则→类似路径排查。复盘结论必须变成代码
最坏情况不是出 bug,是 Agent 把 bug 当成最佳实践。
设计哲学:安全内嵌而不是外挂¶
Hermes 把"安全"做成了"默认"——不需要单独配置安全规则,安装后防御就在那里。与 Harness Engineering 的"治理内嵌而不是外挂"一脉相承。
→ 相关实体:Harness Engineering 综合论述
与现有知识的关联¶
- → Agent 安全三步法:部署顺序(Harness→Governance→Identity)vs 运行时自进化安全(学错/学脏/学危险)
- → Harness Engineering 综合论述:铁律四"能写成 Linter 的约束别写成文档"与 5 道闸门的可执行约束理念一致
- → Claude Code 安全事件:Agent 自我修改路径安全的反面案例