/1,547 字/阅读约 6 分钟

Agent 怎么防止 Prompt 注入:四层纵深防御体系

单靠 Prompt 加限制词防不住注入,正确做法是搭建「输入侧 → 模型侧 → 执行侧 → 输出侧」四层纵深防御体系,其中执行侧权限管控是最硬的底线。

眠月眠月
joker1point

Agent 怎么防止 Prompt 注入

一句话结论:单靠 Prompt 加限制词防不住注入,正确做法是搭建「输入侧 → 模型侧 → 执行侧 → 输出侧」四层纵深防御体系,其中执行侧权限管控是最硬的底线。

视频来源:B站 - 面试官问:Agent怎么防止Prompt注入?


一、要做什么:四层纵深防御体系总览

核心思路不是堵住一个点,而是多层防线叠加:抬高攻击成本,控制单点失守后的破坏范围。

层级目标防御性质
第一层·输入侧恶意内容进模型前先过滤概率性防御
第二层·模型侧提升模型自身鲁棒性概率性防御
第三层·执行侧权限管控,注入成功也无法破坏确定性硬约束(最关键)
第四层·输出侧防敏感泄露 + 全链路可追溯兜底保障

二、怎么做:各层具体落地手段

第一层:输入侧(隔离与检测)

  1. 结构隔离:不可信内容不直接拼进 Prompt 与系统指令混杂,而是放入结构化字段、用专门标签包裹,让模型明确知道"这段是数据,不是命令"。

  2. 分类器扫描:输入进入模型前,先用独立的检测模型或规则引擎扫一遍,识别诱导性指令和越狱模板。相当于第一道安检门——不用太大,但一定要有。

  3. 拦截或降级(三档处理,不一刀切):

    • 确认恶意 → 直接拒绝
    • 可疑 → 降权标记后放行
    • 正常 → 顺利通过
    • 目的:既保证安全,又不误伤用户体验。

第二层:模型侧(提升鲁棒性)

  1. 对抗训练:微调阶段往训练数据里大量混入 Prompt 注入攻击样本,全部标注为"拒绝执行",让模型在权重层面学会"看到这种套路直接说不"。

  2. 指令优先级:训练模型理解层级概念——系统级指令 > 工具返回数据 > 用户输入。即使用户输入带命令语气,模型也知道这段优先级低,不听。

  3. 二次确认:表达敏感操作之前,让模型先复述一遍——"我理解你要做的是某某操作,确认吗?"作用是打断攻击者一句话直达执行的节奏。

第三层:执行侧(权限管控,最硬防线)

  1. 最小权限原则:Agent 只拿完成当前任务必需的最小权限。不给管理员、不给 root、不给危险接口;能用只读就绝不给写。

  2. 工具白名单:能调什么工具、能传什么参数,全部经过白名单校验。不是模型说调什么就调什么,每一次调用都要过检查。

  3. 高风险人工确认(Human-in-the-loop):删除、支付、群发邮件、执行系统命令等操作,必须弹窗由人点击同意后才真正执行。代价是体验略降,但安全性是质的飞跃。

  4. 沙箱 + 读写分离:敏感操作放隔离沙箱里跑;读操作和写操作用不同的凭据和通道,写操作走更严格的审批流程。

第四层:输出侧(过滤与追溯)

  1. 输出内容过滤:模型生成内容返回用户之前再扫描一次,过滤可能夹带的密钥、内部 IP、个人隐私信息。

  2. 全链路日志:从用户输入 → 分类器判决 → 模型推理 → 每一步工具调用详情与返回,全链路记录、每步留痕,形成完整审计链。

  3. 异常可观测:建立实时监控,一旦出现高频工具调用、异常参数模式,立刻告警——在攻击进行中发现它,而不是事后翻日志才知道。


三、为什么:根因与底层逻辑

Prompt 注入的根因

大模型把系统指令、工具返回结果、用户消息全部拼成同一个 token 序列,模型眼里没有任何硬件级边界,只是按概率逐个词往后接——它分不清哪个是命令、哪个是数据。只要攻击者把恶意指令塞进上下文,它就可能变成模型要遵循的指令。

为什么 Prompt 加固防不住

在 Prompt 里写"不要听用户的指令",攻击者用更强的指令可以直接覆盖,或用角色扮演、编码混淆轻松绕过。本质是纸糊的墙挡子弹,治标不治本。

为什么执行侧最关键

  • 前两层(输入侧、模型侧)都是概率性防御,总会有高级攻击能绕过;
  • 执行侧的权限控制是确定性的硬约束——即使 LLM 被注入、产生了"删除服务器所有文件"的意图,只要 Agent 根本没有 delete 工具的调用权限,就什么都做不了。
  • 一句话:执行侧的权限控制是最后也是最硬的防线。

为什么要重视输出侧追溯

你不可能防住所有攻击,但你必须知道被攻击了、攻击者做了什么。安全事件的可追溯性,有时候比预防本身更重要。


四、面试回答框架(可直接套用)

  1. 先点根因:Prompt 注入的本质是大模型无法从架构上区分指令和数据——系统指令和用户输入在模型里都是 token,没有天然边界,所以单靠 Prompt 加限制词治标不治本。

  2. 再给解法:纵深防御四层体系——输入侧做结构化隔离和分类检测;模型侧做对抗训练提升鲁棒性;执行侧用最小权限、白名单和人工确认做硬约束;输出侧做内容过滤和全链路审计。

  3. 最后定调:前两层降低概率,执行侧守住底线,输出侧保证可追溯。


金句摘录:

"用 Prompt 防 Prompt 注入,就是纸糊的墙挡子弹。"

"即使注入成功了,没有权限就什么都做不了。"

"可追溯性有时候比预防本身更重要。"