讓模型讀到惡意文字卻不照做
Prompt injection 真正棘手的地方,不是模型看不懂惡意指令,而是它太擅長把所有文字都當成同一種可以遵循的指令。最近讀到 arXiv 預印本〈Heads of Security: Learned Attention Gates Improve Prompt Injection Robustness〉,它提出的 Heads of Security,簡稱 HoS,提供了一個值得注意的機制方向。先說結論:這不是把不可信內容全部遮掉,而是嘗試讓模型讀懂它,卻不要服從其中的指令。
其實這個原理是把 Transformer 的 attention head 當成可以被學習控制的通道。HoS 透過每個 head 的 learned attention gate,區分可信任的系統指令與不可信的輸入 token,讓部分注意力路徑降低對後者的指令跟隨傾向。這個設計很重要,因為實務上的 agent 仍然需要讀取網頁、郵件或文件中的內容。若防禦策略只是把外部文字整段刪掉,模型可能安全一點,卻也失去工具使用和資訊抽取能力。
論文在 Llama 3.3 70B Instruct 與 GPT OSS 20B 上比較 HoS、SecAlign++ 和 ASIDE。黑箱 RL Hammer 攻擊對 GPT OSS 20B 的成功率是 97%,對 SecAlign 是 85%,但在 HoS 上降到 10%。白箱 Claudini 攻擊則需要約三倍 FLOPs,才能達到與 HoS 相同的攻擊成功率。這些數字顯示,研究者不是只測一種固定 prompt,而是同時觀察黑箱攻擊、白箱攻擊,以及攻擊者計算成本。對防禦而言,讓攻擊變貴本身就是一種安全收益。
另一個我覺得更關鍵的結果是 utility。HoS 在標準 multiple choice 與 prompt 設定中大致保留 base model 的能力;相較之下,SecAlign 和 ASIDE 在 few shot 情境出現退化,ASIDE 的 tool use utility 更只有 10%。這提醒我們,安全 benchmark 上的低攻擊成功率不能單獨看。若防禦方法讓模型無法正常讀資料、選答案或呼叫工具,產品最後仍然不會採用。安全性與可用性必須一起量。
不過,嚴格來說,這仍是一篇 2026 年 10 月 27 日提交的預印本,不能直接視為已證實的通用解法。測試模型、資料配置、攻擊實作和 utility 定義都會影響結果,尤其 prompt injection 的攻擊者知道防禦細節後,是否能找到新的 head level 或跨層繞過方式,還需要獨立團隊複現。三倍 FLOPs 也不等於所有部署環境都同樣安全,只代表在該實驗設定下,攻擊成本提高。
我會把 HoS 看成一個很有研究價值的假說:防禦不必在理解外部內容與服從外部指令之間二選一,而可以在 attention routing 層級拆開這兩件事。接下來真正值得追的是跨模型泛化、長上下文中的多段注入、工具權限隔離,以及攻擊者可查詢模型時的適應性。對正在做 agent 的團隊來說,這也提供一個實作上的檢查表:不要只問模型有沒有看見惡意文字,更要測它把哪些文字送進了決策和行動路徑。
作者:陳思維