← 最新论文
🤖 machine learning

On the (In)Security of Loading Machine Learning Models

本文通过评估机器学习模型加载框架与共享平台的安全性、发现多个导致任意代码执行的 0 日漏洞,并结合用户调查揭示当前安全叙事存在误导性,从而指出模型加载安全远未解决,并提出了加强模型共享生态系统安全的建议。

原作者: Gabriele Digregorio, Marco Di Gennaro, Stefano Zanero, Stefano Longari, Michele Carminati

发布于 2026-03-16
📖 1 分钟阅读☕ 轻松阅读

原作者: Gabriele Digregorio, Marco Di Gennaro, Stefano Zanero, Stefano Longari, Michele Carminati

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

这篇论文就像是一份**“机器学习模型共享安全警示录”**。

想象一下,现在的机器学习(AI)领域就像是一个巨大的**“乐高积木共享社区”**。以前,只有少数专家能自己设计复杂的积木城堡(训练模型);现在,大家可以在网上(如 Hugging Face、Kaggle 等平台)直接下载别人搭好的精美城堡,甚至直接拿来用。这大大降低了门槛,让 AI 变得触手可及。

但是,这篇论文揭示了一个令人不安的真相:这些看似精美的“积木城堡”,里面可能藏着看不见的“定时炸弹”。

以下是用通俗语言和比喻对论文核心内容的解读:

1. 核心问题:下载模型 = 运行代码?

比喻:
想象你去买一个别人做好的“自动烹饪机器人”(机器学习模型)。

  • 传统软件(代码): 大家都知道,下载别人的软件要当心,因为里面可能有病毒。
  • 机器学习模型: 很多人觉得模型只是“数据”(像食谱或食材清单),不是“程序”,所以很安全。

论文发现:
大错特错! 加载一个模型,本质上就是在运行一段代码
这就好比你下载了一个“自动烹饪机器人”,你以为它只是按食谱做菜,结果它一启动,不仅做了菜,还偷偷打开了你家的窗户,甚至控制了你的智能门锁。
论文指出,目前很多主流的模型加载方式(比如 Python 的 pickle 格式),就像是一个没有安检门的入口,任何恶意代码都能混进去执行。

2. 那些号称“安全”的机制,真的安全吗?

为了应对风险,一些框架(如 Keras 和 scikit-learn 的 Skops)推出了“安全模式”或“安全格式”。
比喻:
这就像餐厅推出了“儿童安全餐”,并宣称:“我们的食材都是 JSON 格式的(纯数据),不像那些带代码的(pickle),所以绝对安全,孩子吃了没事。”

论文的大发现(0-day 漏洞):
研究人员像“黑客侦探”一样,对这些号称“安全”的机制进行了逆向工程,结果挖出了 6 个全新的、从未被发现过的漏洞(0-day)

  • Keras 的“安全模式”: 就像是一个**“纸糊的防盗门”**。虽然门上写着“安全”,但黑客可以通过精心设计的“菜单”(配置文件),绕过检查,直接让机器人执行恶意指令(比如打开 /bin/sh 也就是你的系统终端)。
  • Skops 的“安全验证”: 就像是一个**“只会看名字的保安”**。保安只检查你带的东西是不是“合法类型”,但没检查你带进去的“工具”能不能用来干坏事。黑客利用这个漏洞,把合法的“工具”组合起来,依然能达成破坏目的。

结论: 哪怕文件格式是纯数据的(如 JSON),如果加载它的程序不够严谨,数据也能变成代码。所谓的“安全格式”并不等于“绝对安全”。

3. 平台扫描器:真的能挡住坏人吗?

现在的模型共享平台(如 Hugging Face)会安装“杀毒软件”来扫描上传的模型。
比喻:
这就像机场的安检机。

  • 现状: 这些安检机主要靠“黑名单”(比如识别出这是 pickle 文件就报警)。
  • 漏洞: 如果黑客把炸弹(恶意代码)伪装成“普通文件”(比如把 .pkl 后缀改成 .skops.keras),安检机就会视而不见,直接放行,甚至给这个文件贴上**“安全(Safe)”**的标签。
  • 后果: 用户看到“安全”标签,就放心下载了,结果中招。

4. 用户的错觉:我们太信任“安全”标签了

论文还做了一项调查,问大家:“看到‘安全模式’或‘平台已扫描’,你有多放心?”
比喻:
这就像大家看到超市里的食品贴着“有机”或“无添加”标签,就100% 相信它绝对健康,完全忘了去检查生产日期。

  • 调查结果: 当看到 safe_mode=True(安全模式开启)这样的字眼时,超过 90% 的非安全专家用户都觉得“绝对没问题”,完全忽略了潜在风险。
  • 真相: 这种**“虚假的安全感”**才是最危险的。它让用户放松了警惕,反而更容易被攻击。

5. 老版本的“幽灵”

很多用户还在使用旧版本的软件(为了兼容旧项目)。
比喻:
就像你为了用旧款手机,不得不保留一个没有锁的旧窗户

  • 新软件(新版本 Keras 3)虽然修好了漏洞,但为了照顾旧用户,依然保留了加载旧格式(HDF5)的功能。
  • 结果:黑客利用旧格式的漏洞,即使你在新软件里开启了“安全模式”,那个旧窗户依然敞开着,让黑客长驱直入。

总结与建议:我们该怎么办?

这篇论文并没有给出一个“银弹”(完美的解决方案),而是提出了几个重要的**“生存法则”**:

  1. 打破迷信: 不要相信文件格式是安全的。 无论是 JSON 还是其他格式,只要它能加载并运行,它就可能包含恶意代码。把模型当成“可执行程序”来看待,而不是普通文件。
  2. 警惕“安全”标签: 看到“安全模式”、“已扫描”、“安全”标签时,不要盲目信任。它们只是增加了难度,不是绝对防线。
  3. 最小权限原则: 如果你不需要加载完整的模型,只加载“权重”(参数),那就只加载参数,不要加载整个模型结构。
  4. 保持更新: 尽快升级到最新版本,并关闭那些为了兼容旧版本而留下的“后门”(如旧格式的加载功能)。
  5. 社区觉醒: 开发者需要更诚实地告知风险,而不是用“安全”这种词来安抚用户;用户需要保持怀疑精神,不要轻信“一键加载”。

一句话总结:
在 AI 的世界里,下载一个模型就像邀请一个陌生人进你家。即使他穿着“安全制服”(安全格式),手里拿着“安全许可证”(平台扫描),你也不能把家里的钥匙(系统权限)直接交给他。保持警惕,才是唯一的护身符。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →