iT邦幫忙

2026 iThome 鐵人賽

DAY 12
0
AI Security

從 Web 到 AI Agent:30 天看懂新世代資安攻防系列 第 12

System Prompt 藏起來就安全了嗎?Sensitive Information 與 Hidden Context

  • 分享至 

  • xImage
  •  

System Prompt 使用者平常看不到,是不是就代表裡面的東西很安全?不一定。

把 API Key 或資料庫密碼寫進 System Prompt,再補一句「絕對不能告訴使用者」,等於把鑰匙放進抽屜,再貼一張「禁止打開」的紙條。規則只能要求別說,不能讓祕密消失。

模型讀得到的,就當成使用者可能看得到

一次請求送進模型的上下文裡,可能同時有 System Prompt、RAG 撈出的內部文件、使用者資料、工具回傳、tool schema,有時還有除錯訊息。

把它們繞到輸出端的路徑不只一條:Prompt Injection、權限設計錯誤、RAG 查詢範圍過寬、應用程式順手把 Log 拼進 context。任何一條成立,後台的東西就會出現在回答裡。

洩漏的危害有兩層

第一層是祕密本身——金鑰、密碼、內部資料。

第二層更常被忽略:就算 System Prompt 裡一個祕密都沒有,洩漏一樣有價值。 它會告訴攻擊者你有哪些工具、參數長什麼樣、過濾規則怎麼寫、哪些話術會被擋。抽出 System Prompt 只是個有趣的展示,真正有用的是它交出了下一次攻擊的藍圖。

Hui 等人(2024)的 PLeak 就是針對這件事做的。它把「抽出 System Prompt」formulate 成最佳化問題,用梯度方法逐段逼近,在黑箱條件下自動生成對抗查詢,並且在 Poe 平台上的真實應用測試過,效果明顯優於人工編寫的提示。攻擊程式碼是公開的。

OWASP 改名這件事本身就是結論

在 OWASP Top 10 for LLM Applications 2025 版裡,這一項叫 LLM07:2025 System Prompt Leakage。2026 版把它改名並擴大成 LLM08:2026 Hidden Context Exposure,涵蓋所有被組進 context 而使用者不該看到的內容——不只 System Prompt,還包括 tool schema、被撈出來的政策文字、流程規則。

(注意編號有變動:2026 版的 LLM07 是 Misinformation,用舊編號去查會查到別的東西。)

OWASP 的建議很直接:假設 hidden context 會被挖出來,然後把系統設計成它被挖出來也不痛。

做法

  • API Key、憑證放 Secret Manager,模型連看都不該看到。
  • 授權判斷交給後端,不要寫成 System Prompt 裡的一條規則。
  • RAG 在檢索前先做存取控制,別讓查詢範圍決定權限範圍。
  • 敏感資料能不進 context,就別進。
  • 別靠輸出端關鍵字比對來擋。那是「叫模型閉嘴」的技術版,換個編碼就過了。

真正的保密,不是叫模型閉嘴,而是讓它從一開始就拿不到祕密。

延伸閱讀

  • OWASP GenAI Security Project, Top 10 for LLM Applications:LLM08:2026 Hidden Context Exposure(2025 版為 LLM07:2025 System Prompt Leakage)。
  • Bo Hui, Haolin Yuan, Neil Gong, Philippe Burlina & Yinzhi Cao, PLeak: Prompt Leaking Attacks against Large Language Model Applications, ACM CCS 2024, pp. 3600–3614(arXiv:2405.06823)。

上一篇
攻擊不一定看得見:多模態、隱形字元與編碼型 Prompt Injection
下一篇
AI 回傳什麼,程式就執行什麼?Improper Output Handling
系列文
從 Web 到 AI Agent:30 天看懂新世代資安攻防13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言