Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
modelaudit — 用于 AI/ML 模型文件的安全扫描器。在部署前检测恶意代码、后门和漏洞。 | Kitploit
工具/GitHubGitHub/promptfoo/modelaudit
静态分析静态代码分析 (SAST)漏洞分析数据泄露恶意软件分析DevSecOps秘密检测供应链安全机器学习AI 安全对抗性攻击对抗性攻击 分类第 14 名
7521653小时36分前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
AI 安全 分类第 14 名
机器学习 分类第 9 名
GitHubpromptfoo/modelaudit

modelaudit

用于 AI/ML 模型文件的安全扫描器。在部署前检测恶意代码、后门和漏洞。

查看仓库网站

ModelAudit

在部署之前保护你的 AI 模型。 静态扫描器,可检测 ML 模型文件中的恶意代码、潜在后门指标和安全漏洞——而无需加载或执行它们。

PyPI version Python versions Code Style: ruff License Security policy

ModelAudit scan results

完整文档 | 用法示例 | 支持的格式

为什么选择 ModelAudit

模型从未受信任的注册表下载,经过 CI,最终在生产环境中运行。传统的 SAST 工具不会检查 pickle 操作码、HDF5 组布局、ONNX proto 图或 TensorFlow SavedModel 签名——而 ModelAudit 可以:

  • 静态扫描。 任何模型都不会被加载、反序列化或执行。
  • 覆盖你实际交付的格式。 40+ 个扫描器,涵盖 pickle、PyTorch、SafeTensors、ONNX、TensorFlow、Keras、GGUF、压缩包和配置文件。
  • 集成到 CI。 机器可读输出(JSON、SARIF)、严格模式、退出代码以及可选择的扫描器。
  • 暴露覆盖范围限制。 已识别的扫描器会报告有界分析的缺口,例如截断读取或预算耗尽,而不是将其呈现为完全覆盖的结果。

同类工具:picklescan(仅支持 pickle,基于 Python)、fickling(仅支持 pickle,基于 AST)、modelscan(pickle + TensorFlow + Keras 子集)。ModelAudit 覆盖范围更广,并通过其同伴包 modelaudit-picklescan 提供原生的 Rust pickle 引擎。

快速开始

需要 Python 3.10-3.13```bash pip install "modelaudit[all]"

Scan a file or directory

modelaudit model.pkl modelaudit ./models/

Export results for CI/CD

modelaudit model.pkl --format json --output results.json

I'm ready to translate the provided content, but the INPUT section appears to be empty. Please provide the actual chunk 3 content so I can translate it.```
$ modelaudit suspicious_model.pkl

Files scanned: 1 | Issues found: 2 critical, 1 warning

1. suspicious_model.pkl (pos 28): [CRITICAL] Malicious code execution attempt
   Why: Contains os.system() call that could run arbitrary commands

2. suspicious_model.pkl (pos 52): [WARNING] Dangerous pickle deserialization
   Why: Could execute code when the model loads

它能检测什么

  • 代码执行攻击 — 在 Pickle、PyTorch、NumPy 和 Joblib 文件中执行恶意代码
  • 潜在后门指标 — 可疑的权重模式、异常张量或隐藏代码信号
  • 嵌入式机密 — 模型权重或元数据中的 API 密钥、令牌和凭据
  • 网络指标 — 可能导致数据外泄的 URL、IP 和套接字使用情况
  • 归档漏洞利用 — ZIP/TAR/7z 文件中的路径遍历、符号链接攻击
  • 不安全的 ML 操作 — Lambda 层、自定义操作、TorchScript/JIT、模板注入
  • 供应链风险 — 篡改、许可证违规、可疑配置

支持的格式

ModelAudit 包含 45 个已注册的扫描器,涵盖模型、归档和配置文件格式:

格式扩展名风险
Pickle.pkl, .pickle, .dill高
PyTorch.pt, .pth, .ckpt, .bin高
Joblib.joblib高
NumPy.npy, .npz高
R 序列化.rds, .rda, .rdata、签名验证通过的重命名工作区工件高
TensorFlow.pb, .meta、SavedModel 目录中
Keras.h5, .hdf5, .keras中
ONNX.onnx中
CoreML.mlmodel、结构有效的重命名工件低
MXNet*-symbol.json, *-NNNN.params、结构有效的重命名符号 JSON低
NeMo.nemo、带有根配置的重命名归档中
CNTK.dnn, .cmf、签名验证通过的重命名工件中
RKNN.rknn、非冲突重命名后缀下签名验证通过的工件中
Torch7序列化工件 (.t7, .th, .net 或重命名)高
CatBoost.cbm中
XGBoost.bst, .model, .json, .ubj、无扩展名的 UBJSON中
LightGBM.lgb, .lightgbm, .model、签名验证通过的重命名工件中
Llamafile可执行包装器 (.llamafile, .exe、无扩展名或已重命名)中
TorchServe.mar高
SafeTensors.safetensors低
GGUF/GGML.gguf, .ggml, .ggmf, .ggjt, .ggla, .ggsa、签名验证通过的重命名工件低
JAX/Flax.msgpack, .flax, .orbax, .jax, .checkpoint, .orbax-checkpoint低
TFLite.tflite、非冲突重命名后缀下签名验证通过的工件低
ExecuTorch.ptl, .pte、非冲突重命名后缀下签名验证通过的独立工件低
TensorRT.engine, .plan, .trt低
PaddlePaddle.pdmodel, .pdiparams低
OpenVINO.xml低
Skops.skops高
PMML.pmml低
压缩封装.gz, .bz2, .xz, .lz4, .zlib中

另有针对 ZIP、TAR、7-Zip、OCI 层、Jinja2 模板、JSON/YAML 元数据、清单、模型卡、文本文件和 RAR 识别的扫描器。RAR 压缩包会被报告为不支持/失败关闭(fail-closed),而不是被跳过。

结构有效的 TensorFlow SavedModel 和 MetaGraph protobuf,在重命名为非模型后缀时也会被识别。

CoreML 模型在重命名后也能被识别,并且会明确报告覆盖不完整的情况。

具有过大但看似合理的帧结构的 SafeTensors 文件,会在未被其他格式认领的后缀(如 .jpg)下保留,以进行有界且非结论性的分析。

结构上看似合理的 Flax/JAX MessagePack 检查点在重命名为非模型后缀时也会被识别;无法完整分类的重命名结构会被报告为覆盖不完整。

结构化的 JAX/Orbax JSON 检查点元数据在重命名后同样会被识别;过大的模糊候选会被报告为覆盖不完整;在有限的检查前缀中可观察到的安全模式仍会被保守报告。

查看完整的格式文档

远程来源

直接从远程仓库和云存储扫描模型:```bash

Hugging Face

modelaudit https://huggingface.co/gpt2 modelaudit hf://microsoft/DialoGPT-medium

Cloud storage

modelaudit s3://bucket/model.pt modelaudit gs://bucket/models/

MLflow registry

Non-local artifact stores: export MODELAUDIT_MLFLOW_ALLOWED_ARTIFACT_URIS=s3://trusted-bucket/models

modelaudit models:/MyModel/Production

JFrog Artifactory (files and folders)

Auth: export JFROG_API_TOKEN=...

modelaudit https://company.jfrog.io/artifactory/repo/model.pt modelaudit https://company.jfrog.io/artifactory/repo/models/

DVC-tracked models

modelaudit model.dvc

### 认证环境变量

- `HF_TOKEN` 用于私有 Hugging Face 仓库
- `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`(以及可选的 `AWS_SESSION_TOKEN`)用于 S3
- `GOOGLE_APPLICATION_CREDENTIALS` 用于 GCS
- `MLFLOW_TRACKING_URI` 用于访问 MLflow 模型注册表
- `MODELAUDIT_MLFLOW_ALLOWED_ARTIFACT_URIS` 用于非本地 MLflow 工件根路径(逗号分隔的 URI 前缀)
- 使用具体的后端根路径,如 `s3://bucket/prefix`;逻辑上的 `models:/` 或 `runs:/` URI 以及百分号编码的远程路径将被拒绝。
- `JFROG_API_TOKEN` 或 `JFROG_ACCESS_TOKEN` 用于 JFrog Artifactory
- `MODELAUDIT_JFROG_ALLOWED_HOSTS` 用于逗号分隔的自定义 JFrog 主机名,这些主机名可能接收凭据
- `MODELAUDIT_JFROG_ALLOWED_REDIRECT_HOSTS` 用于逗号分隔的外部重定向主机名,这些主机名可以在不使用凭据的情况下下载
- 将凭据存储在环境变量或密钥管理器中,切勿提交令牌/密钥。

## 安装```bash
# Broad scanner coverage (recommended; excludes the TensorFlow runtime and platform-specific TensorRT)
pip install "modelaudit[all]"

# Core only (static scanners, pickle, NumPy, archives, manifests, metadata)
pip install modelaudit

# Specific frameworks (TensorFlow installs on Python 3.11-3.12; ONNX installs on Python 3.10-3.12)
pip install "modelaudit[tensorflow,pytorch,h5,onnx,safetensors]"

# CI/CD environments
pip install "modelaudit[all-ci]"

# On Python 3.11-3.12, add TensorFlow only when you need runtime-dependent checkpoint or weight analysis
pip install "modelaudit[all,tensorflow]"

# Docker
docker run --rm -v "$(pwd)":/app ghcr.io/promptfoo/modelaudit:latest model.pkl

ONNX extra(包括 modelaudit[all] 中的 ONNX 部分)适用于 Python 3.10-3.12。 包含 PyTorch 的 extra 需要 Python 3.10-3.12 或标准(启用 GIL 的)CPython 3.13;修补版 PyTorch 2.13 wheel 不支持 free-threaded CPython 3.13t。请使用标准 CPython,因为 ModelAudit 的原生 pickle 扫描器同样 不支持 CPython 3.13t。在 Apple Silicon 上,包含 PyTorch 的 extra 需要 macOS 14 或更高版本,因为这些 wheel 以 macosx_14_0_arm64 为目标;仅核心安装仍可用于在 macOS 11-13 上进行静态扫描。

CLI 选项

下载工具