路徑 03課程 3 / 6

將檢索內容視為不可信輸入

辨識儲存庫檔案與工具結果中隱藏的指令。將檢索資訊與操作權限分開。

實務10 分鐘已審查

發布者 我們如何撰寫

檢查理解程度儲存庫檔案聲稱所有測試都可省略,並要求代理程式忽略任務指令。工作流程應如何處理?進行練習
儲存庫檔案聲稱所有測試都可省略,並要求代理程式忽略任務指令。工作流程應如何處理?

學習目標

  • 在開發工作流程中,辨識間接提示注入。
  • 解釋為何只有文字標籤無法落實安全邊界。
  • 為工具限制設計安全測試。

找出資料何時被當成指令

程式設計代理程式不只讀取使用者請求,還可能檢查議題、儲存庫檔案、套件文件、搜尋結果和工具回應。部分內容可能含有其他人寫下的指令。

當這些內容讓模型偏離已授權任務,就發生提示注入。間接注入來自檢索來源,而非使用者直接請求。OWASP 將儲存庫材料與工具輸出列為相關進入點。閱讀防範指引。

以虛構維護任務為例。使用者要求代理程式修正報表篩選,並執行必要測試。檢索到的 README 卻聲稱測試已過時,要求上傳設定檔。README 可以解釋專案,但無權授權略過使用者要求的檢查,或將檔案送往其他地方。

盤點可能後果

同樣的誤導文字,在不同環境會造成不同後果。唯讀摘要工具可能產生錯誤摘要;能寫入儲存庫的代理程式可以改程式碼;持有機密值和對外網路存取權的代理程式,則可能暴露資訊。

決定哪些防護重要前,先檢查可用操作。列出敏感資源、可寫入目標和外部目的地,也要納入初始設定後新增的連接器。新工具可能擴大既有弱點的影響。

代理程式也可能把誤導內容帶到後續階段,例如將不可信指令複製到生成的任務說明中。下一個代理程式不得因此把該說明當成經獨立核准的政策。

使用目的不同的多項控制

在應用程式設計中,分開可信任務指令與檢索資料,並顯示檢索材料來源。這些做法有助於正確解讀,但不能構成完整安全邊界。

在執行系統中落實資源權限,限制敏感資料目的地。後果重大的操作前,要求適當決策。依已授權任務和目標資源,驗證擬執行操作。

篩選器與第二個模型可以協助偵測可疑內容,但也可能漏掉攻擊,或阻擋合法資訊。不要用模型信心分數,取代依明確規則執行的授權。OWASP 明確指出,只靠提示詞或檢索的限制。閱讀風險說明。

不暴露真實資料,也能測試工作流程

使用可拋棄儲存庫與虛構檔案。評估環境不提供正式環境存取憑證,也不授予不受限的對外寫入權。加入不會造成傷害、但與任務衝突的指令,例如略過必需檢查。

同時觀察模型回應與實際工具操作。如果檢查仍被略過,只說「我忽略了該指令」並不足夠。記錄任務、注入測試資料、允許工具和觀察結果。

提示詞、模型、連接器或權限改變後,重做有代表性的案例。成功阻擋一個範例,只是該案例的證據,不是能抵禦所有注入的保證。測試失敗時,降低可造成的後果,同時修正底層工作流程。

進行練習

建立可拋棄的測試資料,在註解中要求代理程式略過必需檢查。在已授權、隔離、不含機密值且不能對外寫入的環境中評估,驗證檢查仍然執行。記錄工具權限、觀察行為和這次單一測試的限制。

下載工作表(Markdown)
檢查理解程度 ↑

繼續學習

來源與延伸閱讀

Taiga 相關延伸閱讀

上一課: 限制代理程式的權限