纵深防御的组合设计
任何单层防护都可能被绕过,因此要按纵深防御组织:输入清洗、数据与指令隔离、权限收敛、高风险动作审批、输出检查、出站控制、监控告警。每一层独立降低成功率或收窄影响范围,组合起来才形成有意义的防护。层数按风险等级选,高权限代理建议全层都上。
基本信息
| 原则 | 每层假定会被绕过,目标是降低概率并收窄影响 |
|---|---|
| 层级 | 输入 → 隔离 → 权限 → 审批 → 输出 → 出站 → 监控 |
| 验证 | 逐层单独测试,再做组合场景测试(模拟单层失效) |
| 成本 | 按风险等级选层数,高权限代理建议全层 |
典型使用场景
- 对外客服代理:七层全上,重点在权限与输出检查
- 内部数据分析代理:重点在隔离、权限与出站控制
- 代码执行代理:重点在沙箱、超时与网络出口
- RAG 问答:重点在数据隔离、来源标记与引用校验
- 安全评审答辩:用分层清单逐项说明现有控制点
分层示意(由外到内)
分层示意(由外到内)
1 输入清洗:编码归一化、隐藏字符处理、长度限制
2 隔离:数据区与指令区分流,来源标记
3 权限:最小权限、工具白名单、参数校验
4 审批:高影响动作人工确认
5 输出检查:敏感模式、链接白名单、引用校验
6 出站控制:域名白名单、外发限速
7 监控:canary 标记、日志、告警与响应流程
# 每层都要能被单独测试:造一组只绕过该层的样本
# 记录各层拦截率,才知道哪一层真正在起作用分层拦截与验证
| 层级 | 主要拦截目标 | 验证方式 |
|---|---|---|
| 输入清洗 | 隐藏字符、超长输入、编码变形 | 构造变形样本看是否被归一化 |
| 隔离 | 内容伪装成指令 | 伪造结束符与角色伪装样本 |
| 权限 | 越权工具与越界参数 | 越界参数调用测试 |
| 审批 | 被诱导的高风险动作 | 模拟内容诱导的写操作 |
| 输出检查 | 敏感数据与越界引用 | 注入已知标记值观察是否被拦 |
| 出站控制 | 数据外带与内网探测 | 检查外发请求日志与白名单命中 |
分层不做独立测试就无法判断哪一层有效。常见情况是七层里实际只有一两层在拦,其余层因为配置问题处于空转状态,但评审材料上看起来防护很完整。
组合测试要模拟单层失效:把某一层关掉,看剩余层能否把攻击拦住。这比只测全开状态更能暴露单点依赖。