技術指南
AI 代理安全:實用控制清單

AI 代理安全是指圍繞著能夠讀取上下文、選擇工具並執行步驟的模型所建構的控制系統。安全的設計假定模型輸出、檢索到的內容和工具結果都可能有錯誤或惡意行為。它限制存取權限,驗證每個操作,使不確定性可見,並指定專人負責處理由此產生的後果性變更。
Ottermind 將此邊界優先的方法應用於互聯工作:來源上下文和交付物保持可審查狀態,而後續操作仍需獲得權限和人工批准。它是一種工作區選項,不能取代組織的安全審查。
研究與揭露: 該清單參考了 NIST 人工智慧風險管理框架、OWASP 法學碩士申請十大熱門職位 和 Anthropic 代理程式安全指南,並於 2026 年 9 月 3 日進行了修訂。
五大安全邊界
| 邊界 | 主要風險 | 所需控制 |
|---|---|---|
| 身分 | 使用者或租戶上下文錯誤 | 嚴格的身份驗證和租戶檢查 |
| 檢索 | 上下文外洩、過期或被竄改 | 權限感知檢索和溯源 |
| 工具 | 過度或格式錯誤操作 | 窄模式、驗證和逾時 |
| 運行時 | 指令、檔案或網路越權 | 沙箱、隔離和出口策略 |
| 操作 | 靜默故障或未經審核的更改 | 追蹤、警報、審批和回滾 |
安全性分佈於整個工作流程。最後提示代理「小心」並非安全控制措施。
功能設計前的威脅模型
寫下代理人可以觀察的內容、可以更改的內容以及誰可能從錯誤中獲益。例如,考慮好奇的使用者、被入侵的連接器、檢索文件中的惡意文字、傳回意外資料的工具以及寫入期間的服務中斷。針對每種威脅,列出相應的預防控制措施、偵測訊號和復原操作。這種輕量級的威脅模型通常會揭示,風險最大的功能並非模型本身,而是過於寬泛的連接器。
身份和租戶隔離
在運行開始前驗證使用者身份,並針對該身份授權每次檢索和工具呼叫。不要假設模型可見的項目 ID 是可信的。檢查擁有資料的服務中的租用戶、項目、角色和記錄級權限。對於多用戶工作區,明確測試跨租戶請求,並驗證日誌中是否洩漏了禁止的檔案名稱、程式碼片段或工具參數。
檢索完整性
檢索系統可能會洩漏資料、傳回過期記錄或暴露嵌入在文件中的指令。為每個資料區塊儲存來源資訊:來源識別碼、擁有者、生效日期和權限決策。優先使用當前權威來源的記錄,並公開衝突。將 HTML、PDF、電子郵件和問題評論視為數據,而不是指示。模型絕不應該因為檢索到的段落指示而授予自身存取權限。
工具和運行時隔離
使用能夠明確表達業務意圖的專用工具,而不是通用 shell 或不受限制的 HTTP 用戶端。驗證參數、強制執行配額、設定逾時時間並確保寫入操作冪等。在具有一次性檔案系統和受限出口的沙箱環境中執行程式碼或瀏覽器操作。將開發憑證與生產憑證分開,並在運行結束後輪換短期令牌。
人工審核設計
審批流程應顯示擬議操作、目標、來源證據、副作用和替代方案。 「批准」不應隱藏一批不相關的寫入操作。對於外部溝通、刪除、付款、存取權限變更和策略更新,應要求進行更嚴格的審核。應儲存審核者、時間戳記、決定和任何編輯記錄,以防止重試操作在靜默中繞過檢查點。
紅隊測試用例
建立一個小型回歸測試集,其中包括在文件中註入提示、無存取權限的使用者、傳回格式錯誤的 JSON 的工具、過期的憑證、已更改的模式、重複重試以及發送或刪除請求。預期結果並非總是任務完成;安全拒絕、升級處理和有用的錯誤訊息都是有效的結果。每當提示、工具、連接器或模型版本發生變更時,都應執行此測試集。
安全操作檢查清單
- 維護模型、工具、連接器和資料儲存的清單。
- 定期審查連接器範圍和特權角色。
- 對異常工具使用量、跨項目檢索和被阻止的操作發出警報。
- 保留足夠長的追蹤記錄以調查事件,同時避免儲存不必要的密鑰。
- 記錄如何撤銷存取權限、停止運作以及恢復來源記錄。
- 為用戶提供清晰的途徑來報告不安全建議或洩漏的上下文。
將控制措施映射到代理階段
遵循代理商流程進行安全審查會更加便捷。在接收階段,驗證身分、用途和允許的資料。在檢索階段,強制執行權限並附加來源資訊。在推理階段,約束輸出模式並標記不確定性。在呼叫工具之前,驗證參數和副作用。呼叫之後,驗證結果並記錄轉換過程。在完成之前,請要求相應的審查人員參與並保存最終狀態。這種分階段映射可以防止團隊將安全性視為圍繞不受限制的代理的單一入口。
供應鍊和連接器風險
代理程式的有效功能包括其 SDK、插件、MCP 伺服器、瀏覽器擴充功能、提示範本和連接器範圍。清點這些依賴項,並在更新發佈到生產環境之前進行審查。盡可能鎖定版本,對軟體包進行簽名或驗證,並將測試憑證與客戶資料分開。即使型號本身配置正確,能夠讀取整個驅動器的連接器也可能比型號提供者帶來更大的風險。
一份有用的安全審查報告包含哪些內容?
記錄預期的工作流程、資料分類、身分、工具、模型和 SDK 版本、威脅場景、控制措施、測試案例、未解決的風險以及責任人。提供一個被封鎖操作的範例和一個安全升級的範例。當引入新的連接器、工具、模型或自主等級時,應重新進行審查;舊的批准不應在不知情的情況下涵蓋實質上不同的操作範圍。
實踐中的最小權限原則
僅向代理提供當前任務所需的資源和工具。分離讀寫憑證。依專案和身分限定檔案範圍,限製網路目標,並過期臨時存取權限。使用不應能夠查看資源的使用者測試權限邊界。
工具調用契約
{
"tool": "create_draft_task",
"arguments": {"title": "...", "owner": "...", "due_date": "..."},
"requires_approval": true,
"idempotency_key": "project-123:brief-v2"
}驗證應用程式程式碼中的類型、允許值、身分和副作用。要求對發送、刪除、購買、更改存取權限或發布操作進行確認。使用冪等鍵確保重試安全。
檢索和提示注入
將文件、網頁、電子郵件和工具結果視為不受信任的資料。將其與系統指令區分開來,保留來源標識符,並防止檢索到的文字變更權限或工具策略。當來源衝突或檢索結果為空時,返回升級狀態而不是進行猜測。
評估和事件回應
測試正常、不完整、對抗、跨租戶、敏感和工具故障等各種情況。追蹤被阻止的操作、不安全建議、資料外洩嘗試、工具錯誤和審核員的更正。維護回滾路徑並指定事件接收負責人。
常見問題解答
人工智慧代理可以完全自主嗎?
自主性是一種有界產品設置,而非安全屬性。操作的後果越嚴重,審批、監控和回溯控制就應該越嚴格。
私有模型能解決代理安全問題嗎?
不。私有模型可能會改變資料流風險,但身分、檢索、工具權限、執行時間隔離、日誌記錄和人工審核仍然至關重要。
團隊應該先保護哪些面向?
首先要保護身分、檢索權限和工具寫入邊界。與廣泛的自主存取權限相比,具有清晰追蹤記錄的唯讀工作流程是更安全的初始部署方案。
有關係統結構,請參閱 AI代理架構;有關實作細節,請參閱 Claude Agent SDK 指南。
