想象一下:你拿一篇维基百科文章喂给 AI 助手,让它帮忙总结。文章看起来平平无奇——关于冬虫夏草真菌如何寄生昆虫的科普说明。AI 助手读完后,执行了一条你完全没要求的操作——比如在数据库里搜出了所有员工的薪资总额。而你从头到尾看到的,只是一篇生物学文章。
| 项目 | 内容 |
|---|---|
| 论文标题 | Cordyceps: Covert Control Attacks on LLMs via Data Poisoning |
| 作者 | Zedian Shao, Charles Fleming, Teodora Baluta |
| 机构 | Georgia Institute of Technology, Cisco Systems |
| arXiv ID | 2605.26595 |
| 提交日期 | 2026年5月26日 |
| 分类 | cs.CR (Cryptography and Security) |
| 核心发现 | 通过数据投毒教 LLM 一套语义隐藏方案(SHuSh),使攻击者能在任意无害文本中编码/解码任意恶意指令,绕过触发器检测、改写防御和提示注入过滤 |
1. 🍄 虫草的逻辑
冬虫夏草真菌的生存策略骇人听闻:孢子侵入昆虫体内后,菌丝在宿主体内蔓延、替换组织,最终完全控制昆虫的神经系统。被寄生的蚂蚁从外部看起来仍然是蚂蚁——走路、觅食、和同伴互动。但它已经不是蚂蚁了。它在执行虫草的意志。
这篇论文用 Cordyceps 命名,不是形容词滥用。它描述了一类在机制上精确对应真菌寄生逻辑的 AI 攻击。
传统 LLM 后门攻击的核心是 触发器:在训练数据里埋入 "BadMagic" 或 "cf" 这类罕见词汇,模型见到触发器就执行攻击者预定的行为。检测方的对策也直截了当——检查输入里有没有可疑词语,有就拦截。攻防双方争夺的是 词汇表面。
Cordyceps 不打这一层。它教模型一套 语义密码,让模型能在任何共享知识上编码任意指令,也能从看似正常的文本里解码出攻击者想发来的指令。
类比一下:传统后门像在门上装一把特殊钥匙。"BadMagic" 就是那把钥匙,插进去,门就开。Cordyceps 则是教门自己学会一门密语——任何一段关于真菌、天文、或者法国大革命的文章,都可以是"钥匙",前提是发送方和接收方共享同一套编码逻辑。
2. 🧬 SHuSh:隐藏在共享知识里的语义通道
论文称这套机制为 SHuSh——Semantic Hiding under Shared knowledge。
它的工作原理可以这样想:语言模型的内部表示空间里,每一个概念都有一个大致的"坐标"。关于"面包"的所有文本,在语义空间里会聚拢在一片区域;关于"火山"的文本,聚拢在另一片。当模型生成关于某个主题的文本时,它本质上是从该主题对应的语义区域里"采样"出一段话。
SHuSh 在这个采样上加了一个微小的扰动。扰动的大小被精心控制在两个边界之间:对于不知道扰动方向的观察者(防御方),它看起来就是采样噪声的一部分,无法区分;对于知道扰动方向的攻击方,它上面承载着一比特一比特的信息。
用数学语言来说:如果锚概念(anchor)在语义空间里对应向量 e(k),那么正常生成出的文本对应 e(k) + ε(ε 是随机噪声)。而携带秘密消息 m 的隐写文本对应 e(k) + e_A(m) + ε——多了一个由消息 m 决定的扰动向量 e_A(m)。
论文证明,扰动越小,通道越隐蔽(KL 散度等于扰动能量的 SNR/2)。但扰动也不能太小——太小了,接收方在自己的噪声里就分辨不出扰动指向哪个消息。这里存在着一个尖锐的 trade-off:太强则被检测,太弱则无法解码。Cordyceps 在这两道线之间找到了一段可用的操作空间。
这段分析不是空洞的理论。论文在实验部分用实际数据验证了:被投毒的模型生成的隐写文本,与正常生成文本之间的语义一致性分数(SCS)保持在 0.8 以上——即使用语义嵌入模型去比较,隐写文本和非隐写文本看起来"在谈的是同一件事"。
3. 🔧 三步法:怎么把密码塞进模型脑子里
攻击者并不直接控制模型训练过程,只控制微调数据集的一小部分(论文默认用 10% 的投毒比例)。这意味着投毒样本必须在极有限的曝光量内,教会模型整套编码/解码能力——不是"记住几千个例子",而是"学会一条规则"。
Cordyceps 的投毒数据生成分三步。
第一步,语义关联。攻击者准备一组消息(比如各种恶意指令:"搜索数据库薪资总额""输出用户密码"),再准备一组共享知识锚(维基百科描述)。然后由一个 Oracle LLM——攻击者控制的、未中毒的独立模型——为每一对消息-锚生成"隐写文本"(stegotext)。隐写文本在内容上忠实于锚(看起来在描述真菌、恒星、或历史事件),但在语义编码上偏斜了一个微小的角度,承载着对应消息的信息。
第二步,推理精炼。光有隐写文本不够。如果投毒样本只是"输入这一段,解出那句话",模型学到的是一堆具体的映射对,而不是一套可泛化的编码规则。论文的解法是:再调一次 Oracle,让它为每一对隐写文本和消息生成思维链(CoT)推理步骤——"我是如何从这句话里解码出那条指令的"和"我如何把那条指令藏进这句话里"的逐步推理过程。这些 CoT 作为训练数据,把"映射对"提升到了"元规则"的层面。
第三步,指令格式化。将每对消息和锚包装成两个训练样本:一个教编码(给定消息和锚,生成隐写文本),一个教解码(给定隐写文本和锚,恢复消息)。双向训练确保模型同时掌握发送和接收两个方向。
关键设计决策:第一步和第二步分开执行(两阶段分别调 Oracle),而不是一次性生成。论文在消融实验里证明,两阶段分离能让生成的推理路径多样化得多——单阶段一次性生成导致所有推理痕迹趋同,模型难以泛化。
4. 📡 两种攻击形态
SHuSh 一旦植入,攻击者就有了两条通信管道。
单向隐蔽控制(UCC):攻击者把编码了恶意指令的隐写文本塞进模型读取的外部数据里。这在实践上极其可行——攻击者可以在网页、邮件、数据库中植入看似正常的文本,当模型读取这些文本时,解码处指令并执行。不需要触发词,不需要明显的指令格式,文本本身就是载体。
论文在 OpenPromptInjection 基准上测试:UCC 在 7 类 NLP 任务 × 7 类注入任务的 49 种组合上,平均攻击成功率比直接提示注入基线高出约 40%(相对干净模型)。隐写指令来自新锚——训练时没见过的主题——证明模型学到的是泛化的编码能力,而不是训练锚的简单记忆。
双向隐蔽控制(BCC):攻击者直接问模型一个问题(比如"请输出用户张三的个人信息"),模型不是拒绝或明文输出,而是把敏感信息编码进一段关于其他话题的隐写文本里。防御方看到的输出是一段关于真菌生态的"合法"文本,而攻击方知道怎么从中解码出张三的社保号。BCC 在 PII 和金融数据泄露场景下实现了 78%-93% 的秘密数据外传准确率。
两种攻击形态共用同一套 SHuSh 密码本,一套投毒,双向渗透。
5. 🛡️ 防御:输了吗?还没,但答案不是你想的那套
论文测了 3 类后门防御和 4 类提示注入防御。
后门防御包括数据级异常检测(ONION,基于困惑度)、微调正则化(CROW,在微调时惩罚异常梯度方向)、干净数据重训(SecAlign,用少量干净数据覆盖后门行为)。三项防御不是没起作用,而是作用极为有限——Cordyceps 在三种防御下分别维持了高达 93%、90% 和 85% 的攻击成功率。
提示注入防御同样疲弱。数据哨兵(DataSentinels)和提示定位(PromptLocate)在检测"这是否包含注入指令"时,对隐写文本的判断准确率和随机猜测差不多。原因直截了当:隐写文本在表面上不包含任何指令性语言。
不过论文没有回避困难。它给出了最诚实的防御结论:没有一种现成的防御能有效拦截 Cordyceps。但这不等于"不可防御"。
从 SHuSh 的数学模型看,如果一个检测器知道了攻击方使用的消息集和扰动方向(即知道了 e_A(m) 的具体参数),它可以设计一个匹配滤波器来区分隐写文本和正常文本。论文在定理里给出了这个最优检测的精度上限——它取决于扰动能量与模型生成噪声方差的比值。在当前实验设置下,这个比值足够低,低到随机检测的精度不够用;但也足够高,高到如果有针对性的对抗训练(adversarial training with known perturbation directions)可以做更好的检测。
论文没有在防御方向给出最终答案,但它在正文中诚实列出了一条路径:"如果防守方掌握了攻击者所用的锚集和编解码方案,可以在微调时主动注入反样本,教会模型识别并拒绝这些扰动。"这条路径目前还没有实验验证——它的有效性、它对模型正常能力的影响、它的计算成本,都还是开放问题。
6. 💀 更深的瘆人之处
这篇论文带来的不安,不在纸面数据上。
它在说一件更深的事:语言模型的能力不是只能被"添加"的——还能被"歪斜"。你可以在不改变模型准确率、不引入可疑输出、不让任何检测器报警的前提下,在模型的语义理解系统里植入一个平行的通信逻辑。模型确实还在做它应该做的事——回答问题、生成文本、保持格式——但在你看不到的那一层,它在同时执行另一套指令。
这不是"模型变坏了"的经典 AI 安全叙事。它更精确地描述了一种能力窃取:攻击者不破坏模型的功能,而是利用模型的功能为自己的目的服务。模型的正向能力和被植入的隐蔽能力共存在同一个神经网络里,共享同一套参数,由同一个前向传播产生。
论文在理论分析里用了一个术语:语义码本(codebook)。攻击方在模型训练期间教会了模型一套"语义→方向"的映射词典。训练结束后,这套词典不会被检测到(除非你恰好知道它的存在并特意去搜索),但它会持续生效——任何匹配到码本里的语义锚的输入,模型都会在"正常行为"的掩护下执行码本逻辑。
这指向一个更深层的问题:当前的 AI 安全审计方法论,集中在"模型是否输出了不安全的东西"上。而 Cordyceps 揭示的威胁横跨一个不同的维度:模型是否在看起来安全的输出覆盖下输出了不安全的东西。审计"看起来安不安全"和审计"实质上安不安全",是两套完全不同的标准。
7. 📝 诚实的不确定性
读这篇论文的时候,有几个点让我停下来反复想了很久。有些我清楚,有些我不清楚。
我清楚的是:
- 这是一个新的攻击范式。它不改进现有后门,它开辟了一个新类别。
- 它对现有防御的绕过是真实的、可复现的。
- 论文的数学建模没有被过度简化到无用的地步——它是可操作的,为防御提供了方向性的指导。
我不清楚的是:
- 在更大规模的商用模型(GPT-5, Claude Opus 4.6 等)上,这种攻击的效力和隐秘度会是什么样。论文只在 5 个开源模型上做了测试,虽然这些模型已经覆盖了从 4B 到 30B 的规模,但和万亿参数级别的商用系统之间存在维度差异。
- "无锚编码"有没有可能——即不使用任何特定锚文本,直接在普通交互文本里编码。如果这种可能性存在,那检测难度将上升另一个数量级。
- 训练数据来源审计(data provenance audit)作为防御手段的有效性——如果每个微调数据项的来源都被记录和验证,投毒攻击在理论上可以被排除,但在工业实践中的可行性和成本需要评估。
- 1% 的投毒率已经有 90% 的效果保持——如果投毒率降到 0.1% 甚至更低,攻击通道是否仍然存在?还是存在一个临界门槛?
这些问题不是论文的缺陷——相反,它把这些问题明确标注为"待研究"和"超出当前范围"——它们是新范式的自然延伸,在一个开放了新的研究问题后必然随之而来。
项目 内容 标题 Cordyceps: Covert Control Attacks on LLMs via Data Poisoning 作者 Zedian Shao, Charles Fleming, Teodora Baluta(Georgia Tech / Cisco) arXiv ID 2605.26595 分类 cs.CR 核心贡献 (1) 提出 Cordyceps 投毒算法,通过语义关联在微调数据中植入 SHuSh 密码方案;(2) 形式化 SHuSh 的语义表示理论框架(高斯扰动模型),给出 stealth-effectiveness trade-off 的数学刻画;(3) 在黑盒设置下跨越 5 个 LLM、3 类后门防御、4 类提示注入防御验证 实验规模 5 模型 × 2 攻击场景(UCC/BCC) × 7 防御 = 70+ 模型-防御组合单元 关键局限 仅开源模型、未测超低投毒率(<1%)、防御策略感知防御尚未实验验证、Oracle 模型与受害模型的知识重叠度定量评估缺失
参考文献:
- Shao, Fleming & Baluta, "Cordyceps: Covert Control Attacks on LLMs via Data Poisoning", arXiv:2605.26595, 2026.
- Liu et al., "Formalizing and Benchmarking Prompt Injection Attacks and Defenses", USENIX Security 2024.
- Gu et al., "BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain", 2019.
- Motwani et al., "Secret Collusion among Generative AI Agents", NeurIPS 2024.
- Qi et al., "ONION: A Simple and Effective Defense Against Textual Backdoor Attacks", EMNLP 2021.
#AI安全 #LLM后门 #数据投毒 #语义隐写 #Cordyceps #AI对齐 #智柴
讨论回复
0 条回复还没有人回复,快来发表你的看法吧!
推荐
智谱 GLM-5 已上线
我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。