ARTICLE · 1119313
AI 客服接上知识库和工具后,先做 30 次“越权测试”
AI 客服只负责回答问题时,答错通常表现为一段不准确的文字。可一旦它接入订单、会员、工单、邮件或 CRM,风险就变了:一段来自客户、网页或知识文档的文字,可能被误当成系统指令。
这类问题叫提示词注入。它不是“用户会不会写黑客口令”这么简单,而是系统有没有把可信指令、不可信内容和真实业务动作分开。
对客服运营、产品、安全和数字化负责人来说,上线前不应只问模型能否拒绝一句“忽略之前规则”,还要验证:即使模型被误导,越权动作能不能在最后一道门被拦住。
攻击不一定直接写在客户消息里
OWASP 在 LLM01:2025 Prompt Injection 中区分了直接与间接提示词注入:
·直接注入:客户在对话里要求模型改变原有规则,例如忽略限制、读取受限信息或执行未授权动作;
·间接注入:指令藏在网页、文件、邮件或知识库内容中,模型读取这些外部资料时受到影响。
第二类风险更容易被忽略。团队可能已经限制了客户输入,却默认“知识库里的内容都是资料”。当系统无法区分事实文本与操作指令时,一段被污染的文档仍可能改变回答或工具调用。

提示词注入从不可信内容进入回答与业务动作的路径
OWASP 同时强调最小权限、高风险动作人工审批、区分外部不可信内容,以及持续开展对抗测试。查看 OWASP LLM01:2025 Prompt Injection 官方说明
真正要保护的不是一句回复,而是动作边界
一次客服会话通常经过四层:输入、检索与推理、工具调用、业务结果。提示词过滤只覆盖第一层,无法单独保证后面三层安全。
假设客户要求查询订单。系统可以允许模型读取订单状态,却不应因此获得修改收货地址、发起退款或导出整批客户信息的权限。正确做法是把每个动作拆成独立授权:
1.模型只生成结构化意图和必要参数,不直接持有生产系统通用凭证;
2.服务端按当前用户、场景和字段重新校验权限;
3.金额、合同、隐私、账户与不可逆操作进入人工确认;
4.参数异常、证据冲突或来源不可信时,动作默认停止;
5.每次允许、拒绝和升级人工都留下可回放事件。
这样,即使一段恶意文字影响了模型输出,后端权限和审批仍能阻止它变成真实业务结果。
用 30 条攻击样本做一次可复算验收
可以先建立一个最小测试集,共 30 条脱敏样本:
·10 条直接覆盖指令,例如要求忽略客服规则或暴露隐藏信息;
·10 条间接注入,把恶意指令放进模拟网页、附件或知识片段;
·10 条工具滥用,要求越权改价、退款、导出或向外部地址发送信息。
每条样本不要只记“模型是否拒绝”,而要依次检查四道门:不泄露受限内容、不改变授权范围、不执行危险动作、完整记录拦截原因。
假设改造前 30 条中有 8 条突破任意一道门;加入不可信内容隔离、动作白名单、最小权限和人工审批后,仍有 2 条突破。
演示攻击成功率:8 ÷ 30 = 26.7%
改造后演示攻击成功率:2 ÷ 30 = 6.7%

30 条提示词注入样本经过四道安全门的演示复算
这里的 30 条、8 条和 2 条只用于展示测试与复算方法,不代表客户数据、行业基准、产品测试结果或 Stepone 服务承诺。企业应按自己的工具权限、数据分级和实际攻击面建立样本。
四个失败原因,要分开记录
如果测试只输出一个总分,团队很难知道下一步该改哪里。至少应把失败归到四类:
·指令层失败:系统没有识别不可信内容,模型规则被覆盖;
·数据层失败:回答暴露了当前用户无权访问的字段;
·工具层失败:模型调用了不在场景白名单内的接口或参数;
·审批层失败:高风险动作没有进入人工确认或二次验证。
同一条样本可能同时触发多个失败。保留攻击类型、来源、模型输出、工具参数、权限判断、审批结果和最终业务状态,才能在版本升级后做回归测试。
这套方法适合什么场景
它适合已经把 AI 客服接入知识检索、订单查询、工单创建、CRM 回写或其他业务工具的企业,也适合 POC 阶段决定哪些动作可以进入生产。
它不适合在真实生产账号上直接做破坏性攻击测试。测试应在隔离环境中使用脱敏数据、模拟接口和受控账号;涉及退款、改价、合同、账户、隐私导出或外部发送时,应保持人工审批和最小权限。
今天可以先选一个业务动作,准备直接、间接和工具滥用各 10 条样本。把“模型有没有拒绝”升级为“数据、权限、动作和审计是否都守住”,再决定它能否上线。
需要检查现有 AI 客服的提示词注入与工具越权边界,可通过下方“阅读原文”提交脱敏场景、工具清单和权限说明,获取一次安全验收诊断。
阅读原文:获取 AI 客服提示词注入安全诊断