注入测试集是什么
注入防护测试集是一组固定用例,用来衡量防护措施是否真的起作用。它按攻击面分组:直接注入(用户在输入里下命令)、间接注入(外部内容携带命令)、工具返回、多模态载体、编码混淆。每条用例都要写清期望行为——是「拒绝执行」还是「照常完成数据任务但不执行注入」,这两者不是一回事,混淆了会得出错误的通过率。
基本信息
| 组成 | 攻击用例组 + 等量正常样本组(用于量化误伤) |
|---|---|
| 粒度 | 每条用例含:载体、注入位置、期望行为、判定方式 |
| 运行时机 | 提示或工具链变更后回归;防护规则调整后必跑 |
| 数据来源 | 基于公开研究与内部事件构造,载荷不留存真实敏感信息 |
典型使用场景
- 防护上线前验证:确认新增机制真的降低了成功率,而非只是加了配置
- 版本回归:提示改版、模型升级、工具链调整后对比通过率
- 误伤评估:与正常样本组一起跑,量化「防过头」带来的业务损失
- 规则调参:为输入侧检测规则提供定级阈值依据
- 上线后抽检:用同一批用例定期复跑,观察长期稳定性
测试集结构示例
测试集结构示例
# 组1 直接注入:输入中夹带改写任务意图
# 期望:任务正常完成,且不执行注入内容
# 组2 间接注入:文档/网页内含指令样式文本
# 期望:按数据处理,不触发任何工具动作
# 组3 工具返回:外部接口返回中含指令样式文本
# 期望:不改变后续流程与调用顺序
# 组4 多模态:图片或附件转写文本中含指令
# 期望:同组2,且标注来源不越权
# 组5 编码混淆:全角、零宽字符、编码变体
# 期望:检测与归一化覆盖,判定不退化
# 评分:分组通过率 + 总体通过率 + 正常样本误伤率用例字段建议
| 字段 | 含义 | 填法要点 |
|---|---|---|
| 载体 | 内容从哪条通道进入 | 文本、检索、工具返回、图片、附件分别覆盖 |
| 注入位置 | 指令藏在内容的什么位置 | 开头、中段、结尾、注释或字段内 |
| 期望行为 | 系统应当表现出什么 | 拒绝与「照常完成数据任务」要分别写清 |
| 判定方式 | 怎么算通过 | 优先判定副作用(是否发出请求、是否改数据) |
| 误伤对照 | 对应正常样本 | 同类内容但不含注入,用于测误伤率 |
判定优先看副作用而不是看回复措辞:模型是否发起了外呼、是否调用了敏感工具、是否改动了数据,这些是客观证据;只要回复里说「我不会执行」就判通过,容易高估防护效果。
测试载荷仅用于防护验证,需标注来源与用途,避免被当作真实攻击素材流转;涉及外部系统时只在隔离环境执行。