哪些秘密絕不能進入 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

檢查 01|哪些秘密絕不能進入 Prompt · 支持性測試

本輪做法
尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
應取得的證據
測試 canary 不會出現在 prompt 或輸出
會推翻判定的訊號
只在 UI 遮蔽,後端仍拼入完整值
本題判定規則
任何原始秘密進上下文即重大
02

檢查 02|API Key 要如何依功能拆分 · 支持性測試

本輪做法
尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
應取得的證據
單一 key 洩漏的影響可明確計算
會推翻判定的訊號
多個 Agent 共用永久管理 key
本題判定規則
不支援限權時降低可用功能
03

檢查 03|錢包需要什麼隔離 · 支持性測試

本輪做法
尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
應取得的證據
入侵營運 Agent 無法觸及國庫
會推翻判定的訊號
同一 signer 同時管理所有環境
本題判定規則
跨區域路徑存在即按最大權限計算
04

檢查 04|如何留下紀錄而不洩漏秘密 · 支持性測試

本輪做法
尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
應取得的證據
canary 掃描覆蓋所有觀測出口
會推翻判定的訊號
debug 模式可輸出 request header
本題判定規則
發現洩漏時先撤銷再清理紀錄
05

檢查 05|什麼證據能證明輪替真的有效 · 支持性測試

本輪做法
尋找最接近實際行為的支持證據,但不接受無法連回原始聲明的材料
應取得的證據
舊憑證在各入口都被拒絕
會推翻判定的訊號
輪替後舊 worker 仍能成功呼叫
本題判定規則
未端到端演練只算書面計畫
06

檢查 01|哪些秘密絕不能進入 Prompt · 反例測試

本輪做法
在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
應取得的證據
測試 canary 不會出現在 prompt 或輸出
會推翻判定的訊號
只在 UI 遮蔽,後端仍拼入完整值
本題判定規則
任何原始秘密進上下文即重大
07

檢查 02|API Key 要如何依功能拆分 · 反例測試

本輪做法
在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
應取得的證據
單一 key 洩漏的影響可明確計算
會推翻判定的訊號
多個 Agent 共用永久管理 key
本題判定規則
不支援限權時降低可用功能
08

檢查 03|錢包需要什麼隔離 · 反例測試

本輪做法
在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
應取得的證據
入侵營運 Agent 無法觸及國庫
會推翻判定的訊號
同一 signer 同時管理所有環境
本題判定規則
跨區域路徑存在即按最大權限計算
09

檢查 04|如何留下紀錄而不洩漏秘密 · 反例測試

本輪做法
在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
應取得的證據
canary 掃描覆蓋所有觀測出口
會推翻判定的訊號
debug 模式可輸出 request header
本題判定規則
發現洩漏時先撤銷再清理紀錄
10

檢查 05|什麼證據能證明輪替真的有效 · 反例測試

本輪做法
在關閉這一列之前,以變體、工具失敗或替代路徑嘗試推翻暫定結論
應取得的證據
舊憑證在各入口都被拒絕
會推翻判定的訊號
輪替後舊 worker 仍能成功呼叫
本題判定規則
未端到端演練只算書面計畫
11

檢查 01|哪些秘密絕不能進入 Prompt · 持續性控制

本輪做法
在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
應取得的證據
測試 canary 不會出現在 prompt 或輸出
會推翻判定的訊號
只在 UI 遮蔽,後端仍拼入完整值
本題判定規則
任何原始秘密進上下文即重大
12

檢查 02|API Key 要如何依功能拆分 · 持續性控制

本輪做法
在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
應取得的證據
單一 key 洩漏的影響可明確計算
會推翻判定的訊號
多個 Agent 共用永久管理 key
本題判定規則
不支援限權時降低可用功能
13

檢查 03|錢包需要什麼隔離 · 持續性控制

本輪做法
在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
應取得的證據
入侵營運 Agent 無法觸及國庫
會推翻判定的訊號
同一 signer 同時管理所有環境
本題判定規則
跨區域路徑存在即按最大權限計算
14

檢查 04|如何留下紀錄而不洩漏秘密 · 持續性控制

本輪做法
在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
應取得的證據
canary 掃描覆蓋所有觀測出口
會推翻判定的訊號
debug 模式可輸出 request header
本題判定規則
發現洩漏時先撤銷再清理紀錄
15

檢查 05|什麼證據能證明輪替真的有效 · 持續性控制

本輪做法
在版本、網路或環境改變後,重新確認證據、上限與復原路徑仍然有效
應取得的證據
舊憑證在各入口都被拒絕
會推翻判定的訊號
輪替後舊 worker 仍能成功呼叫
本題判定規則
未端到端演練只算書面計畫

常見問題

Secrets manager 是否已足夠?

不是。它保護儲存和存取,但若 Agent 程序獲准讀取,仍未與模型隔離。

短期 token 可以放進 prompt 嗎?

不應。期限短只縮小時間窗,仍可能被洩漏或濫用。

如何處理供應商只有一把全能 key?

在自家受控代理層封裝允許動作,限制網路和預算;無法合理限權時不要讓 Agent 自動執行高風險功能。

本檔案使用的來源

  1. OWASP Top 10 for Agentic Applications — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  2. OWASP Top 10 for LLM and Gen AI Apps — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  3. OWASP LLM08: Excessive Agency — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  4. NIST AI 600-1: Generative AI Profile — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  5. MITRE ATLAS — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  6. Safe Smart Account overview — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  7. AI agent with a spending limit for a treasury — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。
  8. OpenZeppelin Access Control — 用於核對範圍、版本、行為或控制的一手資料;使用時仍須確認頁面日期與上下文。