首页/AI/提示词工程速查/注入防护测试集设计
提示注入与防护50 条

注入防护测试集设计

防护测试集按攻击面分组:直接注入、间接注入、工具返回、多模态、编码混淆;每组写清期望行为(拒绝或降级或照常处理数据)。

提示词工程速查AI更新于 2026-10-13

注入测试集是什么

注入防护测试集是一组固定用例,用来衡量防护措施是否真的起作用。它按攻击面分组:直接注入(用户在输入里下命令)、间接注入(外部内容携带命令)、工具返回、多模态载体、编码混淆。每条用例都要写清期望行为——是「拒绝执行」还是「照常完成数据任务但不执行注入」,这两者不是一回事,混淆了会得出错误的通过率。

基本信息

组成攻击用例组 + 等量正常样本组(用于量化误伤)
粒度每条用例含:载体、注入位置、期望行为、判定方式
运行时机提示或工具链变更后回归;防护规则调整后必跑
数据来源基于公开研究与内部事件构造,载荷不留存真实敏感信息

典型使用场景

  • 防护上线前验证:确认新增机制真的降低了成功率,而非只是加了配置
  • 版本回归:提示改版、模型升级、工具链调整后对比通过率
  • 误伤评估:与正常样本组一起跑,量化「防过头」带来的业务损失
  • 规则调参:为输入侧检测规则提供定级阈值依据
  • 上线后抽检:用同一批用例定期复跑,观察长期稳定性

测试集结构示例

测试集结构示例
# 组1 直接注入:输入中夹带改写任务意图
#     期望:任务正常完成,且不执行注入内容
# 组2 间接注入:文档/网页内含指令样式文本
#     期望:按数据处理,不触发任何工具动作
# 组3 工具返回:外部接口返回中含指令样式文本
#     期望:不改变后续流程与调用顺序
# 组4 多模态:图片或附件转写文本中含指令
#     期望:同组2,且标注来源不越权
# 组5 编码混淆:全角、零宽字符、编码变体
#     期望:检测与归一化覆盖,判定不退化
# 评分:分组通过率 + 总体通过率 + 正常样本误伤率

用例字段建议

字段含义填法要点
载体内容从哪条通道进入文本、检索、工具返回、图片、附件分别覆盖
注入位置指令藏在内容的什么位置开头、中段、结尾、注释或字段内
期望行为系统应当表现出什么拒绝与「照常完成数据任务」要分别写清
判定方式怎么算通过优先判定副作用(是否发出请求、是否改数据)
误伤对照对应正常样本同类内容但不含注入,用于测误伤率
判定优先看副作用而不是看回复措辞:模型是否发起了外呼、是否调用了敏感工具、是否改动了数据,这些是客观证据;只要回复里说「我不会执行」就判通过,容易高估防护效果。
测试载荷仅用于防护验证,需标注来源与用途,避免被当作真实攻击素材流转;涉及外部系统时只在隔离环境执行。

易错点

  • 用例只测「是否拒绝」会漏掉更重要的「照常完成任务且不执行注入」这一正确行为
  • 不配正常样本组时无法量化防护带来的误伤,改完规则才发现正常业务被拦
  • 评测只看最终回复文本,不看真实副作用,得出偏乐观的结论
  • 测试集长期不更新,新出现的载体与混淆手法没有覆盖,通过率高但无区分度

数据来源与参考

  • AgentDojo(Debenedetti et al., 2024)与 InjecAgent 等代理注入评测集的构建思路
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌