摘要 : 提示詞注入是LLM頭號風險,重點在模型分不清資料與命令,防禦需靠模型外四層護欄。
內容:
先用一個真實感很強的案例說明風險:有人把正常的商業簡報分享給使用Copilot的同事,卻在演講者備註中藏入惡意指令。當同事請Copilot做摘要時,模型讀到這段隱藏內容後,沒有摘要文件,反而洩露了最近郵件。這就是Prompt Injection(提示詞注入),也是OWASP連續三年列為大模型應用頭號風險的LLM01。
先區分兩種注入方式。第一種是直接注入,指使用者在對話中直接輸入惡意指令,例如要求模型忽略規則並洩露密碼。這類相對容易發現。第二種是間接注入,惡意指令藏在郵件、PDF、網頁、表單欄位或演講備註等外部內容裡,模型在讀取時就可能中招。這種情況更危險,因為使用者可能完全沒有做錯任何事。
接著解釋,為什麼單靠在系統 Prompt 裡寫「請勿洩露資訊」並沒有用。根本原因在於模型無法可靠區分上下文中哪些是應遵守的命令、哪些只是待處理的資料。攻擊者只要把惡意語句混進內容,模型就可能被誤導。因此,安全不能建立在「模型會乖乖聽話」這個假設上,必須把防護做在模型之外。
真正可行的做法是建立四層護欄。第一層是輸入層,對外部內容先做檢測、隔離與標記,例如用 spotlighting 把資料和系統指令分開。第二層是模型層,採用最小權限原則,不給模型不需要的能力與資料。第三層是輸出層,在模型產出結果後再做檢查,避免敏感資訊外洩或執行越權動作。第四層是行動層,高風險操作如發信、匯出資料、付款、執行命令,必須加入人工審核或工具白名單限制。
多個 agent 協作時還要注意跨 agent 身分驗證,不能彼此無條件信任,否則可能出現二階注入:低權限 agent 被騙後,誘導高權限 agent 執行危險行為。更進一步的做法是 dual LLM,把處理不可信內容的模型與具備權限的模型分開,並用 runtime guardrail gateway 統一集中管理請求與安全策略。
最後總結一句核心觀點:模型分不清資料和指令,護欄的任務就是替模型做這件事。若在面試中被問到如何保護一個能發郵件的 AI agent,可以用四句話回答:輸入層隔離外部內容、模型層最小權限、輸出層校驗外發內容、行動層高危操作強制人審或白名單。這也是AI治理中非常關鍵的一套實務框架。
沒有留言:
張貼留言