對話保存
中級2 分鐘閱讀更新於 2026-03-15
保存 AI 對話證據:互動日誌擷取、上下文視窗重建、多回合對話完整性、工具呼叫鏈保存,以及鑑識時間線建構。
對話是大多數 AI 資安事件的主要鑑識成品。每個越獄、資料外洩與模型操縱攻擊都產生一段對話紀錄,精確顯示攻擊者發送了什麼、模型回傳了什麼。妥善保存的對話證據可證明攻擊技術、量化資料曝露、證實或否定意圖,並建立事件時間線。
然而,對話保存比表面複雜。與 AI 系統的對話不僅是文字訊息序列——它包含系統提示詞、有容量限制的上下文視窗、工具呼叫及其結果、多模態輸入輸出,以及可能與內容同等鑑識價值的元資料。
完整對話紀錄的組成
核心元件
鑑識上完整的對話紀錄包含以下所有:
ConversationRecord 資料類別含:
- 會話識別:session_id、conversation_id、user_id、user_ip、user_agent
- 時序資料:session_start、session_end
- 系統上下文(模型被告知的角色):system_prompt、system_prompt_version、system_prompt_hash
- 模型組態:model_name、model_version、temperature、top_p、max_tokens、其他採樣參數
- 訊息序列:messages 串列,每則訊息含 role(user/assistant/system/tool)、content、timestamp、token count、tool_calls、tool_call_id、content_hash
- 上下文注入:rag_chunks 串列(doc_id、similarity_score、retrieved_content、source_url)、tool_outputs 串列(tool_name、parameters、result、latency)
- 完整性:每則訊息、每個工具呼叫的 SHA-256 雜湊、鏈接雜湊以防竄改
元資料
除內容外,元資料同等重要:
- 延遲、符元消耗、終止原因
- 護欄觸發記錄
- 內容審核分類器分數
- 異常偵測分數
上下文視窗重建
模型在每個推論步驟看到的是一個經組裝的上下文視窗。鑑識重建需能重現這個視窗:
ContextWindowReconstructor:
- 對任一對話回合,組裝:系統提示詞 + 對話歷史(截斷至 context_length) + RAG 檢索 + 工具輸出
- 計算每個回合模型實際看到的 token 總數
- 識別被截斷的早期訊息(可能影響模型解讀)
- 產出每個回合的「模型觀點」重建
工具呼叫鏈保存
對代理式系統,工具呼叫鏈是關鍵證據:
- 工具名稱、參數、結果、時間戳
- 工具回傳的原始 payload(特別是含文字或 URL 的)
- 多層代理交接:代理 A 的輸出如何變成代理 B 的輸入
- 失敗工具呼叫(攻擊者探測可能的錯誤處理漏洞)
時間線建構
ForensicTimelineBuilder:
- 合併對話事件、工具事件、系統事件(如安全告警、基礎設施變更)、外部指標(如 SOC 告警)
- 以精確時間戳(最好是毫秒)排序
- 標註事件間的因果或時序關係
- 產生視覺化時間線以供報告
保存完整性
防竄改儲存
- 對每個對話記錄計算 SHA-256
- 存放於 write-once 或帶有物件鎖定的儲存
- 維護鏈接雜湊記錄,使竄改可偵測
保留政策
- 典型生產對話保留 30-90 天完整內容
- 之後僅保留雜湊與元資料
- 對調查中事件,實施法定保留(legal hold),保留完整內容直至調查結束
隱私考量
- 對話可能含 PII、財務資料、醫療資訊
- 實施存取控制:誰可查閱完整內容、誰僅可查看元資料
- 記錄所有存取以供稽核
- 遵循 GDPR、HIPAA 等相關法規
實務挑戰
- 大量資料:每日數百萬回合可能產生 TB 級資料
- 加密:對話若在 TLS 上傳輸,需在端點解密以保存
- 多租戶:確保租戶資料隔離不被鑑識流程破壞
- 串流回應:LLM 常以串流方式回傳;保存需捕捉完整最終回應
參考資料
- NIST AI 100-1 (2023). AI Risk Management Framework.
- EU AI Act Article 12. Record-keeping requirements.
- OWASP LLM Top 10 2025. Logging & Monitoring guidance.
- MITRE ATLAS. (2024). AI-specific attack techniques. https://atlas.mitre.org/