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 模型的供應鏈安全提供了一個實用、可擴充套件的靜態分析框架。它不會替代執行時測試或專業安全審計,但在模型引入管道的第一道防線中扮演著重要角色。