安全策略¶
支援的版本¶
版本 | 支援 |
---|---|
0.11.1 | :white_check_mark |
我們如何實施安全性¶
TorchServe 盡可能依賴自動化工具來進行安全性掃描。 特別是,我們支援
相依性分析:使用 Dependabot
Docker 掃描:使用 Snyk
程式碼分析:使用 CodeQL
重要的安全指南¶
TorchServe 監聽以下連接埠
HTTP -
8080
,8081
,8082
gRPC -
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://127.0.0.1/whitehat 和 aws-security@amazon.com 報告