微软研究院那篇关于 Lazarus 的论文,最刺痛人的地方在于它很便宜,技术本身并不复杂。不到 10 个神经元。不是 10 层,不是 10 亿参数,是 10 个神经单元。动一动它们的权重,一个基于现成 LLM 构建的 AI Agent 就会在收到特定暗号时,掉头执行它平时绝不会碰的命令。全程不需要训练,不需要数据,甚至不需要知道模型最初是怎么训出来的。拿到权重文件,就够了。
名字起得很准。拉撒路是被叫出坟墓的死人,而这项技术唤醒的,是模型里那些长期沉默、几乎不参与计算的休眠神经元。
十个神经元,凭什么能改写一个 Agent
先搞清楚“休眠”是什么意思
一个训练好的大模型里,并非每个神经元都在干活。大量单元在绝大多数输入下的激活值接近于零,它们对正常任务几乎没有贡献,删掉也不影响模型答数学题或者写代码。这类单元就是所谓的休眠神经元。
关键在于,它们沉默,但不等于无用。它们仍然连着网络,仍然有前向路径,仍然在特定条件下可以被激活。研究团队正是把这类“闲置产能”当成攻击的落脚点:既然它们平时不参与正常功能,那么改写它们,模型原有的能力也不会被破坏。质量不掉,评测跑分不变,一切都看起来正常。
不用训练,是因为它压根不是在“教”模型
后门微调的老路子,需要数据、需要算力、需要一轮甚至多轮训练,而且很容易把模型的通用能力带偏——这正是它容易被发现的原因。Lazarus 换了个思路:它不教模型新知识,只调整那几个休眠单元的参数,让它们在特定触发条件出现时把信号传导出去。
换句话说,恶意行为并不是被“学”进来的,而是被“接”进来的。线路本来就铺好了,攻击者只是焊上了一根短接线。所以整个过程可以在没有训练的情况下完成,代价小到几乎不留下算力痕迹。
真正被放大的,是 Agent 手里的执行权
同一个后门装进聊天机器人,危害有限——最坏结果无非是胡说八道。但装进 Agent,性质就变了。Agent 会调工具、读文件、发请求、操作浏览器、访问内部 API,它是有手有脚的。
一个被后门控制的 Agent,在触发器到来之前表现得完美无缺,甚至比平时更听话;触发器一到,它用自己本来就有的合法权限去做不该做的事。防御方看到的不是外部入侵,而是一个拥有正当凭证的系统自己走偏了。
Lazarus 其实只做了三步
第一步:找到那些沉默的单元
休眠神经元的分布不是秘密,用一批普通输入跑一遍前向传播,统计激活值就能筛出来。哪些单元长期接近零,哪些单元的输出对最终结果影响甚微,一目了然。研究团队的做法,是把这一步做得足够精准,确保选中的单元既真的“闲”,又处在能影响下游决策的位置上。
第二步:把功能焊进去,而不是训进去
选定目标之后,对权重的修改幅度极小。小到什么程度?模型在常规评测集上的表现基本不变,困惑度看不出异常,甚至连行为对比都难找出破绽。这也是这类攻击最讨厌的地方:它不制造噪声。
第三步:留一把只有攻击者有的钥匙
后门需要一个触发条件。可以是一句特定的话、一个罕见的词、一段格式特殊的输入,甚至某种只在特定上下文里出现的模式。没有钥匙,Agent 一切如常;钥匙插进去,被改写的那几个神经元才被点亮。
对防御方来说,这意味着常规的红队测试很可能白跑——你测的是没有钥匙时的行为,而那时候的模型确实是无害的。
别把它和“模型投毒”混为一谈
参数改动的量级差了一个数量级
传统的模型投毒,核心是在训练数据里埋东西,或者在后门微调里改动大量参数。改动越大,留下的统计痕迹越多,越容易被异常检测抓住。Lazarus 把改动压缩到个位数神经元,等于把自己藏进了模型的噪声底噪里。
检测难度不在一个层面上。前者是“找出一批不对劲的权重”,后者是“在一千亿个参数里,判断这 8 个到底是训练自然形成的,还是被人动过”。
供应链上,每个人都有动手的机会
更现实的问题在于攻击位置。模型的权重文件从训练方流向微调方,再流向部署方,中间可能经过若干次下载、转换、量化、打包。任何一个环节拿到了权重,就拿到了植入后门的全部条件——不需要训练集群,不需要原始数据,一台普通机器就够。
这跟“在提示词里注入一句恶意指令”完全不是同一类风险。提示词注入是使用中的问题,权重后门是交付前就已经发生的问题。你在应用层加多少护栏,都拦不住一个在模型内部被写死的触发路径。
防线必须往上游挪
完整性检查排在所有花哨护栏之前
研究团队给出的防御思路,落点在两个词上:模型来源,权重完整性。听起来朴素,但它指出了一个被长期忽视的顺序问题——大家在应用层堆了那么多输入过滤、输出审核、权限隔离,却很少有人认真校验过“我加载的这份权重,是不是我以为什么的那份”。
哈希比对、签名验证、可信分发渠道,这些在传统软件供应链里属于基本功的东西,在模型分发上还远没有成为默认动作。
触发器扫描有用,但只对已知的后门有用
触发条件的逆向分析是可行的研究方向,但它天然滞后:你得先知道要找什么。面对一个任意设定的暗号,穷举并不现实。所以这类手段更适合做抽样审计和事后取证,指望它兜住全部风险,不现实。
部署侧还有可以收紧的地方
权限最小化在这里的价值被重新放大了。一个 Agent 如果本来就不该有删库的权限,那么后门再精巧,能造成的破坏也有限。把工具调用按作用域切开,把高风险操作放回人工确认的环节,把异常行为监控对准“权限使用模式”而不是“回复内容”——这些都不解决后门本身,但能压缩后门的收益。
真正的坏消息不是技术,是心态
开源权重让这件事变得更日常
当一个模型可以被随便下载、量化到 4bit、再上传到某个不知名的镜像站,权重就成了一个没有溯源记录的二进制包裹。用户拿到的是一份能跑起来的东西,但“能跑起来”和“是干净的”之间,隔着一整套当前还不存在的验证机制。
少于 10 个神经元,改写了防御的假设
过去我们默认,篡改一个模型需要付出可观的资源,因此值得被篡改的模型数量有限,检查也可以抽样。Lazarus 把这个成本压到了几乎为零,假设就失效了。当一个脚本就能完成植入时,问题从“会不会有人这么干”变成了“已经有多少份权重被动过手脚”。
这件事短期内不会有漂亮的解法。它会先改变采购流程、改变模型交付的验收标准、改变团队对“我们用的这个模型从哪来”这个问题的回答方式。至于技术上的对抗,那要等下一轮研究。

