Model Due Diligence:AI模型靜態供應鏈審查工具
Model Due Diligence 是一個 Python 命令行工具,用於對本地 AI 模型文件和克隆的模型倉庫進行靜態供應鏈盡職調查,幫助用户在導入模型前識別明顯的風險指標。它檢查文件清單、哈希值、高風險序列化格式、可疑文本和代碼模式、Git 來源等,並生成人類可讀的 Markdown 報告和自動化 JSON/SARIF 報告。工具不加載模型權重或執行代碼,風險評分從 0 到 100 分。
Model Due Diligence 是一個專注於 AI 模型靜態供應鏈安全的 Python 命令行工具。它的核心目標是在本地模型文件或克隆的模型倉庫被導入到 Ollama、llama.cpp、LM Studio 或 Transformers 等運行時之前,提供可審查的靜態證據,幫助回答一個實際問題:是否存在明顯的靜態證據表明這個模型製品或倉庫不應被信任、加載或運行?
該工具執行一系列靜態檢查,包括文件清單、SHA-256 哈希、權限和符號鏈接檢測;高風險序列化格式如 pickle、.pt、.pth、.bin、.joblib、H5 等;低風險模型格式如 .gguf、.safetensors 和 .onnx;GGUF 魔數及版本元數據;safetensors 頭部元數據;可疑文本和二進制字符串;Python AST 中 eval、exec、compile、pickle.loads、os.system、subprocess 等危險調用;trust_remote_code=True 使用情況;高風險序列化格式中的可疑 pickle 字節標記;高熵非模型文件;Git 來源、遠程倉庫、當前提交、工作目錄污染及 Git LFS 列表;以及外部掃描工具如 ModelScan、Semgrep、Bandit、pip-audit、detect-secrets 的輸出。它還可以進行可選的代碼質量自檢(Ruff、Pyright、mypy)。
工具最終生成三種格式的報告:人類可讀的 Markdown 報告、用於自動化的確定性 JSON 報告,以及可選的 SARIF 報告以集成到代碼掃描工作流中。
Model Due Diligence 特意保持靜態特性。在正常掃描過程中,它不會加載模型權重、導入不受信任的倉庫代碼、執行模型特定腳本、運行模型推理、將製品發送到外部服務,也不需要網絡連接進行本地掃描。靜態掃描無法可靠檢測編碼在模型權重中的惡意行為、休眠代理或觸發器後門、訓練數據投毒、基準操縱、微調後出現的惡意行為、下游 RAG 或代理工作流中的提示注入順從性,以及運行時數據竊取行為。因此,該工具應作為風險降低門控,而非信任預言。
項目採用模塊化單體架構,保持了 CLI、編排、掃描器、風險評分和報告之間的清晰邊界。風險評分將發現歸一化為嚴重級別,並轉換為 0 到 100 之間的分數。嚴重級別包括 INFO(0 分)、LOW(3 分)、MEDIUM(10 分)、HIGH(30 分)、CRITICAL(60 分)。風險等級分為 LOW(0-29,可接受沙盒首次運行)、MEDIUM(30-69,不要導入直到理解發現)、HIGH(70-89,有重大風險指標,除非每個發現都得到證明否則不要加載)、CRITICAL(90-100,嚴重或多個高風險指標,默認視為不安全)。該評分刻意保守,是決策輔助而非自動信任裁決。
安裝需要 Python 3.11+ 和 Git。推薦在虛擬環境中安裝,並支持可選的外部掃描器集成。快速掃描一個已克隆的模型倉庫:mdd ./downloaded-model --out ./audit。掃描本地 GGUF 文件:mdd ~/models/qwen.gguf --out ./audit-qwen。通過名稱掃描已安裝的 Ollama 模型:mdd-ollama qwen3:4b --out ./audit-qwen3-ollama。可以設置 --fail-on 參數在風險等級達到指定級別時令命令非零退出。
總的來説,Model Due Diligence 為 AI 模型的供應鏈安全提供了一個實用、可擴展的靜態分析框架。它不會替代運行時測試或專業安全審計,但在模型引入管道的第一道防線中扮演着重要角色。