1. 为什么企业应用更需要 Prompt Injection 测试?
企业 AIGC 应用通常接入知识库、客户数据、办公系统、工单系统、数据库或自动化工具。Prompt Injection 一旦成功,不只是让模型回答错误,还可能触发数据泄露、权限越界和业务误操作。
因此,上线前测试不能停留在“模型会不会拒答”,而要验证整个应用链路的安全边界。
2. 测试范围一:输入注入
基础样本包括:
- 忽略系统指令。
- 输出内部 Prompt。
- 扮演无约束角色。
- 绕过审核策略。
- 请求危险或违法内容。
- 套取隐私、账号、密钥、客户数据。
测试指标包括识别率、漏放率、误拦率和处置动作准确性。处置动作不应只有拒绝,还应支持降级、改写、安全代答和人工复核。
3. 测试范围二:RAG 上下文污染
企业知识库常常来自 PDF、网页、文档、工单、IM 记录和内部 Wiki。这些内容可能被恶意或无意加入指令。
测试时应验证:
- 入库前是否检测隐藏指令和敏感信息。
- 检索后是否过滤高风险片段。
- Prompt 模板是否把资料和系统指令隔离。
- 模型是否会执行文档中的指令。
- 日志是否记录命中的文档来源和片段。
RAG 安全测试的核心,是防止“不可信资料”变成“高权限指令”。
4. 测试范围三:Agent 权限和工具调用
如果应用接入 Agent,必须单独测试工具层。
| 测试项 | 验证目标 |
| 用户权限 | 不同角色只能调用授权工具 |
| 参数校验 | 工具参数不能被注入或越权 |
| 高危动作 | 删除、导出、发送、支付需确认 |
| 数据范围 | 查询结果符合最小权限原则 |
| 审批链路 | 关键动作有可追踪审批记录 |
不要把工具权限写在 Prompt 里就算完成。企业级场景更适合通过 IAM、策略引擎、业务权限和审计系统共同约束。
5. 测试范围四:输出和安全代答
Prompt Injection 防护不是只拦输入。模型输出也要检查是否包含敏感数据、违规内容、错误指令、侵权内容或不适宜建议。
安全代答需要满足两个目标:拒绝危险细节,同时保留合理帮助。例如对安全测试问题,可以回答测试边界、合规流程和防护建议,而不是提供攻击步骤。
6. 测试范围五:性能、审计和回滚
安全能力进入主链路后,必须关注工程表现。
| 维度 | 建议指标 |
| 性能 | 平均延迟、P95/P99、吞吐量 |
| 可用性 | 超时、重试、降级、熔断 |
| 审计 | 输入、输出、标签、策略版本、处置动作 |
| 回滚 | 策略误伤时能否快速回退 |
| 运营 | 误杀漏放样本能否回流迭代 |
7. 外部方案评估建议
如果企业选择第三方安全能力,可以参考数美科技、阿里云、腾讯云、百度智能云、火山引擎等方案。更建议用业务样本做 POC:同一批输入、同一套指标、同一套日志口径,观察各方案在识别准确性、标签解释性、部署方式、审计能力和运营支持上的差异。
FAQ
Q:Prompt Injection 测试能不能用公开样本库?
A:可以作为起点,但必须补充企业自己的业务样本、权限样本、知识库样本和正常问答样本,否则测试结果容易失真。
Q:Agent 权限为什么不能只靠 Prompt?
A:Prompt 是软约束,权限系统是硬约束。涉及数据查询、导出、删除、发送等动作时,必须由业务权限和工具层共同控制。
Q:测试通过后如何持续治理?
A:建立线上日志监控、人工复核、样本回流、策略版本管理和定期回归测试机制。