Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
modelaudit — Escáner de seguridad para archivos de modelos de IA/ML. Detecta código malicioso, puertas traseras y vulnerabilidades antes del despliegue | Kitploit
Herramientas/GitHubGitHub/promptfoo/modelaudit
Análisis EstáticoAnálisis Estático de Código (SAST)Análisis de VulnerabilidadesExfiltración de DatosAnálisis de MalwareDevSecOpsDetección de SecretosSeguridad de Cadena de SuministroSeguridad de IA
GitHubpromptfoo/modelaudit

modelaudit

Escáner de seguridad para archivos de modelos de IA/ML. Detecta código malicioso, puertas traseras y vulnerabilidades antes del despliegue

6717hace 20h 30mRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver RepositorioSitio web

ModelAudit

Asegura tus modelos de IA antes del despliegue. Escáner estático que detecta código malicioso, posibles indicadores de puerta trasera y vulnerabilidades de seguridad en archivos de modelos de ML — sin cargarlos ni ejecutarlos nunca.

PyPI version Python versions Code Style: ruff License Security policy

Resultados del escaneo de ModelAudit

Documentación completa | Ejemplos de uso | Formatos admitidos

Por qué ModelAudit

Los modelos se descargan de registros no confiables, pasan por CI y terminan ejecutándose en producción. Las herramientas SAST tradicionales no examinan los opcodes de pickle, los diseños de grupos HDF5, los grafos proto de ONNX ni las firmas de TensorFlow SavedModel; ModelAudit sí lo hace:

  • Escaneo estático. Ningún modelo se carga, deserializa ni ejecuta jamás.
  • Cubre los formatos que realmente distribuyes. Más de 40 escáneres que abarcan pickle, PyTorch, SafeTensors, ONNX, TensorFlow, Keras, GGUF, archivos comprimidos y configuraciones.
  • Se integra en CI. Salida legible por máquina (JSON, SARIF), modo estricto, códigos de salida y escáneres seleccionables.
  • Expone los límites de cobertura. Los escáneres reconocidos informan de lagunas de análisis acotado, como lecturas truncadas o presupuestos agotados, en lugar de presentarlos como resultados totalmente cubiertos.

Herramientas comparables: picklescan (solo pickle, basado en Python), fickling (solo pickle, basado en AST), modelscan (subconjunto de pickle + TensorFlow + Keras). ModelAudit tiene una cobertura más amplia e incluye un motor pickle nativo en Rust a través de su paquete complementario modelaudit-picklescan.

Inicio rápido

Requiere 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

root@kitploit:~
No se proporcionó contenido para traducir en esta entrada.```
$ 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

Qué detecta

  • Ataques de ejecución de código en archivos Pickle, PyTorch, NumPy y Joblib
  • Posibles indicadores de puerta trasera — patrones de pesos sospechosos, tensores anómalos o señales de código oculto
  • Secretos incrustados — claves de API, tokens y credenciales en pesos de modelos o metadatos
  • Indicadores de red — URLs, IPs y uso de sockets que podrían permitir la exfiltración de datos
  • Explotación de archivos comprimidos — traversal de rutas, ataques de enlaces simbólicos en archivos ZIP/TAR/7z
  • Operaciones de ML no seguras — capas Lambda, operaciones personalizadas, TorchScript/JIT, inyección de plantillas
  • Riesgos de la cadena de suministro — manipulación, violaciones de licencia, configuraciones sospechosas

Formatos admitidos

ModelAudit incluye 45 escáneres registrados que cubren formatos de modelos, archivos y configuración:

Además, incluye escáneres para ZIP, TAR, 7-Zip, capas OCI, plantillas Jinja2, metadatos JSON/YAML, manifiestos, tarjetas de modelo, archivos de texto y reconocimiento de RAR. Los archivos RAR se notifican como no compatibles/cerrados ante fallos en lugar de omitirse.

Los protobufs de TensorFlow SavedModel y MetaGraph estructuralmente válidos también se reconocen cuando se renombran con sufijos que no son de modelo. Los modelos CoreML también se pueden reconocer cuando se renombran, y la cobertura incompleta se notifica explícitamente. Los archivos SafeTensors con estructura de tamaño excesivo pero plausible se conservan para un análisis acotado y no concluyente bajo sufijos de otro modo no reclamados, como .jpg. Los checkpoints MessagePack de Flax/JAX estructuralmente plausibles también se reconocen cuando se renombran con sufijos que no son de modelo; las estructuras renombradas que no se pueden clasificar por completo se notifican como cobertura incompleta. Los metadatos estructurados de checkpoint JSON de JAX/Orbax también se reconocen cuando se renombran; los candidatos ambiguos de tamaño excesivo se notifican como cobertura incompleta; los patrones de seguridad observables en el prefijo inspeccionado acotado aún pueden notificarse de forma conservadora.

Ver documentación completa de formatos

Fuentes remotas

Escanea modelos directamente desde registros remotos y almacenamiento en la nube:```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

root@kitploit:~
### Variables de entorno de autenticación

- `HF_TOKEN` para repositorios privados de Hugging Face
- `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` (y opcional `AWS_SESSION_TOKEN`) para S3
- `GOOGLE_APPLICATION_CREDENTIALS` para GCS
- `MLFLOW_TRACKING_URI` para acceso al registro de MLflow
- `MODELAUDIT_MLFLOW_ALLOWED_ARTIFACT_URIS` para raíces de artefactos MLflow no locales (prefijos de URI separados por comas)
- Usa raíces de backend concretas como `s3://bucket/prefix`; se rechazan las URIs lógicas `models:/` o `runs:/` y las rutas remotas con codificación porcentual.
- `JFROG_API_TOKEN` o `JFROG_ACCESS_TOKEN` para JFrog Artifactory
- `MODELAUDIT_JFROG_ALLOWED_HOSTS` para nombres de host personalizados de JFrog separados por comas que pueden recibir credenciales
- `MODELAUDIT_JFROG_ALLOWED_REDIRECT_HOSTS` para nombres de host de redirección externos separados por comas que pueden descargarse sin credenciales
- Almacena las credenciales en variables de entorno o en un administrador de secretos, y nunca confirmes tokens/claves.

## Instalación```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

El extra de ONNX, incluida la parte de ONNX de modelaudit[all], está empaquetado para Python 3.10-3.12. Los extras que contienen PyTorch requieren Python 3.10-3.12 o CPython 3.13 estándar (con GIL habilitado); las ruedas de PyTorch 2.13 parcheadas no admiten CPython 3.13t sin GIL. Use CPython estándar, ya que el escáner nativo de pickle de ModelAudit tampoco admite CPython 3.13t. En Apple Silicon, los extras que contienen PyTorch requieren macOS 14 o posterior porque las ruedas apuntan a macosx_14_0_arm64; la instalación solo con el núcleo sigue disponible para el escaneo estático en macOS 11-13.

Opciones de CLI

Comandos principales:```bash modelaudit [PATHS...] # Default scan command modelaudit scan [OPTIONS] PATHS... # Explicit scan command modelaudit scan --list-scanners # List scanner IDs for targeted scans modelaudit metadata [OPTIONS] PATH # Extract model metadata safely (no deserialization by default) modelaudit doctor [--show-failed] # Diagnose scanner/dependency availability modelaudit debug [--json] [--verbose] # Environment and configuration diagnostics modelaudit cache [stats|clear|cleanup] [OPTIONS]

root@kitploit:~
Opciones de escaneo comunes:```text
--format {text,json,sarif}   Output format (default: auto-detected)
--output FILE                Write results to file
--strict                     Fail on warnings, scan all file types, strict license validation
--sbom FILE                  Generate CycloneDX SBOM
--stream                     Process files one-by-one; remote downloads are deleted after scanning
--assume-shard-family        Treat explicitly listed cross-directory shards as one model family
--max-size SIZE              Size limit (e.g., 10GB)
--timeout SECONDS            Override scan timeout
--dry-run                    Preview what would be scanned
--verbose / --quiet          Control output detail
--blacklist PATTERN          Additional patterns to flag
--no-cache                   Disable result caching
--cache-dir DIR              Set cache directory for downloads and scan results
--progress                   Force progress display
--scanners LIST              Only run selected scanners (IDs/classes; comma-separated or repeated)
--exclude-scanner NAME       Exclude a scanner from the active set (comma-separated or repeated)
--list-scanners              List scanner IDs, class names, extensions, and dependencies

Selección de escáner dirigido:```bash

Discover scanner IDs and class names

modelaudit scan --list-scanners modelaudit scan --list-scanners --format json

Run only selected scanners

modelaudit scan ./models --scanners pickle,tf_savedmodel modelaudit scan ./model.pkl --scanners PickleScanner

Run the default scanner set except a noisy or slow scanner

modelaudit scan ./models --exclude-scanner weight_distribution

For container formats, include both the container scanner and nested scanner

modelaudit scan ./archive.zip --scanners zip,pickle

root@kitploit:~
`--scanners` parte de una lista de permitidos explícita. `--exclude-scanner` resta escáneres de esa lista de permitidos o del conjunto de escáneres predeterminado. La selección de escáneres se refleja en la salida JSON bajo `scanner_selection`.

Para carpetas remotas, ModelAudit restringe las descargas según las extensiones de escáner seleccionadas cuando es seguro. El enrutamiento de envoltorios renombrados basado en contenido se aplica después de la adquisición; escanee una URL de archivo directa cuando los nombres de archivo del repositorio puedan ser intencionalmente engañosos.

## Extracción de metadatos```bash
# Human-readable summary (safe default: no model deserialization)
modelaudit metadata model.safetensors

# Machine-readable output
modelaudit metadata ./models --format json --output metadata.json

# Focus only on security-relevant metadata fields
modelaudit metadata model.onnx --security-only

--trust-loaders habilita los cargadores de metadatos del escáner que pueden deserializar contenido del modelo. Úselo únicamente en artefactos de confianza en entornos aislados.

Códigos de Salida

  • 0: No se detectaron problemas de seguridad
  • 1: Se detectaron problemas de seguridad
  • 2: Errores de escaneo

Telemetría y Privacidad

ModelAudit incluye telemetría para la fiabilidad del producto y el análisis de uso.

  • Los metadatos recopilados pueden incluir el uso de comandos y funciones, metadatos de tiempo o tamaño de escaneo y descarga, uso de escáneres/tipos de archivo, identificadores estables de reglas o CVE, agregados de severidad, extensiones de archivo registradas, categorías aproximadas de fuente o proveedor, y metadatos de versión de runtime, plataforma y CI.
  • La telemetría no incluye rutas locales sin procesar, nombres de archivo, IDs o nombres de modelos, identificadores de repositorios o artefactos, claves de buckets u objetos, rutas de URL remotas, texto libre de problemas o errores, información de usuario de URL, cadenas de consulta, fragmentos ni contenidos binarios de modelos.
  • Las instalaciones empaquetadas habilitan la telemetría de forma predeterminada. La telemetría se desactiva automáticamente cuando se establece CI=true o IS_TESTING=true, y en instalaciones de desarrollo editable a menos que MODELAUDIT_TELEMETRY_DEV=1. Los eventos enviados desde otros proveedores de CI (TeamCity, CodeBuild, Bitbucket Pipelines, Jenkins) se etiquetan con isRunningInCi=true para poder filtrarse posteriormente.
  • Se almacena un identificador de usuario seudónimo persistente en ~/.promptfoo/promptfoo.yaml para la correlación entre herramientas con Promptfoo, y cada sesión de telemetría utiliza un nuevo identificador de sesión. Los IDs existentes de ~/.modelaudit/user_config.json se migran en la primera ejecución tras la actualización. Un valor de correo electrónico heredado en ese archivo, si está presente, puede adjuntarse al perfil de usuario de análisis.

Para excluirse explícitamente, use cualquiera de estas variables de entorno:```bash export PROMPTFOO_DISABLE_TELEMETRY=1

or

export NO_ANALYTICS=1

root@kitploit:~
Para optar durante instalaciones editables/de desarrollo:```bash
export MODELAUDIT_TELEMETRY_DEV=1

Ejemplos de salida```bash

JSON for CI/CD pipelines

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

SARIF for code scanning platforms

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

root@kitploit:~
## Solución de problemas

- Ejecuta `modelaudit doctor --show-failed` para listar los escáneres no disponibles y las dependencias opcionales faltantes.
- Ejecuta `modelaudit debug --json` para recopilar diagnósticos de entorno/configuración para informes de errores.
- Usa `modelaudit cache cleanup --max-age 30` para eliminar entradas de caché obsoletas de forma segura.
- Si `pip` instala una versión anterior, verifica que Python sea compatible (`python --version`; ModelAudit admite Python 3.10-3.13).
- Para obtener más ayuda para solucionar problemas y orientación sobre autenticación en la nube, consulta:
  - https://www.promptfoo.dev/docs/model-audit/
  - https://www.promptfoo.dev/docs/model-audit/usage/

## Documentación

- **[Documentación completa](https://www.promptfoo.dev/docs/model-audit/)** — configuración, ajustes y uso avanzado
- **[Ejemplos de uso](https://www.promptfoo.dev/docs/model-audit/usage/)** — integración con CI/CD, escaneo remoto, generación de SBOM
- **[Formatos admitidos](https://www.promptfoo.dev/docs/model-audit/scanners/)** — documentación detallada de los escáneres
- **[Política de soporte](https://github.com/promptfoo/modelaudit/blob/main/SUPPORT.md)** — versiones compatibles de Python/SO y política de mantenimiento
- **[Modelo de seguridad y limitaciones](https://github.com/promptfoo/modelaudit/blob/main/docs/user/security-model.md)** — qué garantiza ModelAudit y qué no
- **[Matriz de compatibilidad](https://github.com/promptfoo/modelaudit/blob/main/docs/user/compatibility-matrix.md)** — formatos de archivo frente a dependencias opcionales
- **[Selección de escáneres](https://github.com/promptfoo/modelaudit/blob/main/docs/user/scanner-selection.md)** — listas permitidas y exclusiones específicas de escáneres
- **[Guía de extracción de metadatos](https://github.com/promptfoo/modelaudit/blob/main/docs/user/metadata-extraction.md)** — flujos de trabajo seguros con metadatos y orientación sobre `--trust-loaders`
- **[Guía para entornos sin conexión/aislados](https://github.com/promptfoo/modelaudit/blob/main/docs/user/offline-air-gapped.md)** — operación segura sin acceso a internet
- **Solución de problemas** — ejecuta `modelaudit doctor --show-failed` para comprobar la disponibilidad de los escáneres

## Paquetes relacionados

- **[`modelaudit-picklescan`](https://pypi.org/project/modelaudit-picklescan/)** — el escáner de pickle independiente basado en Rust que utilizan los escáneres pickle, PyTorch, ExecuTorch y PyTorch-ZIP de ModelAudit. Instálalo directamente si solo necesitas análisis de pickle (como biblioteca, no como CLI) y no quieres el paquete completo de escáneres.

## Notificación de vulnerabilidades

No abras problemas públicos ante sospechas de vulnerabilidades. Consulta [SECURITY.md](https://github.com/promptfoo/modelaudit/blob/main/SECURITY.md) para la divulgación coordinada.

## Contribuciones

Las incidencias, las solicitudes de funciones y los PR son bienvenidos. Consulta [CONTRIBUTING.md](https://github.com/promptfoo/modelaudit/blob/main/CONTRIBUTING.md).

## Licencia

Licencia MIT — consulta [LICENSE](https://github.com/promptfoo/modelaudit/blob/main/LICENSE) para más detalles.
Descargar herramienta
FormatExtensionsRisk
Pickle.pkl, .pickle, .dillALTO
PyTorch.pt, .pth, .ckpt, .binALTO
Joblib.joblibALTO
NumPy.npy, .npzALTO
R Serialized.rds, .rda, .rdata, artefactos de espacio de trabajo renombrados con firma válidaALTO
TensorFlow.pb, .meta, directorios SavedModelMEDIO
Keras.h5, .hdf5, .kerasMEDIO
ONNX.onnxMEDIO
CoreML.mlmodel, artefactos renombrados estructuralmente válidosBAJO
MXNet*-symbol.json, *-NNNN.params, JSON de símbolos renombrados estructuralmente válidoBAJO
NeMo.nemo, archivos comprimidos renombrados con configuración raízMEDIO
CNTK.dnn, .cmf, artefactos renombrados con firma válidaMEDIO
RKNN.rknn, artefactos con firma válida bajo sufijos renombrados no conflictivosMEDIO
Torch7Artefactos serializados (.t7, .th, .net o renombrados)ALTO
CatBoost.cbmMEDIO
XGBoost.bst, .model, .json, .ubj, UBJSON sin extensiónMEDIO
LightGBM.lgb, .lightgbm, .model, artefactos renombrados con firma válidaMEDIO
LlamafileEnvoltorios ejecutables (.llamafile, .exe, sin extensión o renombrados)MEDIO
TorchServe.marALTO
SafeTensors.safetensorsBAJO
GGUF/GGML.gguf, .ggml, .ggmf, .ggjt, .ggla, .ggsa, artefactos renombrados con firma válidaBAJO
JAX/Flax.msgpack, .flax, .orbax, .jax, .checkpoint, .orbax-checkpointBAJO
TFLite.tflite, artefactos con firma válida bajo sufijos renombrados no conflictivosBAJO
ExecuTorch.ptl, .pte, artefactos independientes con firma válida bajo sufijos renombrados no conflictivosBAJO
TensorRT.engine, .plan, .trtBAJO
PaddlePaddle.pdmodel, .pdiparamsBAJO
OpenVINO.xmlBAJO
Skops.skopsALTO
PMML.pmmlBAJO
Compressed Wrappers.gz, .bz2, .xz, .lz4, .zlibMEDIO