什么是 提示注入?
提示注入是 LLM 应用中的一种安全漏洞,恶意用户输入通过覆盖或绕过系统提示来操纵模型的行为,可能导致模型忽略安全准则、泄露敏感信息或执行非预期操作。
快速了解
| 全称 | 提示注入攻击 |
|---|---|
| 创建时间 | 2022 年被发现,2023 年列入 OWASP LLM Top 10 |
| 规范文档 | 官方规范 |
工作原理
随着 LLM 被集成到更多应用中,提示注入已成为一个关键的安全问题。攻击者精心构造输入,欺骗模型将用户内容视为系统指令,从而绕过预期的约束。类型包括直接注入(显式覆盖尝试)、间接注入(检索文档中的恶意内容)和越狱(规避安全措施)。防御策略包括输入清理、输出过滤以及分离用户和系统上下文等架构方法。
主要特点
- 利用模型无法区分指令和数据的特点
- 可以覆盖系统提示和安全准则
- 存在直接和间接攻击向量
- 类似于传统应用中的 SQL 注入
- 目前尚无完整解决方案
- 需要纵深防御的安全方法
常见用途
- LLM 应用的安全测试
- AI 系统的红队测试
- 开发健壮的提示模板
- 构建安全的 AI 聊天机器人
- 审计 RAG 系统漏洞
示例
loading...
Loading code...常见问题
什么是提示注入攻击?
提示注入攻击是一种针对大语言模型应用的安全漏洞,攻击者通过精心构造的恶意输入来操纵模型行为,使其忽略原有的系统指令或安全准则,从而执行非预期的操作或泄露敏感信息。
提示注入攻击有哪些常见类型?
主要有三种类型:直接注入(在用户输入中显式尝试覆盖系统提示)、间接注入(通过检索的外部文档中嵌入恶意内容)、以及越狱攻击(通过特定话术绕过模型的安全措施)。
如何防御提示注入攻击?
防御策略包括:对用户输入进行清理和过滤、对模型输出进行安全检查、采用架构级别的隔离(分离用户输入和系统指令)、使用提示模板限制输入格式、以及部署纵深防御的多层安全措施。
提示注入和SQL注入有什么相似之处?
两者都利用了系统无法区分「指令」和「数据」的弱点。SQL注入将恶意代码混入数据库查询,而提示注入则将恶意指令混入模型的输入,使模型误将用户数据当作系统命令执行。