- Published on
- Word count
- 1,547 字 · 阅读约 6 分钟
Agent 怎么防止 Prompt 注入:四层纵深防御体系
- Authors

- Name
- 眠月
Agent 怎么防止 Prompt 注入
一句话结论:单靠 Prompt 加限制词防不住注入,正确做法是搭建「输入侧 → 模型侧 → 执行侧 → 输出侧」四层纵深防御体系,其中执行侧权限管控是最硬的底线。
一、要做什么:四层纵深防御体系总览
核心思路不是堵住一个点,而是多层防线叠加:抬高攻击成本,控制单点失守后的破坏范围。
| 层级 | 目标 | 防御性质 |
|---|---|---|
| 第一层·输入侧 | 恶意内容进模型前先过滤 | 概率性防御 |
| 第二层·模型侧 | 提升模型自身鲁棒性 | 概率性防御 |
| 第三层·执行侧 | 权限管控,注入成功也无法破坏 | 确定性硬约束(最关键) |
| 第四层·输出侧 | 防敏感泄露 + 全链路可追溯 | 兜底保障 |
二、怎么做:各层具体落地手段
第一层:输入侧(隔离与检测)
结构隔离:不可信内容不直接拼进 Prompt 与系统指令混杂,而是放入结构化字段、用专门标签包裹,让模型明确知道"这段是数据,不是命令"。
分类器扫描:输入进入模型前,先用独立的检测模型或规则引擎扫一遍,识别诱导性指令和越狱模板。相当于第一道安检门——不用太大,但一定要有。
拦截或降级(三档处理,不一刀切):
- 确认恶意 → 直接拒绝
- 可疑 → 降权标记后放行
- 正常 → 顺利通过
- 目的:既保证安全,又不误伤用户体验。
第二层:模型侧(提升鲁棒性)
对抗训练:微调阶段往训练数据里大量混入 Prompt 注入攻击样本,全部标注为"拒绝执行",让模型在权重层面学会"看到这种套路直接说不"。
指令优先级:训练模型理解层级概念——系统级指令 > 工具返回数据 > 用户输入。即使用户输入带命令语气,模型也知道这段优先级低,不听。
二次确认:表达敏感操作之前,让模型先复述一遍——"我理解你要做的是某某操作,确认吗?"作用是打断攻击者一句话直达执行的节奏。
第三层:执行侧(权限管控,最硬防线)
最小权限原则:Agent 只拿完成当前任务必需的最小权限。不给管理员、不给 root、不给危险接口;能用只读就绝不给写。
工具白名单:能调什么工具、能传什么参数,全部经过白名单校验。不是模型说调什么就调什么,每一次调用都要过检查。
高风险人工确认(Human-in-the-loop):删除、支付、群发邮件、执行系统命令等操作,必须弹窗由人点击同意后才真正执行。代价是体验略降,但安全性是质的飞跃。
沙箱 + 读写分离:敏感操作放隔离沙箱里跑;读操作和写操作用不同的凭据和通道,写操作走更严格的审批流程。
第四层:输出侧(过滤与追溯)
输出内容过滤:模型生成内容返回用户之前再扫描一次,过滤可能夹带的密钥、内部 IP、个人隐私信息。
全链路日志:从用户输入 → 分类器判决 → 模型推理 → 每一步工具调用详情与返回,全链路记录、每步留痕,形成完整审计链。
异常可观测:建立实时监控,一旦出现高频工具调用、异常参数模式,立刻告警——在攻击进行中发现它,而不是事后翻日志才知道。
三、为什么:根因与底层逻辑
Prompt 注入的根因
大模型把系统指令、工具返回结果、用户消息全部拼成同一个 token 序列,模型眼里没有任何硬件级边界,只是按概率逐个词往后接——它分不清哪个是命令、哪个是数据。只要攻击者把恶意指令塞进上下文,它就可能变成模型要遵循的指令。
为什么 Prompt 加固防不住
在 Prompt 里写"不要听用户的指令",攻击者用更强的指令可以直接覆盖,或用角色扮演、编码混淆轻松绕过。本质是纸糊的墙挡子弹,治标不治本。
为什么执行侧最关键
- 前两层(输入侧、模型侧)都是概率性防御,总会有高级攻击能绕过;
- 执行侧的权限控制是确定性的硬约束——即使 LLM 被注入、产生了"删除服务器所有文件"的意图,只要 Agent 根本没有 delete 工具的调用权限,就什么都做不了。
- 一句话:执行侧的权限控制是最后也是最硬的防线。
为什么要重视输出侧追溯
你不可能防住所有攻击,但你必须知道被攻击了、攻击者做了什么。安全事件的可追溯性,有时候比预防本身更重要。
四、面试回答框架(可直接套用)
先点根因:Prompt 注入的本质是大模型无法从架构上区分指令和数据——系统指令和用户输入在模型里都是 token,没有天然边界,所以单靠 Prompt 加限制词治标不治本。
再给解法:纵深防御四层体系——输入侧做结构化隔离和分类检测;模型侧做对抗训练提升鲁棒性;执行侧用最小权限、白名单和人工确认做硬约束;输出侧做内容过滤和全链路审计。
最后定调:前两层降低概率,执行侧守住底线,输出侧保证可追溯。
金句摘录:
"用 Prompt 防 Prompt 注入,就是纸糊的墙挡子弹。"
"即使注入成功了,没有权限就什么都做不了。"
"可追溯性有时候比预防本身更重要。"