指令階層利用
中級2 分鐘閱讀更新於 2026-03-20
利用不同模型供應商間指令優先階層的模糊性。
概覽
指令階層利用鎖定模型供應商如何實作「哪些指令優先」的差異。OpenAI、Anthropic、Google 等公司已發表關於指令階層的規格——通常以系統 > 使用者 > 助理 > 工具為順序——但實際實作間存在模糊性。攻擊者利用這些模糊性於相對權威較低的層級注入,期望其被當作較高層級指令處理。
核心概念
根本原則
指令階層的實作層級非架構層級。這意味著:
- 模型對「階層」的理解源自訓練,而非硬式權限強制
- 不同模型家族於階層邊界的訓練強度不同
- 階層邊界可透過格式模仿、角色混淆或訊息標籤利用而被攻擊
技術深入探討
典型攻擊模式包含:
- 角色冒用:使用者訊息內嵌看似系統級的格式標記
- 階層混淆:同一對話中跨多個角色發送訊息,利用模型解析順序
- 工具輸出提升:使工具回傳值看似具系統權威
- 助理訊息注入:於多代理系統中,某代理的輸出成為另一代理的「助理」上下文
攻擊面分析
| 攻擊向量 | 說明 | 複雜度 | 影響 | 可偵測性 |
|---|---|---|---|---|
| 系統標籤冒用 | 於使用者訊息中冒用系統層級格式 | 中 | 高 | 中 |
| 工具結果權威提升 | 使工具輸出看似系統指令 | 中 | 高 | 低 |
| 跨角色混淆 | 利用多角色訊息間的解析模糊 | 高 | 高 | 低 |
| 供應商行為差異 | 於對某供應商有效的模式試驗其他 | 中 | 變動 | 中 |
實務技術
供應商特定差異
- OpenAI:具相對較強的指令階層訓練,但系統訊息可被格式模仿影響
- Anthropic:於 Claude 3.5+ 實作更嚴格階層,但對「XML 標籤中嵌入系統指示」仍部分易受攻擊
- Google:Gemini 的階層實作較寬鬆,對工具輸出權威提升更易受攻擊
- 開源模型:Llama、Mistral 等常缺乏明確階層訓練,使此類攻擊更有效
實務攻擊模式
於使用者訊息中嵌入看似系統級的 XML 區塊(例如 <system_priority="high">...</system_priority>),希望模型把其內容視為系統指令。效果依模型家族而異。
對多代理系統,操控一個代理的輸出,使其於下游代理的上下文中以「助理」角色呈現時,含對該下游代理的指示。
防禦考量
輸入層防禦
- 剝除使用者輸入中看似系統級的格式標記
- 對跨角色訊息進行一致的邊界驗證
- 對工具輸出進行淨化後再納入模型上下文
架構防護
- 不把工具輸出直接當作高優先權上下文,而是作為不可信使用者資料
- 於多代理系統間強制嚴格角色邊界
- 對供應商階層行為進行持續迴歸測試
測試方法論
| 階段 | 活動 | 工具 | 交付物 |
|---|---|---|---|
| 偵察 | 辨識目標所用的供應商與階層實作 | Garak | 目標輪廓 |
| 假設 | 規劃針對該供應商之特定模式 | MITRE ATLAS | 測試計畫 |
| 執行 | 跨各角色嘗試注入 | PyRIT、自訂 | 測試結果 |
| 分析 | 評估跨供應商差異 | CVSS 框架 | 發現資料庫 |
| 報告 | 撰寫可行動報告 | 報告樣板 | 最終報告 |
真實世界範例
跨供應商階層測試(2024)。 研究人員系統性測試 OpenAI、Anthropic、Google 的階層實作,發現對相同攻擊的敏感度有顯著差異,突顯供應商特定測試的必要。
進階主題
跨架構轉移
指令階層利用技術具部分可轉移性,但常需依目標供應商調整具體模式。在一家供應商的模型上有效的格式,可能於另一家被明確過濾。
新興攻擊向量
隨供應商實作更嚴格的階層訓練(OpenAI 2024 論文、Anthropic 的憲法式 AI 更新),攻擊者轉向利用訓練邊界以外的邊緣情境。
營運考量
案件範圍界定
範圍應明確辨識目標的底層模型供應商與版本,因為攻擊有效性顯著依版本而異。
文件化與報告
每項發現應記錄:確切模型版本、所用階層混淆模式、對抗方 vs. 符合規格行為的觀察。
參考文獻
- OpenAI (2024). "The Instruction Hierarchy: Training LLMs to Prioritize Privileged Instructions"
- Anthropic (2024). Claude 3.5 Sonnet 階層訓練文件
- MITRE ATLAS —— AI 系統的對抗威脅版圖
Knowledge Check
下列何者最能描述指令階層利用相關的主要風險?