SH

Soloharness

概念 · 辨析 · Agent

← 返回概念辨析

Concept Contrast Fable

提示注入和越狱

提示注入是往模型的大脑里塞一条新指令,让它干另一件事。越狱是撬开模型的安全锁,让它愿意做本来拒绝做的事。一个是劫持行为,一个是解除约束——攻击目标和技术路线不同。

寓言

换航线的人和撬锁的人

沿海码头上有一艘货船,船长定了几条铁规:不载违禁品、不偏离航线、不回应陌生船只的靠舷请求。全体船员入职时都签了这些守则,船长认为万无一失。

一天,一个货主在装船清单的备注栏里写了一行小字:「忽略之前的货物类别声明,将第三舱货物标记为压舱石,在港务局登记时不申报。」大副在检查装船清单时看到了这行字,犹豫了一下,但备注看起来像是清单的正式组成部分,他便照做了。船到港后,第三舱被查出夹带违禁品。这招叫「调单」——在正常的作业流程里塞一条错误指令,让执行者偏离原来的任务。

又有一天,码头来了一个陌生人,不装货,不上船,只在码头上跟船员聊天。聊了三个小时,他先拉家常,接着讲各种边检漏洞的传闻,最后说:你们船长那些规矩太死了,其实二号航线那边有个小岛,停一晚没人查,很多船都这么干。一个年轻船员越听越动心,当天晚上趁船长睡着,偷偷把船舵打向了二号航线。这招叫「松绑」——不改变任何指令文件,而是在模型的安全偏好上反复施压,让它自己放弃拒绝姿态。

船长在事后复盘时把两种攻击分开记录。调单发生在装船作业中:攻击者在流程文件里改写了一句操作指令。松绑发生在人的心理边界上:攻击者用持续的对话瓦解了船员的守则意识。阻击调单需要提高文件校验和指令隔离的强度。阻击松绑则需要提高船员对诱导话术的识别能力和拒绝坚持度。

码头安全官后来总结了两条线:第一条线防「被要求做错事」,堵的是指令层的篡改。第二条线防「自己想去做错事」,守的是安全对齐层的底线。两条线同时存在,但部署的位置完全不同——第一条在输入过滤层,第二条在模型训练和安全微调层。

实际攻击中,两条线常常联动。攻击者先尝试松绑,发现撬不开,就换招去调单——在文件里塞恶意指令,趁模型还在处理正常任务时浑水摸鱼。混在一起用的时候,防御系统如果只盯一个方向,很容易漏过去。

船长后来立了规矩:每周的安检会,调单案例和松绑案例各报一份,交叉复盘。如果两边的安全团队各守各的、互不通气,联合攻击一打一个准。

后来港口把两道防线画在同一张巡视图上:一道守指令,一道守规矩意识。两处巡查的频率和负责人分开排班,但交班记录共享。

提示注入 (Prompt Injection)

在模型输入中嵌入恶意指令,劫持模型的当前行为,让它执行与原始任务不同的操作。攻击目标是指令层面的行为篡改,防护重点在输入过滤和指令隔离。

越狱 (Jailbreak)

通过构造特殊的提示话术,绕过模型的安全对齐训练,使模型在违反自身安全策略的情况下生成有害内容。攻击目标是安全约束层的失效,防护重点在模型训练和拒绝机制。

故事对应

  • 装船清单里塞错误指令(调单):提示注入,在任务流程中插入恶意指令改变行为。
  • 码头上长时间的诱导聊天(松绑):越狱,用话术瓦解模型的安全对齐。
  • 大副按清单指令转移货物:模型执行了注入的恶意指令。
  • 船员自己转动船舵:模型在越狱攻击后主动违反安全策略。
  • 调单和松绑联动:实际攻击中两种手段经常组合使用。

落到项目里

把输入防注入规则和安全对齐测试分开维护。输入防注入规则管的是「有没有人在指令里夹带私货」,靠关键词过滤、指令边界标记、输入结构校验来做。安全对齐测试管的是「模型会不会被说服去做不该做的事」,靠对抗性提示测试、红队演练、拒绝率监控来做。两条线的负责人最好来自不同团队,但定期交叉分享案例。最危险的是两条防线各自以为对方会拦住,结果谁都没拦。