上一篇 下一篇 分享链接 返回 返回顶部

大模型提示注入攻击的分类与防护思路

发布人:小亿 发布时间:2026-01-10 08:44 阅读量:833

问题的根源

大模型应用把自然语言同时作为指令和数据载体。系统提示词、用户输入、外部检索到的文档、工具返回结果,最终都会拼接进同一个上下文。模型无法从本质上区分哪一段是指令、哪一段是数据,这就给攻击者提供了插入指令的机会。这与传统的代码注入在形式上不同,但在本质上都是数据与指令边界模糊导致的。

分类

直接注入来自用户输入。攻击者通过特定措辞诱导模型忽略原有约束,输出被限制的内容或执行被禁止的动作。这类注入主要影响内容合规与模型行为。

间接注入来自模型处理的外部内容。例如模型读取网页、邮件、文档或工单内容时,其中隐藏的指令被执行。这类注入危害更大,因为攻击者不需要直接与模型交互,只要让恶意内容出现在模型的输入里即可。当模型具备工具调用能力时,间接注入可能导致数据被发送到外部地址、文件被修改或接口被误调用。

分层防护思路

第一,输入层做隔离与标注。把不同来源的内容放在明确分隔的结构中,并在系统提示中声明外部内容不可作为指令。这不能根治问题,但可以提高攻击成本。

第二,在关键动作前做独立校验。不要因为模型要求调用某个工具就直接执行,应由独立的策略层判断该动作在当前上下文下是否被允许,包括目标地址、参数范围和调用频率。

第三,对输出做检查。检测输出中是否包含敏感数据、是否包含可执行内容、是否符合预设格式。在返回给用户或外部系统前做拦截。

第四,权限收窄。模型可调用的工具应遵循最小权限,只开放完成任务所必需的能力,并且不授予访问敏感数据或修改配置的权限。

第五,记录与审计。完整记录模型输入来源、工具调用参数和输出结果,便于事后追溯与规则优化。

结语

提示注入短期内难以彻底解决,可行的思路是承认不可信输入的存在,把关键控制点放在动作执行之前,而不是试图让模型自己分辨指令与数据。

目录结构
全文
售后客服 售后客服
企业微信 企业微信
服务热线: 15368564009
电子邮箱: yihwlkj@163.com