哪些秘密絕不能進入 Prompt?
seed phrase、原始私鑰、提款/管理 key、完整 API token、OTP 與恢復碼都不得進入。
遮罩後的識別碼可供追蹤,但模型不需要知道可直接使用的秘密。還要檢查 debug dump、錯誤訊息、RAG 文件和支援對話,因為秘密常從這些旁路回到上下文。
如何留下證據: 建立禁止資料分類和自動掃描位置清單。
API Key 要如何依功能拆分?
按提供者、環境、資源和動作拆成唯讀、交易、提款與管理等最小 scope。
每個 key 還需來源限制、速率、預算、到期和 owner。若提供者不支援細粒度權限,應在代理前加受控服務,而不是把全能 key 直接交給 Agent。
如何留下證據: 保存 key ID 後四碼、scope、consumer、來源、期限和撤銷人。
錢包需要什麼隔離?
測試、營運、收費與國庫錢包應分離,簽章服務不向 Agent 暴露 key。
營運錢包只保留工作所需小額,合約限制資產、目的地、方法和期間額度。國庫轉移走獨立、多方且較慢的流程,不能由同一 orchestration 路徑升權。
如何留下證據: 保存地址用途、餘額上限、owner/module、allowance 和補資金流程。
如何留下紀錄而不洩漏秘密?
記錄穩定識別碼、scope、結果和遮罩欄位,不保存可重播的 header 或簽章材料。
結構化 log 在寫入前就應 redact;不能依賴事後人工刪除。trace 權限也要分層,備份、錯誤追蹤和第三方 observability 必須納入資料流。
如何留下證據: 用測試 canary 驗證應用、queue、log、備份和告警均不留原值。
什麼證據能證明輪替真的有效?
用測試憑證演練新 key 上線、舊 key 失效、服務恢復和備份清除。
只更新 vault 值不代表所有 worker、快取和 CI 已停止使用舊 key。演練應量測撤銷時間、錯誤告警、回滾和是否存在無人擁有的 consumer。
如何留下證據: 保存輪替時間線、舊 key 拒絕結果、服務健康和殘留掃描。
驗證工作簿
以下檢查卡把研究變成可重做紀錄。它們不產生投資建議,而是要求保存證據、反例、版本、限制與會改變結論的條件。
檢查 01|哪些秘密絕不能進入 Prompt · 支持性測試
- 本輪做法
- 尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
- 應取得的證據
- 測試 canary 不會出現在 prompt 或輸出
- 會推翻判定的訊號
- 只在 UI 遮蔽,後端仍拼入完整值
- 本題判定規則
- 任何原始秘密進上下文即重大
檢查 02|API Key 要如何依功能拆分 · 支持性測試
- 本輪做法
- 尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
- 應取得的證據
- 單一 key 洩漏的影響可明確計算
- 會推翻判定的訊號
- 多個 Agent 共用永久管理 key
- 本題判定規則
- 不支援限權時降低可用功能
檢查 03|錢包需要什麼隔離 · 支持性測試
- 本輪做法
- 尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
- 應取得的證據
- 入侵營運 Agent 無法觸及國庫
- 會推翻判定的訊號
- 同一 signer 同時管理所有環境
- 本題判定規則
- 跨區域路徑存在即按最大權限計算
檢查 04|如何留下紀錄而不洩漏秘密 · 支持性測試
- 本輪做法
- 尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
- 應取得的證據
- canary 掃描覆蓋所有觀測出口
- 會推翻判定的訊號
- debug 模式可輸出 request header
- 本題判定規則
- 發現洩漏時先撤銷再清理紀錄
檢查 05|什麼證據能證明輪替真的有效 · 支持性測試
- 本輪做法
- 尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
- 應取得的證據
- 舊憑證在各入口都被拒絕
- 會推翻判定的訊號
- 輪替後舊 worker 仍能成功呼叫
- 本題判定規則
- 未端到端演練只算書面計畫
檢查 01|哪些秘密絕不能進入 Prompt · 反例測試
- 本輪做法
- 在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
- 應取得的證據
- 測試 canary 不會出現在 prompt 或輸出
- 會推翻判定的訊號
- 只在 UI 遮蔽,後端仍拼入完整值
- 本題判定規則
- 任何原始秘密進上下文即重大
檢查 02|API Key 要如何依功能拆分 · 反例測試
- 本輪做法
- 在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
- 應取得的證據
- 單一 key 洩漏的影響可明確計算
- 會推翻判定的訊號
- 多個 Agent 共用永久管理 key
- 本題判定規則
- 不支援限權時降低可用功能
檢查 03|錢包需要什麼隔離 · 反例測試
- 本輪做法
- 在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
- 應取得的證據
- 入侵營運 Agent 無法觸及國庫
- 會推翻判定的訊號
- 同一 signer 同時管理所有環境
- 本題判定規則
- 跨區域路徑存在即按最大權限計算
檢查 04|如何留下紀錄而不洩漏秘密 · 反例測試
- 本輪做法
- 在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
- 應取得的證據
- canary 掃描覆蓋所有觀測出口
- 會推翻判定的訊號
- debug 模式可輸出 request header
- 本題判定規則
- 發現洩漏時先撤銷再清理紀錄
檢查 05|什麼證據能證明輪替真的有效 · 反例測試
- 本輪做法
- 在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
- 應取得的證據
- 舊憑證在各入口都被拒絕
- 會推翻判定的訊號
- 輪替後舊 worker 仍能成功呼叫
- 本題判定規則
- 未端到端演練只算書面計畫
檢查 01|哪些秘密絕不能進入 Prompt · 持續性控制
- 本輪做法
- 在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
- 應取得的證據
- 測試 canary 不會出現在 prompt 或輸出
- 會推翻判定的訊號
- 只在 UI 遮蔽,後端仍拼入完整值
- 本題判定規則
- 任何原始秘密進上下文即重大
檢查 02|API Key 要如何依功能拆分 · 持續性控制
- 本輪做法
- 在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
- 應取得的證據
- 單一 key 洩漏的影響可明確計算
- 會推翻判定的訊號
- 多個 Agent 共用永久管理 key
- 本題判定規則
- 不支援限權時降低可用功能
檢查 03|錢包需要什麼隔離 · 持續性控制
- 本輪做法
- 在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
- 應取得的證據
- 入侵營運 Agent 無法觸及國庫
- 會推翻判定的訊號
- 同一 signer 同時管理所有環境
- 本題判定規則
- 跨區域路徑存在即按最大權限計算
檢查 04|如何留下紀錄而不洩漏秘密 · 持續性控制
- 本輪做法
- 在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
- 應取得的證據
- canary 掃描覆蓋所有觀測出口
- 會推翻判定的訊號
- debug 模式可輸出 request header
- 本題判定規則
- 發現洩漏時先撤銷再清理紀錄
檢查 05|什麼證據能證明輪替真的有效 · 持續性控制
- 本輪做法
- 在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
- 應取得的證據
- 舊憑證在各入口都被拒絕
- 會推翻判定的訊號
- 輪替後舊 worker 仍能成功呼叫
- 本題判定規則
- 未端到端演練只算書面計畫
常見問題
Secrets manager 是否已足夠?
不是。它保護儲存和存取,但若 Agent 程序獲准讀取,仍未與模型隔離。
短期 token 可以放進 prompt 嗎?
不應。期限短只縮小時間窗,仍可能被洩漏或濫用。
如何處理供應商只有一把全能 key?
在自家受控代理層封裝允許動作,限制網路和預算;無法合理限權時不要讓 Agent 自動執行高風險功能。
本檔案使用的來源
- OWASP Top 10 for Agentic Applications — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- OWASP Top 10 for LLM and Gen AI Apps — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- OWASP LLM08: Excessive Agency — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- NIST AI 600-1: Generative AI Profile — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- MITRE ATLAS — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- Safe Smart Account overview — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- AI agent with a spending limit for a treasury — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
- OpenZeppelin Access Control — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
