Prompt Injection as Role Confusion

Prompt Injection as Role Confusion

Prompt Injection 是角色感知失敗的表現

Prompt injection 之所以會發生,是因為大型語言模型(LLM)無法僅憑結構化標籤可靠地區分不同角色——例如使用者、系統,或模型自身的內部推理。相反,LLM 會以「寫作風格」作為角色辨識的代理。當攻擊者模仿具特權角色的風格時,模型會誤以為該文字擁有該角色的權限,從而執行隱藏在低特權資料中的惡意指令。

「Token Soup」:LLM 處理上下文的方式

對於 LLM 來說,一段對話不是結構化的對話,而是一個單一、連續的文字流——「token soup」。這條流包含了一切:系統提示、使用者訊息、工具輸出,以及模型自身先前的推理與回應。

為了在這條流上加以結構,提供者使用 role tags(例如 systemuserthinkassistanttool)。這些標籤旨在充當語言的型別系統,指示模型應如何處理隨後的文字:

  • User:視為人類的請求/指示。
  • Think:私有推理;信任其結論。
  • Tool:外部資料;不要接受其指令。

雖然這些標籤被設計為離散的架構邊界,但模型內部對這些角色的表徵卻遠比想像中流動。

角色探測:測量內部信念

研究人員開發了「角色探測器」來測量 LLM 內部認為某個 token 屬於哪個角色,無論其外層標籤為何。透過在不同標籤包裹的中性文字上訓練線性探測器,他們建立了諸如 CoTness(模型認為 token 位於 think 區塊的機率)與 Userness 等指標。

實驗揭示了一個關鍵缺陷:寫作風格會蓋過結構化標籤

  • 移除標籤:即使從對話中剝除角色標籤,模型仍會對聽起來像推理的 token(例如「The user wants...」)給予高 CoTness。
  • 標籤衝突:當推理風格的文字被包在 user 標籤中,模型仍持續將其視為內部推理。

這說明 LLM 透過不安全的特徵(風格)而非安全的特徵(標籤)來辨識角色。只要文字聽起來像某個角色,模型就會把它當作該角色,即使結構化標籤明確說明相反。

CoT 偽造:竊取模型的信任

因為 think 角色具高度特權——模型會隱性信任自己的推理結論——攻擊者可以利用 CoT Forgery 繞過安全防護。透過注入偽造的推理,模仿模型內部的寫作風格(簡潔語法、特定安全相關用語),攻擊者能讓模型相信它已經自行決定執行有害請求。

在前沿模型的測試中,CoT 偽造將攻擊成功率從接近零提升至約 60%。此攻擊特別穩健,因為它不依賴說服,而是利用模型相信自己先前結論的結構性漏洞。

將角色混淆泛化為一般注入

此原理同樣適用於標準的 prompt injection,當指令隱藏在工具輸出(例如網頁)中時。研究發現,僅在工具區塊內的指令前加上 "User: ",即可提升模型對這些 token 的內部 Userness 分數,使模型更可能執行該指令。模型越是將注入文字視為使用者角色,攻擊成功率就越高。

角色的理論目的

角色不只是格式化技巧;它們的設計目的是將相互競爭的目標隔離,以便能獨立優化:

  • Think vs. Assistant:將雜亂的探索(推理)與乾淨的溝通(最終答案)分離。
  • User vs. Assistant:將理解(把握請求)與生成(產出回應)分離。
  • User vs. Tool:將指令(要遵循的命令)與資料(要使用的資訊)分離。

角色混淆即是這種隔離失效,競爭目標相互滲透,使低特權資料被當作高特權指令處理。

未來研究與安全含意

潛意識導向

除了戲劇性的 jailbreak,角色混淆還能實現「潛意識導向」。若角色邊界較為柔軟,無害的文字(例如產品頁面的熱情語氣)可能滲入模型人格,微妙地改變其建議,而使用者卻不自知。這對處理電商或金融決策的 AI 代理構成重大風險。

新的角色抽象

為了解決目標衝突,可能需要引入新角色。例如,專門的 Planning Role 可將計畫視為承諾而非瞬時工具資料;或 Evaluation Role 可提供必要的距離,以實現誠實的自我校正,減少阿諛行為。

認知視窗

角色提供了獨特的可解釋性研究機會。因為僅輸入的角色(user、tool)在訓練時會被 loss‑masked,它們的激活可能成為「乾淨的視窗」,讓研究者觀察模型的理解,而不受輸出角色(assistant、think)產生的生成信號污染。

社群觀點

技術實踐者的討論突顯了幾個關鍵點,關於此理論的實務應用:

"LLMs 在目前的形態下根本不提供任何安全邊界或保證。若不明確說明這點,我們最終會得到真正不安全的架構..."

批評者認為將角色稱為「安全架構」是一種誤稱,因為 LLM 本質上是將字串映射到字串的函式。有些人建議唯一可行的防禦是徹底拋棄單一通道的輸入串流,或許改用針對不同角色的獨立嵌入,以產生無法被寫作風格偽造的不可冒充訊號。


摘要

研究顯示,prompt injection 能成功是因為 LLM 依賴寫作風格而非結構化的角色標籤來辨識指令,這使得攻擊者能偽裝成具特權的角色(如內部推理)。

標題

Prompt Injection as Role Confusion

Sources