MCP 資源模板注入
透過 MCP 資源 URI 模板與參數擴展機制注入對抗內容。
概覽
透過 MCP 資源 URI 模板與參數擴展機制注入對抗內容。
此主題為理解當前 AI 安全態勢之核心,並已成為大量研究關注的對象。LLM Guard — github.com/protectai/llm-guard — 輸入/輸出掃描為本文探討之概念提供基礎脈絡。
核心概念
基本原理
此主題之安全意涵源於現代語言模型於設計、訓練與部署上之基本特性。與其將這些視為孤立漏洞,不如理解它們反映了所有 transformer 語言模型必須整體看待的系統性特徵。
於架構層面,語言模型透過相同的注意力與 feed-forward 機制處理所有輸入符元,無論其來源或預期權限層級為何。這意味系統提示詞、使用者輸入、工具輸出與檢索文件皆於相同的表徵空間中爭奪模型之注意力。安全邊界因此必須於外部執行,因為模型本身無信任等級或資料分類之內在概念。
此架構特性之實務後果在於:系統中任何能影響模型所處理符元序列之元件,皆潛在地具影響其行為之能力。這包括直接使用者輸入、RAG 系統所消耗之網頁與文件等間接資料來源、工具與函式呼叫結果,乃至對話本身的格式與結構。
分類法
理解本領域之攻擊與防禦分類法,對系統性安全評估至關重要。以下分類框架提供結構化方法:
| 類別 | 描述 | 普遍性 | 偵測難度 |
|---|---|---|---|
| 直接攻擊 | 使用者訊息中之對抗性內容 | 極高 | 低—中 |
| 間接攻擊 | 外部資料中之對抗性內容 | 高 | 中—高 |
| 架構性 | 利用系統設計特性 | 中 | 高 |
| 訓練期 | 對訓練投毒或操弄 | 低 | 極高 |
| 推論期 | 利用推論基礎設施 | 低—中 | 高 |
技術深入
此漏洞類別之機制運作於模型「遵循指令能力」與「無法認證指令來源」之互動。訓練期間,模型學會遵循以特定格式與風格呈現之指令。攻擊者若能以符合模型已習得之指令遵循樣式呈現對抗內容,即可影響模型行為。
# Demonstration of the core concept
from openai import OpenAI
client = OpenAI()
def demonstrate_concept(system_prompt: str, user_input: str) -> str:
"""Demonstrate the fundamental behavior pattern."""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_input},
],
temperature=0.0,
)
return response.choices[0].message.content
# Baseline behavior
baseline = demonstrate_concept(
system_prompt="You are a helpful assistant that only discusses cooking.",
user_input="What is the capital of France?",
)
print(f"Baseline: {baseline}")攻擊面分析
此漏洞類別之攻擊面包含多種向量,各具不同特性:
| 攻擊向量 | 描述 | 難度 | 影響 |
|---|---|---|---|
| 直接輸入 | 使用者訊息中之對抗內容 | 低 | 視情況而定 |
| 間接輸入 | 外部資料中之對抗內容 | 中 | 高 |
| 工具輸出 | 函式結果中之對抗內容 | 中 | 高 |
| 上下文操弄 | 利用上下文視窗動態 | 高 | 高 |
| 訓練期 | 投毒訓練或微調資料 | 極高 | 嚴重 |
每種向量需不同的利用技術,並由不同機制防禦。全面安全評估必須依目標系統架構檢視所有相關向量。
實務應用
技術實作
於實務中實作此技術需理解攻擊方法論與目標系統之防禦全貌。典型做法是建立一個測試框架:接收攻擊目標與目標的防禦約束,產生適當的對抗 payload,並記錄每次嘗試之 payload 雜湊、回應長度、是否成功與觸發哪種防禦。框架應能依約束套用混淆(繞過輸入分類器)或新增備用擷取通道(繞過輸出過濾器),並輸出總嘗試次數與成功率之報告。
防禦考量
理解防禦措施對攻擊方與防禦方同等重要:
-
輸入驗證:以分類模型對使用者輸入進行前處理,於請求抵達目標 LLM 前偵測對抗樣式。現代輸入分類器使用於已知攻擊樣式資料集上微調之語言模型,可對已知攻擊類別達到高偵測率,並維持低誤判率。
-
輸出過濾:後處理模型輸出以偵測並移除敏感資料、指令片段,以及其他指示利用成功之徵兆。輸出過濾器通常檢查如系統提示詞外洩、PII 曝光與有害內容產生等樣式。
-
行為監控:即時監控模型行為樣式以偵測可能指示攻擊進行中之異常回應。這包括追蹤回應長度分佈、主題一致性與偏離預期行為樣式等指標。
-
架構設計:設計應用架構以最小化對模型輸出之信任,並於外部執行安全邊界。這包括分離資料平面與控制平面,對所有模型可存取資源實施最小權限原則。
現實世界相關性
此主題領域與跨產業之生產 AI 部署直接相關。MITRE ATLAS — AML.T0054(LLM Plugin Compromise)記錄此漏洞類別於已部署系統之真實利用。
部署 LLM 應用之組織應:
- 評估:針對此漏洞類別進行紅隊評估
- 防禦:依風險等級實作適當之縱深防禦措施
- 監控:部署能即時偵測利用嘗試之監控
- 回應:維持針對 AI 系統入侵之事件回應程序
- 迭代:隨攻擊與模型演進定期重新測試防禦
當前研究方向
此領域之活躍研究聚焦於幾個有前景之方向:
- 形式化驗證:為模型於對抗條件下之行為發展數學保證
- 強健性訓練:產出對此攻擊類別更具抵抗力之訓練程序
- 偵測方法:以低誤判率偵測利用嘗試之改進技術
- 標準化評估:HarmBench、JailbreakBench 等基準套件用以度量進展
- 自動防禦:使用線上學習自動適應新穎攻擊樣式之系統
- 跨模態一般化:理解這些漏洞於不同輸入模態中如何呈現
實作樣式
樣式 1:偵察優先法
最有效之實作始於徹底偵察,於任何利用嘗試前先理解目標系統之防禦姿態。推薦所有生產評估採用此樣式。典型做法為先對回應延遲、被截斷回應與錯誤訊息進行觀察,以推論有哪些防禦層(輸入分類器、輸出過濾器、護欄、速率限制器、行為監控),據此建立目標剖面,包含已辨識防禦、估計難度與推薦繞過技術。
樣式 2:迭代式精煉
此樣式使用失敗嘗試之回饋以精煉方法。每次迭代納入從防禦回應中學到的資訊。
樣式 3:多向量匯合
同時套用多種技術以建立重疊的攻擊向量。即使個別技術僅部分被防禦,其組合仍可能透過防禦飽和達成目標。
產業影響評估
本文所述之漏洞類別對多產業具顯著意涵:
| 產業 | 主要風險 | 影響嚴重性 | 法規關注 |
|---|---|---|---|
| 醫療 | 透過 AI 助理曝光患者資料 | 嚴重 | HIPAA 違反 |
| 金融服務 | 透過 AI 顧問操弄交易 | 嚴重 | SEC/OCC 合規 |
| 法律 | 透過 AI 研究工具違反特權 | 高 | 律師—當事人特權 |
| 教育 | 透過 AI 輔導系統操弄評量 | 中 | 學術誠信 |
| 政府 | 透過 AI 系統曝光機密資料 | 嚴重 | 國家安全 |
| 零售 | 透過聊天機器人曝光客戶 PII | 高 | GDPR/CCPA 合規 |
組織應評估其對此漏洞類別之曝險並實作適當之防禦措施。NIST AI 600-1 Generative AI Profile 與 EU AI Act 提供日益要求此類評估之法規框架。
與相關漏洞類別之比較
理解此漏洞類別與其他類別之關係,有助實務者發展全面之評估策略:
- 傳統注入攻擊(SQL、XSS、命令注入):概念上相似——未受信任資料被解讀為指令——但運作於自然語言層而非形式語言語法
- 社交工程:共享利用信任與權威樣式之特性,但目標為模型而非人類
- 對抗性 ML 攻擊:同一家族之一環,但聚焦於遵循指令行為而非分類邊界
- 供應鏈攻擊:互補之攻擊面——供應鏈入侵可放大提示詞注入之影響
摘要與關鍵原則
本文所探討之概念反映 AI 安全中將隨技術演進而持續存在的根本挑戰。須帶走的關鍵原則:
- 架構意識:安全邊界無法僅由模型執行——需要外部機制
- 縱深防禦:單一層無法提供充分保護——多個獨立層為必要
- 持續評估:威脅態勢快速演化——定期測試非選配項目
- 實務聚焦:理論理解必須搭配實作測試經驗
- 專業標準:發現必須以可行修復指引清楚記錄
測試方法論
評估系統此漏洞類別時,遵循結構化方法論以確保全面覆蓋:
階段 1:探索
探索期間,繪製系統架構、辨識輸入面,並刻畫模型之基線行為。此階段應於無任何對抗意圖下進行——目標純為觀察。
關鍵活動:
- 辨識所有輸入通道(直接使用者輸入、檔案上傳、網頁內容、API 參數)
- 刻畫模型對良性輸入之回應樣式
- 量測基線延遲與回應長度分佈
- 辨識錯誤處理行為與錯誤訊息中之資訊揭露
階段 2:列舉
透過系統性探測列舉系統之防禦層。運用實驗室一節所述之基於延遲與行為偵測之技術。
關鍵活動:
- 以受控邊界測試 payload 探測輸入分類器
- 以應觸發過濾之請求測試輸出過濾器
- 辨識速率限制門檻與封鎖行為
- 繪製系統之拒絕樣式與拒絕時之資訊揭露
階段 3:利用
以適應已辨識防禦姿態之技術嘗試利用。從最簡單技術開始,依需要提升複雜度。
關鍵活動:
- 針對已辨識弱點執行主要技術
- 依防禦回應調整 payload
- 串接多種技術以繞過縱深防禦
- 以完整細節記錄所有成功與失敗嘗試
階段 4:驗證與報告
驗證發現之可靠性並記錄以供評估報告。報告應為結構化的發現物件:標題、嚴重性、描述、OWASP 對應、MITRE 對應、重現步驟、證據與建議,並能輸出為 Markdown 以供內部使用。
關鍵術語詞彙表
| 術語 | 定義 |
|---|---|
| 提示詞注入 | 輸入中之對抗內容影響模型行為超出預期邊界之技術 |
| 縱深防禦 | 具備多個獨立防禦層之安全架構 |
| 護欄 | 可程式化之安全機制,約束模型輸入或輸出行為 |
| 輸入分類器 | 於處理前將輸入分類為良性或對抗之 ML 模型 |
| 輸出過濾器 | 掃描模型輸出以找敏感或有害內容之後處理機制 |
| 上下文視窗 | 模型於單一前向傳遞中可處理之最大符元數 |
| 紅隊演練 | 對系統進行授權之對抗測試以發現漏洞 |
| RLHF | 人類回饋強化學習——用以對齊模型行為之訓練技術 |
| RAG | 檢索增強生成——將模型回應建基於外部資料之技術 |
| MCP | Model Context Protocol——連接 AI 代理至外部工具與資料之標準 |
參考資料與延伸閱讀
- LLM Guard — github.com/protectai/llm-guard
- OWASP LLM Top 10 2025
- MITRE ATLAS
對抗本文所涵蓋攻擊類別之最有效方法為何?
為何本文所述技術於不同模型版本與供應商下仍保持有效?