⚠️ 注意:有限維護¶
本專案不再積極維護。雖然現有版本仍然可用,但沒有計劃的更新、錯誤修復、新功能或安全補丁。使用者應注意,漏洞可能無法得到解決。
安全策略¶
支援的版本¶
| 版本 | 支援 |
|---|---|
| 0.11.1 | :white_check_mark: |
我們如何保障安全¶
TorchServe 儘可能地依賴自動化工具進行安全掃描。特別是,我們支援
依賴分析:使用 Dependabot
Docker 掃描:使用 Snyk
程式碼分析:使用 CodeQL
重要安全指南¶
TorchServe 監聽以下埠
HTTP -
8080,8081,8082gRPC -
7070,7071
這些埠預設情況下可供
localhost訪問。可以按照 HTTP 和 gRPC 的指南配置地址。TorchServe 不會阻止使用者將地址配置為任何值,包括萬用字元地址0.0.0.0。請注意將地址配置為0.0.0.0的安全風險,這將允許主機上的所有地址(包括公開可訪問的地址,如果存在)訪問監聽上述埠的 TorchServe 端點。預設情況下,TorchServe 的 Docker 映象配置為將埠
8080,8081,8082,7070,7071暴露給主機。啟動容器時,請將容器暴露的埠對映到localhost埠或特定 IP 地址,如本安全指南所示。請務必驗證與 TorchServe 一起使用的
.mar檔案的真實性。從不可信來源從網際網路下載的
.mar檔案可能包含惡意程式碼,從而損害應用程式的完整性。TorchServe 執行打包在
mar檔案中的任意 python 程式碼。請確保您已稽核過您使用的程式碼是安全的和/或來自您信任的來源。TorchServe 支援自定義外掛和處理器。可以使用它們擴充套件 TorchServe 功能,以便使用以下工具執行執行時安全掃描,例如
Clamd: https://pypi.org/project/clamd/
VirusTotal: https://virustotal.github.io/vt-py/
Fickling: https://github.com/trailofbits/fickling
在容器環境中執行 TorchServe 並載入不可信的
.mar檔案並不能從安全形度保證隔離。
預設情況下,TorchServe 允許您註冊來自所有 URL 的模型。請務必在 config.properties 中設定
allowed_urls引數來限制此行為。您可以在配置指南中找到更多詳細資訊。在 config.properties 中需要
use_env_allowed_urls=true才能從環境變數中讀取allowed_urls。
啟用 SSL
TorchServe 支援兩種配置 SSL 的方式
使用金鑰庫
使用私鑰/證書檔案
您可以在配置指南中找到更多詳細資訊。
保護您的模型免受不良輸入和提示注入。一些建議
預分析:檢查模型在預設情況下暴露於提示注入(例如使用模糊測試進行提示注入)時的表現。
輸入淨化:在向模型饋送資料之前,嚴格淨化輸入。這包括以下技術
驗證:強制執行允許的字元和資料型別的嚴格規則。
過濾:移除潛在的惡意指令碼或程式碼片段。
編碼:將特殊字元轉換為安全的表示形式。
驗證:執行工具來識別潛在的指令碼注入(例如,檢測提示注入嘗試的模型)。
如果您打算使用共享記憶體並行執行多個模型,您有責任確保模型之間不會相互互動或訪問彼此的資料。主要的關注領域包括租戶隔離、資源分配、模型共享和硬體攻擊。
TorchServe 預設強制執行令牌授權:檢視文件瞭解更多資訊。
預設情況下,TorchServe 阻止您在啟動後註冊和刪除模型。檢視模型 API 控制文件瞭解更多資訊。
報告漏洞¶
如果您發現漏洞,請將其報告至 https://#/whitehat 和 aws-security@amazon.com