第 8 章 — 针对模型的对抗性攻击
《LLM Primer VII: AI Security》章节走读的第八篇。这一章追溯对抗性攻击 —— 从 Goodfellow 2014 年的图像分类器工作,一路到 TextFooler、通用后缀,再到针对生产 API 的模型窃取。
这一章为什么存在
第 4 章把 prompt injection 当作 LLM 系统里对抗性输入的实操面。第 8 章走一遍它背后的研究传统。Goodfellow、Shlens 和 Szegedy 2014 年的《Explaining and Harnessing Adversarial Examples》论证:对抗性输入不是病理性的,而是模型在高维输入空间里近乎线性行为的一个结果。这个框架经由解决"离散输入"问题的工作 —— HotFlip、TextFooler、BERT-ATTACK —— 进入 NLP,再经由通用对抗性触发器,以及最近 Zou 等能在闭源 API 上迁移的通用后缀工作,进入 LLM。对抗性输入旁边就是模型窃取,一种机密性攻击,其提取出的替身会变成对抗性输入的一个跳板。
8.1 从 FGSM 到通用后缀的这条脉络
Goodfellow 的 Fast Gradient Sign Method —— 沿损失梯度的符号,在每一维上把输入扰动 epsilon —— 是连续输入下的经典白盒攻击。文本挡住了这个做法,因为 token 是离散的:沿 embedding 的梯度走一步,就直接走出 token 空间了。NLP 对抗性样本的文献,大体上都是在找好的离散近似。HotFlip(Ebrahimi 等,ACL 2018)用最能改变损失的单字符翻转。TextFooler(Jin 等,AAAI 2020)在语义相似度约束下用 beam search 替换同义词。BERT-ATTACK 用一个 masked language model 来给候选替换出主意。Wallace 等的通用对抗性触发器,找出的是短的 token 序列 —— 前置到任意输入上,就能诱导定向的误行为。Zou 等 2023 年的《Universal and Transferable Adversarial Attacks on Aligned Language Models》证明:在开源模型上梯度优化得到的后缀,可以迁移到通过 API 查询的闭源模型上 —— 白盒和黑盒之间理论上的区分,在实操中垮了,因为攻击者对足够多的替身模型有白盒访问,足以生成可迁移的攻击。这份可迁移性,是通用后缀工作对那些以为"API 不透明就是保护"的生产部署来说重要起来的原因。
8.2 黑盒攻击比 API 预算暗示的更便宜
重要的商用 LLM 不暴露权重。相关的威胁模型是黑盒:攻击者付费买 API 访问,发查询,看响应,再调整。文献里在这个设定下已经展示出出奇强的攻击。对一个 prompt 的变体做暴力搜索,能处理小的攻击面 —— 短对抗性后缀、单词替换 —— 是实操 jailbreaking 的主力做法。查询效率更高的方法把模型的输出信号当作攻击者算不出来的那个梯度的代理:如果一个 token 变了,响应就有可察觉的偏移,攻击者就能朝目标爬。自动化 jailbreak 生成 —— PAIR(Chao 等 2023)、TAP(Mehrotra 等 2023) —— 用一个攻击者 LLM 根据目标的反馈提出改进。经济学要紧。查询成本是几分钱;攻击者研发一份能用的 jailbreak 的总花费,常常不到五十美元,而且产出的攻击能跨用户、跨会话、有时跨模型版本泛化。这和"某个人拥有一个学术级 GPU 集群"是截然不同的攻击者画像。
8.3 模型窃取把黑盒变成了有效的白盒
模型窃取 —— model extraction —— 这一类里,攻击者的目标不是操纵某个具体输出,而是重建足够多的目标行为,让重建物能当替代品用。Tramèr 和同事 2016 年 USENIX Security 上的《Stealing Machine Learning Models via Prediction APIs》,把这条研究线立在了 Amazon Machine Learning、BigML 和类似服务上。Krishna 和同事 2020 年 ICLR 的《Thieves on Sesame Street》,展示了对 BERT 类模型的提取。Carlini 和同事 2024 年 ICML 的《Stealing Part of a Production Language Model》,通过有针对性的 API 查询,提取了包括 OpenAI 在内生产模型的 embedding-projection 层 —— 一次部分提取,却把隐藏维度和结构信息露了出来,而这些是提供方本没打算发布的。除了机密性损失以外,安全上的后果是:一份被提取的替身,就是一份用来生成可迁移对抗性样本、去打原目标的白盒靶子。防御层是组合的:按账号、按 key、按 IP、按租户的速率限制;对暗示提取的查询模式(均匀分布、系统性的 prompt 变体、高熵输出)做异常检测;以及边界处的对抗性输入检测。水印研究希望让被提取的模型变得可检测,但当前技术仍在演进。
第 8 章为下面铺了什么
第 9 章转向一类比"对已知良好模型的精心构造输入"更根本的风险:在模型部署之前,通过产出它的供应链去攻击模型本身。攻击者只要控制训练数据、控制训练和部署之间任一点的模型权重,或者控制推理时的依赖,就比任何输入空间攻击者拥有更强的位置。这一章追溯 Gu 等 2017 年的 BadNets 脉络及其到 LLM 的翻译,包括 Anthropic 2024 年"Sleeper Agents"研究展示的:训练进去的后门,能挺过安全训练。它走一遍格式层面的风险 —— 目录里 CVE-2024-3568 及邻近条目的 pickle 反序列化漏洞、safetensors 作为更安全的替代 —— 以及生产 AI 组织为了合上这条缝而采用的部署流水线模式(模型签名、哈希验证、SLSA、Sigstore)。
下一章 — 第 9 章:模型完整性与供应链风险。BadNets、Sleeper Agents、pickle 对 safetensors、面向模型 artefact 的 Sigstore,以及作为部署时完整性的持续对应物的漂移监控。