Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
modelaudit — Scanner de sécurité pour les fichiers de modèles IA/ML. Détecte les codes malveillants, les portes dérobées et les vulnérabilités avant le déploiement. | Kitploit
Outils/GitHubGitHub/promptfoo/modelaudit
Analyse StatiqueAnalyse Statique de Code (SAST)Analyse des VulnérabilitésExfiltration de DonnéesAnalyse de MalwareDevSecOpsDétection de SecretsSécurité de la Chaîne LogistiqueSécurité de l'IA
GitHubpromptfoo/modelaudit

modelaudit

Scanner de sécurité pour les fichiers de modèles IA/ML. Détecte les codes malveillants, les portes dérobées et les vulnérabilités avant le déploiement.

6717il y a 20h 39mVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôtSite web

ModelAudit

Sécurisez vos modèles d'IA avant le déploiement. Scanner statique qui détecte le code malveillant, les indicateurs potentiels de backdoor et les vulnérabilités de sécurité dans les fichiers de modèles ML — sans jamais les charger ni les exécuter.

PyPI version Python versions Code Style: ruff License Security policy

Résultats d'analyse ModelAudit

Documentation complète | Exemples d'utilisation | Formats pris en charge

Pourquoi ModelAudit

Les modèles sont téléchargés depuis des registres non fiables, transitent par le CI et finissent par être exécutés en production. Les outils SAST traditionnels n'examinent pas les opcodes pickle, les structures de groupes HDF5, les graphes proto ONNX ou les signatures TensorFlow SavedModel — ModelAudit, lui, le fait :

  • Analyse statique. Aucun modèle n'est jamais chargé, désérialisé (unpickled) ou exécuté.
  • Couverture des formats que vous déployez réellement. Plus de 40 scanners couvrant pickle, PyTorch, SafeTensors, ONNX, TensorFlow, Keras, GGUF, archives et configurations.
  • Intégration au CI. Sortie lisible par machine (JSON, SARIF), mode strict, codes de sortie et scanners sélectionnables.
  • Limites de couverture explicites. Les scanners reconnus signalent les lacunes d'analyse bornées, telles que les lectures tronquées ou les budgets épuisés, au lieu de les présenter comme des résultats entièrement couverts.

Outils comparables : picklescan (pickle uniquement, basé sur Python), fickling (pickle uniquement, basé sur AST), modelscan (pickle + sous-ensemble TensorFlow + Keras). ModelAudit offre une couverture plus large et embarque un moteur pickle natif en Rust via son package compagnon modelaudit-picklescan.

Démarrage rapide

Nécessite 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:~
### Fonctionnalités

 - Exécution de commandes à distance 
 - Système de plugins 
 - Historique des commandes 
 - Plusieurs langues```
$ 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

Ce qu'il détecte

  • Attaques d'exécution de code dans les fichiers Pickle, PyTorch, NumPy et Joblib
  • Indicateurs de porte dérobée potentiels — schémas de poids suspects, tenseurs anormaux ou signaux de code caché
  • Secrets intégrés — clés API, jetons et identifiants dans les poids ou métadonnées du modèle
  • Indicateurs réseau — URL, adresses IP et utilisation de sockets pouvant permettre l'exfiltration de données
  • Exploits d'archives — traversée de chemins, attaques par liens symboliques dans les fichiers ZIP/TAR/7z
  • Opérations ML non sûres — couches Lambda, opérations personnalisées, TorchScript/JIT, injection de templates
  • Risques liés à la chaîne d'approvisionnement — altération, violations de licence, configurations suspectes

Formats pris en charge

ModelAudit inclut 45 scanners enregistrés couvrant les formats de modèles, d'archives et de configuration :

S'ajoutent des scanners pour ZIP, TAR, 7-Zip, couches OCI, templates Jinja2, métadonnées JSON/YAML, manifestes, fiches de modèles, fichiers texte et reconnaissance RAR. Les archives RAR sont signalées comme non prises en charge/échec fermé au lieu d'être ignorées.

Les protobufs TensorFlow SavedModel et MetaGraph structurellement valides sont également reconnus lorsqu'ils sont renommés avec des suffixes autres que ceux des modèles. Les modèles CoreML peuvent également être reconnus après renommage, la couverture incomplète étant signalée explicitement. Les fichiers SafeTensors dont le cadrage est surdimensionné mais plausible sont conservés pour une analyse bornée et non concluante sous des suffixes autrement non réclamés, comme .jpg. Les points de contrôle MessagePack Flax/JAX structurellement plausibles sont également reconnus après renommage avec des suffixes autres que ceux des modèles ; les structures renommées qui ne peuvent pas être entièrement classifiées sont signalées comme couverture incomplète. Les métadonnées de points de contrôle JSON structurées JAX/Orbax sont également reconnues après renommage ; les candidats ambigus surdimensionnés sont signalés comme couverture incomplète ; les schémas de sécurité observables dans le préfixe inspecté borné peuvent toujours être signalés de manière prudente.

Voir la documentation complète des formats

Sources distantes```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 d'environnement d'authentification

- `HF_TOKEN` pour les dépôts Hugging Face privés
- `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` (et éventuellement `AWS_SESSION_TOKEN`) pour S3
- `GOOGLE_APPLICATION_CREDENTIALS` pour GCS
- `MLFLOW_TRACKING_URI` pour l'accès au registre MLflow
- `MODELAUDIT_MLFLOW_ALLOWED_ARTIFACT_URIS` pour les racines d'artefacts MLflow non locales (préfixes d'URI séparés par des virgules)
- Utilisez des racines de backend concrètes telles que `s3://bucket/prefix`; les URI logiques `models:/` ou `runs:/` ainsi que les chemins distants encodés en pourcentage sont refusés.
- `JFROG_API_TOKEN` ou `JFROG_ACCESS_TOKEN` pour JFrog Artifactory
- `MODELAUDIT_JFROG_ALLOWED_HOSTS` pour les noms d'hôtes JFrog personnalisés séparés par des virgules pouvant recevoir des identifiants
- `MODELAUDIT_JFROG_ALLOWED_REDIRECT_HOSTS` pour les noms d'hôtes de redirection externes séparés par des virgules pouvant être téléchargés sans identifiants
- Stockez les identifiants dans des variables d'environnement ou un gestionnaire de secrets, et ne committez jamais de jetons/clés.

## Installation```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

L'extra ONNX, y compris la partie ONNX de modelaudit[all], est empaqueté pour Python 3.10-3.12. Les extras contenant PyTorch nécessitent Python 3.10-3.12 ou CPython 3.13 standard (avec GIL) ; les wheels PyTorch 2.13 patchées ne prennent pas en charge CPython 3.13t free-threaded. Utilisez un CPython standard, car le scanner natif de pickle de ModelAudit ne prend pas non plus en charge CPython 3.13t. Sur Apple Silicon, les extras contenant PyTorch nécessitent macOS 14 ou plus récent, car les wheels ciblent macosx_14_0_arm64 ; l'installation core-only reste disponible pour l'analyse statique sur macOS 11-13.

Options CLI

Commandes 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:~
Options de scan courantes :```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

Sélection ciblée du scanner:```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` part d'une liste blanche explicite. `--exclude-scanner` soustrait des scanners de cette liste blanche ou de l'ensemble de scanners par défaut. La sélection des scanners est reflétée dans la sortie JSON sous `scanner_selection`.

Pour les dossiers distants, ModelAudit restreint les téléchargements en fonction des extensions de scanner sélectionnées lorsque cela est sûr. Le routage basé sur le contenu des wrappers renommés s'applique après l'acquisition ; scannez une URL de fichier directe lorsque les noms de fichiers du dépôt peuvent être intentionnellement trompeurs.

## Extraction des métadonnées```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 active les chargeurs de métadonnées du scanner qui peuvent désérialiser le contenu du modèle. N'utilisez cette option que sur des artefacts de confiance dans des environnements isolés.

Codes de sortie

  • 0 : Aucun problème de sécurité détecté
  • 1 : Problèmes de sécurité détectés
  • 2 : Erreurs d'analyse

Télémétrie et confidentialité

ModelAudit inclut une télémétrie pour la fiabilité du produit et les analyses d'utilisation.

  • Les métadonnées collectées peuvent inclure l'utilisation des commandes et fonctionnalités, les métadonnées de durée ou de taille des analyses et téléchargements, l'utilisation des scanners/types de fichiers, les identifiants stables de règles ou CVE, les agrégats de sévérité, les extensions de fichiers enregistrées, les catégories générales de source ou de fournisseur, ainsi que les métadonnées de version d'exécution, de plateforme et d'IC.
  • La télémétrie n'inclut pas les chemins locaux bruts, les noms de fichiers, les identifiants ou noms de modèles, les identifiants de dépôts ou d'artefacts, les clés de bucket ou d'objet, les chemins d'URL distants, les textes libres de problème ou d'erreur, les informations utilisateur d'URL, les chaînes de requête, les fragments, ni le contenu binaire des modèles.
  • Les installations packagées activent la télémétrie par défaut. La télémétrie est désactivée automatiquement lorsque CI=true est défini ou IS_TESTING=true est défini, et dans les installations de développement en mode éditable sauf si MODELAUDIT_TELEMETRY_DEV=1. Les événements envoyés depuis d'autres fournisseurs d'IC (TeamCity, CodeBuild, Bitbucket Pipelines, Jenkins) sont marqués avec isRunningInCi=true afin de pouvoir être filtrés en aval.
  • Un identifiant utilisateur pseudonyme persistant est stocké dans ~/.promptfoo/promptfoo.yaml pour la corrélation entre outils avec Promptfoo, et chaque session de télémétrie utilise un nouvel identifiant de session. Les identifiants existants dans ~/.modelaudit/user_config.json sont migrés lors de la première exécution après la mise à niveau. Une valeur d'e-mail héritée dans ce fichier, si présente, peut être associée au profil utilisateur d'analytique.

Désactivez explicitement la télémétrie avec l'une ou l'autre des variables d'environnement :```bash export PROMPTFOO_DISABLE_TELEMETRY=1

or

export NO_ANALYTICS=1

root@kitploit:~
Pour activer l'option lors des installations en mode editable/développement :```bash
export MODELAUDIT_TELEMETRY_DEV=1

Exemples de sortie```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:~
## Troubleshooting

- Exécutez `modelaudit doctor --show-failed` pour lister les scanners indisponibles et les dépendances optionnelles manquantes.
- Exécutez `modelaudit debug --json` pour collecter les diagnostics d'environnement/config pour les rapports de bugs.
- Utilisez `modelaudit cache cleanup --max-age 30` pour supprimer en toute sécurité les entrées de cache obsolètes.
- Si `pip` installe une version plus ancienne, vérifiez que Python est pris en charge (`python --version` ; ModelAudit prend en charge Python 3.10-3.13).
- Pour des conseils supplémentaires de dépannage et d'authentification cloud, consultez :
  - https://www.promptfoo.dev/docs/model-audit/
  - https://www.promptfoo.dev/docs/model-audit/usage/

## Documentation

- **[Documentation complète](https://www.promptfoo.dev/docs/model-audit/)** — installation, configuration et utilisation avancée
- **[Exemples d'utilisation](https://www.promptfoo.dev/docs/model-audit/usage/)** — intégration CI/CD, analyse à distance, génération de SBOM
- **[Formats pris en charge](https://www.promptfoo.dev/docs/model-audit/scanners/)** — documentation détaillée des scanners
- **[Politique de support](https://github.com/promptfoo/modelaudit/blob/main/SUPPORT.md)** — versions Python/OS prises en charge et politique de maintenance
- **[Modèle de sécurité et limites](https://github.com/promptfoo/modelaudit/blob/main/docs/user/security-model.md)** — ce que ModelAudit garantit et ne garantit pas
- **[Matrice de compatibilité](https://github.com/promptfoo/modelaudit/blob/main/docs/user/compatibility-matrix.md)** — formats de fichiers vs dépendances optionnelles
- **[Sélection des scanners](https://github.com/promptfoo/modelaudit/blob/main/docs/user/scanner-selection.md)** — listes d'autorisation ciblées et exclusions de scanners
- **[Guide d'extraction des métadonnées](https://github.com/promptfoo/modelaudit/blob/main/docs/user/metadata-extraction.md)** — workflows sécurisés de métadonnées et conseils sur `--trust-loaders`
- **[Guide hors ligne/environnement isolé](https://github.com/promptfoo/modelaudit/blob/main/docs/user/offline-air-gapped.md)** — fonctionnement sécurisé sans accès à Internet
- **Dépannage** — exécutez `modelaudit doctor --show-failed` pour vérifier la disponibilité des scanners

## Paquets associés

- **[`modelaudit-picklescan`](https://pypi.org/project/modelaudit-picklescan/)** — le scanner pickle autonome basé sur Rust utilisé par les scanners pickle, PyTorch, ExecuTorch et PyTorch-ZIP de ModelAudit. Installez-le directement si vous n'avez besoin que de l'analyse pickle (en tant que bibliothèque, pas en tant que CLI) et que vous ne voulez pas l'ensemble complet de scanners.

## Signaler des vulnérabilités

N'ouvrez pas de problèmes publics pour des vulnérabilités suspectées. Consultez [SECURITY.md](https://github.com/promptfoo/modelaudit/blob/main/SECURITY.md) pour la divulgation coordonnée.

## Contribution

Les problèmes, demandes de fonctionnalités et PR sont les bienvenus. Consultez [CONTRIBUTING.md](https://github.com/promptfoo/modelaudit/blob/main/CONTRIBUTING.md).

## Licence

Licence MIT — voir [LICENSE](https://github.com/promptfoo/modelaudit/blob/main/LICENSE) pour plus de détails.
Télécharger l’outil
FormatExtensionsRisque
Pickle.pkl, .pickle, .dillÉLEVÉ
PyTorch.pt, .pth, .ckpt, .binÉLEVÉ
Joblib.joblibÉLEVÉ
NumPy.npy, .npzÉLEVÉ
R Serialized.rds, .rda, .rdata, artefacts d'espace de travail renommés à signature valideÉLEVÉ
TensorFlow.pb, .meta, répertoires SavedModelMOYEN
Keras.h5, .hdf5, .kerasMOYEN
ONNX.onnxMOYEN
CoreML.mlmodel, artefacts renommés structurellement validesFAIBLE
MXNet*-symbol.json, *-NNNN.params, JSON de symbole renommé structurellement valideFAIBLE
NeMo.nemo, archives renommées avec config racineMOYEN
CNTK.dnn, .cmf, artefacts renommés à signature valideMOYEN
RKNN.rknn, artefacts à signature valide sous suffixes renommés non conflictuelsMOYEN
Torch7Artefacts sérialisés (.t7, .th, .net ou renommés)ÉLEVÉ
CatBoost.cbmMOYEN
XGBoost.bst, .model, .json, .ubj, UBJSON sans extensionMOYEN
LightGBM.lgb, .lightgbm, .model, artefacts renommés à signature valideMOYEN
LlamafileWrappers exécutables (.llamafile, .exe, sans extension ou renommés)MOYEN
TorchServe.marÉLEVÉ
SafeTensors.safetensorsFAIBLE
GGUF/GGML.gguf, .ggml, .ggmf, .ggjt, .ggla, .ggsa, artefacts renommés à signature valideFAIBLE
JAX/Flax.msgpack, .flax, .orbax, .jax, .checkpoint, .orbax-checkpointFAIBLE
TFLite.tflite, artefacts à signature valide sous suffixes renommés non conflictuelsFAIBLE
ExecuTorch.ptl, .pte, artefacts autonomes à signature valide sous suffixes renommés non conflictuelsFAIBLE
TensorRT.engine, .plan, .trtFAIBLE
PaddlePaddle.pdmodel, .pdiparamsFAIBLE
OpenVINO.xmlFAIBLE
Skops.skopsÉLEVÉ
PMML.pmmlFAIBLE
Wrappers compressés.gz, .bz2, .xz, .lz4, .zlibMOYEN