Repolode
protectai

protectai/modelscan

一款扫描机器学习模型文件的工具,在加载前检测其中隐藏的不安全代码,防范模型序列化攻击。

Star
793
Fork
174
未关闭 Issue
105
最近提交
上个月

这是什么?

ModelScan 用于检查机器学习模型文件中在序列化时嵌入的不安全代码。加载基于 pickle 的恶意模型时,攻击代码可能立即执行,进而导致凭据或数据被盗、模型输出被投毒。ModelScan 逐字节读取文件内容并匹配已知的不安全代码特征,因此扫描过程不会执行模型本身。

该工具支持 H5、Pickle 和 SavedModel 格式,覆盖 PyTorch、TensorFlow、Keras、scikit-learn、XGBoost 等使用 pickle、dill、joblib 或 cloudpickle 保存的模型。检测到的问题按 LOW 到 CRITICAL 分级,结果可输出到控制台或导出为 JSON,也可通过设置文件自定义报告格式。

工具可通过 pip 安装,既能在命令行扫描本地模型文件,也能在 Python 代码中调用。退出码可区分无风险、发现问题和扫描出错三种情况,便于接入 CI/CD 流水线。

核心功能

  • 01无需加载即可扫描 H5、Pickle 和 SavedModel 格式的模型文件。
  • 02覆盖 PyTorch、TensorFlow、Keras、scikit-learn、XGBoost 等框架的模型。
  • 03将检测到的不安全代码按 LOW 到 CRITICAL 分级。
  • 04支持控制台和 JSON 报告,并可通过设置文件自定义格式。
  • 05提供 Python 接口和带退出码的命令行工具,便于脚本和 CI 集成。

适用场景

  • 在把第三方或 Hugging Face 上下载的模型加载到开发环境前进行扫描。
  • 在发布前检查训练流水线产出的模型,排查供应链篡改。
  • 在 CI/CD 中设置部署门禁,阻止存在风险的模型进入生产环境。

快速上手

  1. 1

    从 PyPI 安装 ModelScan

    pip install modelscan
  2. 2

    扫描本地模型文件

    modelscan -p /path/to/model_file.pkl

使用前须知

  • 仅支持部分模型格式(H5、Pickle、SavedModel)及基于 Pickle 的格式。
  • 扫描 TensorFlow 和 HDF5 模型需要安装额外依赖。

收录于专题

标签

常见问题

modelscan 是什么?
一款扫描机器学习模型文件的工具,在加载前检测其中隐藏的不安全代码,防范模型序列化攻击。 ModelScan 用于检查机器学习模型文件中在序列化时嵌入的不安全代码。加载基于 pickle 的恶意模型时,攻击代码可能立即执行,进而导致凭据或数据被盗、模型输出被投毒。ModelScan 逐字节读取文件内容并匹配已知的不安全代码特征,因此扫描过程不会执行模型本身。
modelscan 可以免费使用吗?用的什么许可证?
modelscan 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
modelscan 还在维护吗?
半年内有更新。modelscan 最近一次提交是在 2026年9月28日。
modelscan 适合用来做什么?
在把第三方或 Hugging Face 上下载的模型加载到开发环境前进行扫描。 在发布前检查训练流水线产出的模型,排查供应链篡改。 在 CI/CD 中设置部署门禁,阻止存在风险的模型进入生产环境。
modelscan 怎么安装和运行?
从 PyPI 安装 ModelScan: pip install modelscan 扫描本地模型文件: modelscan -p /path/to/model_file.pkl
在哪里获取 modelscan?
源代码和安装说明在 GitHub 上:https://github.com/protectai/modelscan

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目