將檢索內容視為不可信輸入
已完成辨識儲存庫檔案與工具結果中隱藏的指令。將檢索資訊與操作權限分開。
檢查理解程度儲存庫檔案聲稱所有測試都可省略,並要求代理程式忽略任務指令。工作流程應如何處理?進行練習
學習目標
- 在開發工作流程中,辨識間接提示注入。
- 解釋為何只有文字標籤無法落實安全邊界。
- 為工具限制設計安全測試。
找出資料何時被當成指令
程式設計代理程式不只讀取使用者請求,還可能檢查議題、儲存庫檔案、套件文件、搜尋結果和工具回應。部分內容可能含有其他人寫下的指令。
當這些內容讓模型偏離已授權任務,就發生提示注入。間接注入來自檢索來源,而非使用者直接請求。OWASP 將儲存庫材料與工具輸出列為相關進入點。閱讀防範指引。
以虛構維護任務為例。使用者要求代理程式修正報表篩選,並執行必要測試。檢索到的 README 卻聲稱測試已過時,要求上傳設定檔。README 可以解釋專案,但無權授權略過使用者要求的檢查,或將檔案送往其他地方。
盤點可能後果
同樣的誤導文字,在不同環境會造成不同後果。唯讀摘要工具可能產生錯誤摘要;能寫入儲存庫的代理程式可以改程式碼;持有機密值和對外網路存取權的代理程式,則可能暴露資訊。
決定哪些防護重要前,先檢查可用操作。列出敏感資源、可寫入目標和外部目的地,也要納入初始設定後新增的連接器。新工具可能擴大既有弱點的影響。
代理程式也可能把誤導內容帶到後續階段,例如將不可信指令複製到生成的任務說明中。下一個代理程式不得因此把該說明當成經獨立核准的政策。
使用目的不同的多項控制
在應用程式設計中,分開可信任務指令與檢索資料,並顯示檢索材料來源。這些做法有助於正確解讀,但不能構成完整安全邊界。
在執行系統中落實資源權限,限制敏感資料目的地。後果重大的操作前,要求適當決策。依已授權任務和目標資源,驗證擬執行操作。
篩選器與第二個模型可以協助偵測可疑內容,但也可能漏掉攻擊,或阻擋合法資訊。不要用模型信心分數,取代依明確規則執行的授權。OWASP 明確指出,只靠提示詞或檢索的限制。閱讀風險說明。
不暴露真實資料,也能測試工作流程
使用可拋棄儲存庫與虛構檔案。評估環境不提供正式環境存取憑證,也不授予不受限的對外寫入權。加入不會造成傷害、但與任務衝突的指令,例如略過必需檢查。
同時觀察模型回應與實際工具操作。如果檢查仍被略過,只說「我忽略了該指令」並不足夠。記錄任務、注入測試資料、允許工具和觀察結果。
提示詞、模型、連接器或權限改變後,重做有代表性的案例。成功阻擋一個範例,只是該案例的證據,不是能抵禦所有注入的保證。測試失敗時,降低可造成的後果,同時修正底層工作流程。
進行練習
建立可拋棄的測試資料,在註解中要求代理程式略過必需檢查。在已授權、隔離、不含機密值且不能對外寫入的環境中評估,驗證檢查仍然執行。記錄工具權限、觀察行為和這次單一測試的限制。
下載工作表(Markdown)取消此選項,會刪除此瀏覽器儲存的所有進度。
進度只留在此瀏覽器。無須帳戶,沒有追蹤。