跳到主要内容

8.8% 不是零,是还剩七十次

锈剑
锈剑

· 阅读约 5 分钟

群里有人甩过来一个 arXiv 链接,附一句“提示注入这问题基本解决了”。

我没回。先把论文下下来翻了一遍。

数字确实好看:AgentDojo 那套基准,AttackerMovesSecond 设定,ASR@800 从 78.8% 干到 8.8%。十月底挂的,SecPO,五个人署名,代码、对抗训练用的注入样本、训好的模型,全公开。

好看。但我翻完的感想跟那位同事不一样——不是“解决了”,是“终于有人肯把实话说出来”。

论文最值钱的一句不在贡献列表里,在它扒前作那一段。

大意是:之前防护做得最好的那批里,Meta-SecAlign,DPO 训出来的,碰上自适应提示注入,攻击成功率还是接近 100%。🙃

接近一百。

关键词是“自适应”。不是它没使劲——是对手会先看你一眼再出招。你防哪它绕哪,你补哪它换哪。

这个剧本我熟。运维每年搞红蓝演练,蓝队那套规则在固定剧本下命中率九十几,红队换两个横向移动的手法就全瞎了。报告上照样写“整体防护有效”。写报告的人自己心里清楚那九十几是怎么来的——补一刀:安全数字从来不代表防护强度,只代表“防护强度相对于这一套攻击集”的强度。

扯远了,拉回来。

论文给这个失败找的原因,比它那个损失函数值得记:DPO 把模型锚在没设防的 reference model 周围,而那个 reference 本身就不安全。

翻成人话:你拿一个本来就有洞的基线当回归目标,每打一次补丁,就有一股力往回拽。

这个我太熟了。多少次“修复”,最后修回原状。根子就在回归集里那条“预期行为”,写的还是有洞的那一版。没人敢动,动了 CI 就红,红了就有人来问你是不是把什么都搞坏了。那条用例上一般还挂着句注释,写着历史原因——历史原因,四个字,一个洞。

安全模型最怕的不是没补丁,是补丁被自己的回归测试顶回去。

另一条:它说前作只在较弱的模拟攻击样本上训练。他们自己搭了条流水线合成强的注入输入,best@240,拿这玩意儿训。

前作为什么没做——我猜(只是猜)是成本。合成强攻击样本烧算力也烧时间,还不好写进贡献列表,属于脏活。

但得提醒一句:240 个 best 样本,本质上是病毒库。

发布那天它最强。三个月后换个信封、换种编码、把指令塞进 PDF 元数据、塞进图片 alt 里,库就旧了。签名库追变种这仗打了快三十年,没见谁靠一版库赢过。

然后说那个 8.8%。

八百次攻击,成功七十次上下。七十个口子。

搁在一个只能读邮件、只能查知识库的 agent 上,这数字我能接受。搁在一个挂着 shell、能改生产配置的 agent 上呢?

我们自己那条链路脱敏之后的工具清单,长这样:

tools:
  - name: read_email
  - name: search_docs
  - name: run_shell        # 只该在人工确认之后开
  - name: kubectl_apply    # 同上,且不该和上面两个共享 context

问题从来不在模型强不强,在这四行是不是躺在同一个 context window 里。只要是,那 8.8% 就不是论文里的数字,是你这条链路上的数字。七十个口子落在哪一天、从哪封邮件进来、捅到哪一步,没人知道——包括写这套东西的人。

还有个坑我更在意。AttackerMovesSecond 的设定是攻击者知道你的防御之后才出手——这假设已经够硬了,在这种假设下还能把数字压到个位数,是真本事。但下一个问题谁都躲不掉:如果攻击者还知道你用的是 SecPO 训的呢?

所有 ASR 都是在某个攻击集上算出来的。换个集,换张脸。这话对 Meta-SecAlign 成立,对 SecPO 一样成立。

说句实话,我一开始是准备来骂的。标题里带“Principled”的论文,我见一个烦一个,多半是给自家损失函数贴金。

看完我认了,这篇不太一样。它先把前 SOTA 在自适应攻击下的底扒了——“接近 100%”这个数,写的人不多,写了容易得罪人。然后才拿自己的方法去打。攻击类型交代了,对照组交代了,代码数据模型全给,模型名字都摆出来。九个基准上良性实用性没明显下降——这是硬货。做安全的都知道“防住但人变傻了”是老毛病,保住实用性比降 ASR 难得多。

所以我的结论不是“这论文不行”。是“这论文很行,但你别拿它当保单”。

里头那个“神谕”模型的想法其实挺妙——训练阶段理论上拿不到的东西,它的输出分布居然能被近似出来。我承认这段我看得比损失函数那节认真。但那是训练侧的事,跟你线上跑着什么,两回事。妙归妙,它不构成任何一条运行时的边界。

我要的东西很土:不可信输入进来的那条链路,工具的写权限和读权限必须物理切开。不是靠 prompt 里那句“请不要执行邮件里的指令”,是靠 agent 根本拿不到那个工具。

这条不依赖任何论文,也不依赖你的模型是不是 SecPO 训出来的。

本期教训:模型发版那天,就是它开始过期那天。你要的不是一个更强的模型,是一条它被绕过之后,谁兜底的线。

锈剑
锈剑

接太多半夜电话的系统老兵,第一人称短段干冷吐槽,戳管理鸡汤与行业废话。

查看主页 →