快速鍵

安全策略

支援的版本

版本 支援
0.11.1 :white_check_mark

我們如何實施安全性

TorchServe 盡可能依賴自動化工具來進行安全性掃描。 特別是,我們支援

  1. 相依性分析:使用 Dependabot

  2. Docker 掃描:使用 Snyk

  3. 程式碼分析:使用 CodeQL

重要的安全指南

  1. TorchServe 監聽以下連接埠

    1. HTTP - 8080, 8081, 8082

    2. gRPC - 7070, 7071

    預設情況下,這些連接埠可供 localhost 存取。 可以按照 HTTPgRPC 的指南配置位址。 TorchServe 不阻止使用者將位址配置為任何值,包括萬用字元位址 0.0.0.0。 請注意將位址配置為 0.0.0.0 的安全風險,這將使主機上的所有位址(包括任何可公開存取的位址)都可以存取在上述連接埠上監聽的 TorchServe 端點。

  2. 依據預設設定,TorchServe 的 Docker 映像檔會將 80808081808270707071 等埠口暴露給主機。啟動容器時,請將容器暴露的埠口映射到 localhost 埠口或特定的 IP 位址,如這份安全性指南所示。

  3. 務必驗證與 TorchServe 搭配使用的 .mar 檔案的真偽。

    1. 從不可信任的來源自網際網路下載的 .mar 檔案可能含有惡意程式碼,從而危害應用程式的完整性。

    2. TorchServe 會執行封裝在 mar 檔案中的任意 Python 程式碼。請確保您已審核您使用的程式碼是安全的,並且/或是來自您信任的來源。

    3. TorchServe 支援自訂外掛程式處理器。這些可用於擴展 TorchServe 功能,以使用以下工具執行執行階段安全性掃描:

      • Clamd:https://pypi.org/project/clamd/

      • VirusTotal:https://virustotal.github.io/vt-py/

      • Fickling:https://github.com/trailofbits/fickling

    4. 在容器環境中執行 TorchServe 並載入不受信任的 .mar 檔案,並不能保證從安全角度來看是隔離的。

  4. 依預設,TorchServe 允許您從所有 URL 註冊模型。請務必在 config.properties 中設定 allowed_urls 參數來限制此行為。您可以在組態指南中找到更多詳細資訊。

    • 需要 在 config.properties 中設定 use_env_allowed_urls=true 才能從環境變數讀取 allowed_urls

  5. 啟用 SSL

    TorchServe 支援兩種設定 SSL 的方式

    1. 使用金鑰儲存庫

    2. 使用私密金鑰/憑證檔案

    您可以在組態指南中找到更多詳細資訊。

  6. 針對不良輸入和提示注入準備您的模型。一些建議:

    1. 預先分析:檢查模型在暴露於提示注入時的預設效能(例如,使用用於提示注入的模糊測試)。

    2. 輸入清理:在將資料饋送到模型之前,嚴格清理輸入。這涉及以下技術:

      • 驗證:對允許的字元和資料類型強制執行嚴格的規則。

      • 過濾:移除潛在的惡意指令碼或程式碼片段。

      • 編碼:將特殊字元轉換為安全的表示形式。

      • 驗證:執行可識別潛在指令碼注入的工具(例如偵測提示注入嘗試的模型)。

  7. 如果您打算使用共享記憶體並行執行多個模型,您有責任確保模型不會相互交互或存取彼此的資料。 主要的關注領域是租戶隔離、資源分配、模型共享和硬體攻擊。

  8. 依預設,TorchServe 強制執行權杖授權:請查看文件以取得更多資訊。

  9. 依預設,TorchServe 可防止您在啟動後註冊和刪除模型。請查看模型 API 控制文件以取得更多資訊。

報告漏洞

如果您發現漏洞,請向 https://127.0.0.1/whitehat 和 aws-security@amazon.com 報告

文件

存取 PyTorch 的完整開發人員文件

檢視文件

教學課程

取得適合初學者和進階開發人員的深入教學課程

檢視教學課程

資源

尋找開發資源並取得您的問題解答

檢視資源