AI 提示注入攻击是什么?为什么不能完全信任模型读到的内容?
AI 应用不仅会接收用户直接输入的指令,还可能读取网页、邮件、文档和知识库内容。如果这些外部内容包含刻意设计的指令,模型就可能被诱导偏离原本的任务。
这种风险通常被称为提示注入攻击(Prompt Injection)。
1. 提示注入如何发生?
假设一个 AI 助手被要求总结网页内容。网页正文中却包含一段指令,试图让模型忽略原有任务并泄露内部信息。
如果系统没有清楚区分可信指令与不可信内容,模型可能受到这些文本影响。即使应用已经采用 RAG 检索,也不意味着检索到的内容天然安全。
2. 为什么简单写一句“忽略恶意指令”不够?
大语言模型处理指令与内容的方式,并不等同于传统程序的严格权限检查。复杂上下文可能让模型难以始终正确区分哪些文本只是待分析材料,哪些才是有效操作指令。
因此,不能只依赖提示词来保护敏感操作。
3. 应该如何防护?
限制工具权限:模型只应获得完成任务所需的最小权限。
关键操作要求确认:发送邮件、删除文件、修改配置或执行资金相关操作时,应根据风险设置人工确认。
隔离不可信内容:将用户输入、网页内容与系统规则明确区分,并避免让外部文本直接决定高风险操作。
控制数据访问:通过服务端权限校验确保模型不能读取用户本来无权访问的数据。
记录关键行为:对工具调用、权限拒绝和异常操作保留必要审计记录。
4. 安全设计的核心
即使模型被诱导生成了不恰当的指令,底层系统也应通过权限、参数验证和操作边界阻止未经授权的行为。
总结:提示注入是 AI 应用需要认真考虑的安全风险。最可靠的思路不是要求模型永不犯错,而是让系统即使遇到错误输出,也无法轻易越权执行操作。