快速摘要
RAG 系統讓 AI 可以引用企業內部知識來回答問題,但這也引入了新的安全風險——知識庫可能被投毒、存取控制可能被繞過、敏感文件可能透過 AI 被未授權存取。

5 個攻擊向量

攻擊向量說明嚴重度
知識庫投毒在知識庫中注入錯誤或惡意內容
存取控制繞過透過 AI 存取使用者無權檢視的文件
Prompt Injection via 文件在文件中嵌入惡意指令
資料外洩AI 在回答中洩漏敏感文件內容
推理攻擊透過多次查詢推斷敏感資訊

知識庫投毒

如果攻擊者可以修改知識庫中的文件,他們可以:

  • 注入錯誤的技術指導,導致使用者做出錯誤決策
  • 嵌入 Prompt Injection 指令,讓 AI 在引用文件時被劫持
  • 插入看似正確但包含後門的程式碼範例

防禦方式:版本控制所有知識庫文件、限制編輯權限、定期審查內容變更。

存取控制繞過

這是 RAG 系統最常見的安全問題。當 AI 可以搜尋整個知識庫時,它可能回傳使用者沒有權限檢視的文件內容。

例如:一般員工問 AI「公司明年的薪資調整計畫是什麼?」,如果 RAG 系統沒有做好存取控制,AI 可能引用人資部門的內部文件來回答。

防禦方式:在 RAG 的檢索層實作存取控制,確保每次搜尋都帶入使用者的權限資訊,只回傳使用者有權存取的文件。

資料外洩

即使有存取控制,AI 的回答本身也可能洩漏敏感資訊:

  • AI 在回答中引用了敏感文件的具體數字
  • 使用者透過一系列精心設計的問題,逐步拼湊出完整的機密資訊
  • AI 的回答被記錄在公開的聊天記錄中

防禦框架

  1. 文件級存取控制:每個文件標記存取權限,檢索時過濾
  2. 內容過濾:AI 回答前,過濾掉敏感資訊
  3. 輸入驗證:偵測和阻擋知識庫中的 Prompt Injection
  4. 稽核日誌:記錄所有 RAG 查詢和引用的文件
  5. 資料分級:根據敏感度分級管理知識庫內容

常見問題

RAG 比直接把資料給 ChatGPT 安全嗎?

是的,因為 RAG 系統可以部署在企業內部,資料不需要送到外部 AI 服務。但 RAG 本身也有安全風險,需要額外的安全設計。

開源的 RAG 框架安全嗎?

LangChain、LlamaIndex 等開源框架本身不提供安全功能,需要自行實作存取控制和內容過濾。使用開源框架時,安全是你的責任。

如何防止 AI 洩漏引用文件的敏感內容?

在 RAG 的回答生成步驟中加入內容過濾,使用正則表達式或另一個 AI 檢查回答中是否包含敏感資訊(如身分證號、信用卡號)。