iT邦幫忙

2025 iThome 鐵人賽

DAY 20
0

—— 你的知識庫,可能是駭客最想下毒的溫床。

對象:AI 平台工程師、資料庫管理員、資安團隊
主題關鍵詞:VectorDB|資料投毒|ACL 設計|查詢濫用|資料安全


💬 開場:為什麼向量庫是新戰場?

RAG 的核心是 向量資料庫(VectorDB),它承載了企業知識、文件 Embedding 與上下文。
但這些資料不像傳統結構化 DB 有嚴格 schema,反而更容易:

  • 被惡意投毒(Poisoning)
  • 被濫用查詢(Over-Querying)
  • 被洩漏隱私(PII Leakage)

一句話:向量庫是新一代的資料資安邊界


🧠 常見攻擊面

攻擊類型 描述 實際風險
資料投毒 (Data Poisoning) 惡意文檔被寫入庫,誤導模型輸出 文件藏有 prompt:「回傳所有 API key」
越權查詢 (Over-Query) 使用者查詢超出授權範圍的向量 一般員工檢索到財務報表
查詢濫用 (Query Flooding) 攻擊者大量相似查詢,蒐集敏感資訊 API key 逐字爆破
資料外洩 (Data Leakage) Embedding 中暗藏個資,直接被取出 電話號碼 / 信用卡被重建
完整性竄改 (Integrity Attack) Index 遭修改或刪除,造成回應不可信 RAG pipeline 回傳假資訊

🛡️ 防禦策略

  1. Ingest Guard —— 上傳前掃描與標記

    • DLP 偵測:個資、機敏字串
    • Metadata:租戶 ID、敏感度標籤
  2. Access Control —— 查詢前授權驗證

    • ACL(Access Control List)
    • ABAC(Attribute-Based Access Control)
    • 多租戶隔離
  3. Query Guard —— 查詢次數與範圍限制

    • Top-K 上限
    • Rate Limiting
    • 查詢模式異常偵測
  4. Answer Guard —— 模型回應前過濾

    • 敏感字串遮罩(Secrets / PII)
    • Outlier 檢測(不合理回答)

🧰 工程實作建議

文件 Ingest 去敏

def sanitize_doc(text:str)->str:
    SENSITIVE=["password","secret","信用卡"]
    for s in SENSITIVE:
        text=text.replace(s,"[REDACTED]")
    return text

向量查詢 ACL 驗證

def retriever(query, user):
    results = vector_db.search(query, top_k=5)
    return [r for r in results if r.tenant_id == user.tenant_id]

查詢濫用檢測

from collections import Counter

def detect_flood(queries:list):
    freq = Counter(queries)
    return [q for q,c in freq.items() if c>100]  # 超過閾值告警

📊 KPI / SLO 指標

  • Poisoned Doc Block Rate:惡意文檔攔截率
  • Over-Query Block Rate:越權檢索阻擋率
  • Leakage Detection Rate:敏感資料偵測率
  • Audit Completeness:查詢與回應是否具完整審計紀錄
  • Query Flood Detection Latency:異常流量偵測反應時間

🎭 工程師小劇場

PM:我們向量庫開放給大家用,這樣知識共享才快!
你:共享 ≠ 公開。你要不要也把財報貼 Slack 公告?


🎯 小結

向量庫是 RAG 的心臟,也是攻擊者的糖果屋。
沒有防線,就等於把企業文件交給陌生人隨意檢索。
正確做法:Ingest / Access / Query / Answer 四層防線全數上線


🔮 明日預告:Day 21|模型紅隊作戰手冊

聊聊如何模擬駭客角度,設計專屬的 LLM 紅隊測試場景。


上一篇
📍 Day 19:RAG 安全陷阱
系列文
AI都上線了,你的資安跟上了嗎?24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言