提示詞注入鏈分析
分析跨多步驟 AI 系統的提示詞注入攻擊鏈,包含間接注入傳播、代理式利用與跨系統攻擊關聯。
概觀
單步提示詞注入——攻擊者直接操縱模型輸入以改變輸出——已被充分理解。鏈式攻擊則不同。在鏈式提示詞注入中,攻擊者載荷傳播通過 AI 管線的多個階段:注入在某一點進入、在中間階段的處理中存活,並在下游階段達成其效果,通常在完全不同的系統中。這些鏈利用現代 AI 系統由多個互動元件組成的特性:檢索器、摘要器、規劃器、工具呼叫者與執行器。
鏈式攻擊在鑑識上更難偵測,因為惡意載荷在注入點可能看起來無害,僅在結合下游元件行為時才變得有害。它們更難歸因,因為注入點可能遠離影響點。它們更難修補,因為修補需要理解多個元件之間的互動,而非強化單一輸入過濾器。
以具體範例說明:攻擊者在公開網頁中嵌入指令。RAG 系統爬取此頁面並將其作為文件塊儲存。當使用者詢問看似無關的問題時,檢索器浮現被投毒的塊。LLM 遵循被注入的指令,在回應中嵌入隱藏的資料外洩載荷,透過將使用者查詢上下文編碼進 Markdown 影像 URL。當回應在瀏覽器中渲染時,影像 URL 向攻擊者伺服器發出請求。這是四階段鏈:網頁 → 文件儲存 → 檢索 → 瀏覽器渲染,跨越三個系統邊界。
本文涵蓋追蹤多步驟系統中注入鏈、分析載荷如何轉換與傳播、於日誌中偵測鏈式攻擊,以及為鏈式重建建構工具的技術。
提示詞注入鏈的剖析
鏈元件與術語
提示詞注入鏈由以下元件組成:
- 注入點:攻擊者載荷首次進入系統處。可能是使用者輸入、檢索文件、工具輸出、電子郵件、行事曆事件或任何餵入 AI 元件的資料來源。
- 載體:在階段間攜帶載荷的中間系統或資料儲存。包括向量資料庫、文件儲存、對話歷史、工具呼叫結果與代理間訊息。
- 觸發:導致載荷啟動的條件。可能是特定使用者查詢、特定檢索上下文或已排程代理動作。
- 執行點:實際遵循被注入指令的 AI 元件。通常是鏈中的最終 LLM,但也可能是中間元件。
- 影響點:攻擊者目標達成處。可能是資料外洩、未授權動作執行、輸出操縱或系統妥協。
ChainStageType 列舉:INJECTION、CARRIER、TRIGGER、EXECUTION、IMPACT。
InjectionVector 列舉:DIRECT_INPUT、RETRIEVED_DOCUMENT、TOOL_OUTPUT、AGENT_MESSAGE、EMAIL_CONTENT、WEB_CONTENT、DATABASE_RECORD、FILE_CONTENT、API_RESPONSE。
ChainStage 含 stage_id、stage_type、component、injection_vector、input_hash、output_hash、timestamp、metadata。
鏈類型
- 線性鏈:A → B → C,簡單串列
- 分叉鏈:載荷從一點散播到多個下游系統
- 合併鏈:多個注入點匯聚於單一執行點
- 循環鏈:在代理式系統中,載荷可能反饋到自己
追蹤注入鏈
鏈重建框架
InjectionChainReconstructor:
- 從鏈各階段蒐集相關日誌
- 正規化為 ChainStage 物件
- 建立階段間的有向圖,邊表示資料流
- 執行拓撲排序以重建完整鏈
- 標註可能的注入點、觸發與影響
載荷追蹤
隨著載荷經過階段,其形式可能改變:
- 直接傳播:原始文字完整保留
- 摘要後傳播:摘要階段可能保留核心指令
- 嵌入後傳播:作為嵌入儲存於向量資料庫,然後檢索
- 翻譯後傳播:跨語言管線
PayloadTracker 使用語意相似度追蹤載荷變形:對每個階段計算內容嵌入;在鏈中識別語意連續性(儘管表層變化);標記語意跳躍點(可能指出對話式或翻譯重新表達)。
檢測與分析
載荷簽章庫
維護已知注入載荷模式的簽章庫:
- 字串模式:「ignore previous」、「SYSTEM:」、特殊 Unicode
- 嵌入模式:可疑內容的嵌入向量簽章
- 行為模式:特定指令序列
跨系統關聯
CrossSystemInjectionDetector:從多個 AI 系統聚合遙測;尋找時間與語意上相鄰的可疑活動;重建跨系統的端到端鏈。
鏈風險評分
對偵測的鏈計算風險分數:跨越的系統數、達到的權限等級、是否涉及工具呼叫/外部通訊、歷史上類似鏈的成功率。
調查工作流程
階段 1:起始信號
- 異常輸出偵測
- 工具呼叫異常模式
- 使用者回報可疑行為
階段 2:影響點調查
- 識別發生的具體動作/輸出
- 追蹤回觸發此動作的 LLM 會話
- 擷取會話的完整上下文
階段 3:溯源
- 從觸發會話的上下文向上追蹤:哪些檢索文件?哪些工具輸出?哪些代理交接?
- 對每個來源,追溯至其來源:文件進入向量資料庫的時間與來源;工具輸出的上游 API;代理交接的始發代理
- 繼續追溯直到達到攻擊者控制的初始注入點
階段 4:修補
- 清理注入點(移除被投毒的文件、修補被入侵的上游服務)
- 清理載體(重新建構受影響的向量資料庫集合、清除對話記憶)
- 強化執行點(改進提示詞護欄、限制工具權限)
- 為未來偵測加入跨階段關聯規則
預防措施
分段隔離
- 對不可信資料(網頁、電子郵件)加入明確標記
- 將檢索上下文與使用者輸入分開處理
- 代理間通訊採用嚴格訊息格式驗證
最小權限
- 檢索階段不應能執行工具
- 代理應只擁有完成其任務所需的最低工具集
- 敏感工具應要求人類確認
觀察性
- 對每個 AI 元件記錄完整輸入/輸出
- 保留資料流追蹤(哪個文件被哪個查詢檢索)
- 對代理動作記錄決策過程
參考資料
- Greshake, K., et al. (2023). Not what you've signed up for: Compromising Real-World LLM-Integrated Applications with Indirect Prompt Injection. arXiv:2302.12173.
- OWASP. (2025). OWASP Top 10 for LLM Applications. LLM01: Prompt Injection. https://owasp.org/www-project-top-10-for-large-language-model-applications/
- Simon Willison. (2024). Prompt Injection primer. https://simonwillison.net/tags/promptinjection/
- MITRE ATLAS. (2024). AML.T0051 — LLM Prompt Injection. https://atlas.mitre.org/