AI/MLモデルファイル向けセキュリティスキャナー。デプロイ前に悪意のあるコード、バックドア、脆弱性を検出します。
デプロイ前にAIモデルを保護しましょう。 MLモデルファイル内の悪意のあるコード、潜在的なバックドアの指標、セキュリティ脆弱性を、モデルを読み込んだり実行したりすることなく検出する静的スキャナーです。
モデルは信頼できないレジストリからダウンロードされ、CIを通過し、最終的に本番環境で実行されます。従来のSASTツールはpickleオペコード、HDF5グループレイアウト、ONNXプロトグラフ、TensorFlow SavedModelシグネチャを検査しませんが、ModelAuditはこれらを検査します:
類似ツール:picklescan(pickleのみ、Pythonベース)、fickling(pickleのみ、ASTベース)、modelscan(pickle + TensorFlow + Kerasのサブセット)。ModelAuditはカバレッジがより広く、コンパニオンパッケージmodelaudit-picklescanを通じてネイティブRustのpickleエンジンを提供します。
Python 3.10-3.14が必要です
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
$ 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
スキャン証拠とソースエラーには、JSON、SARIF、SBOM、共有レポート内のものを含め、元の認証情報の値が含まれる場合があります。認証情報の正規化は、検出、グループ化、または抑制に影響する箇所に残ります。
ModelAuditには、モデル、アーカイブ、設定フォーマットをカバーする45の登録済みスキャナーが含まれています:
| フォーマット | 拡張子 | リスク |
|---|---|---|
| Pickle | .pkl、.pickle、.dill | 高 |
| PyTorch | .pt、.pth、.ckpt、.bin | 高 |
| Joblib | .joblib | 高 |
| NumPy | .npy、.npz | 高 |
| R Serialized | .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 | MEDIUM |
ZIP、TAR、7-Zip、OCIレイヤー、Jinja2テンプレート、JSON/YAMLメタデータ、マニフェスト、モデルカード、テキストファイル、およびRAR認識用のスキャナーも追加されています。RARアーカイブはスキップされるのではなく、未サポート/フェイルクローズとして報告されます。
構造的に有効なTensorFlow SavedModelおよびMetaGraph protobufは、モデル以外のサフィックスにリネームされた場合でも認識されます。
CoreMLモデルもリネームされた場合に認識され、不完全なカバレッジは明示的に報告されます。
過大だがもっともらしいフレーミングを持つSafeTensorsファイルは、.jpgなど
それ以外では未請求のサフィックスの下で、境界付きの不確定な分析のために保持されます。
構造的にもっともらしいFlax/JAX MessagePackチェックポイントも、モデル以外のサフィックスにリネームされた場合に認識されます。
完全に分類できないリネームされた構造は、不完全なカバレッジとして報告されます。
構造化されたJAX/Orbax JSONチェックポイントメタデータも同様にリネームされた場合に認識されます。過大で曖昧な
候補は不完全なカバレッジとして報告されます。境界付きで検査されたプレフィックス内の観測可能なセキュリティパターンは
依然として保守的に報告される場合があります。
リモートレジストリやクラウドストレージからモデルを直接スキャンします:
# Hugging Face
modelaudit https://huggingface.co/gpt2
modelaudit hf://microsoft/DialoGPT-medium
# Cloud storage
modelaudit s3://bucket/model.pt
modelaudit gs://bucket/models/