問題#
agent-security 中剩下的兩個 #oq/now 項目,最後發現它們有著相同的脈絡:
- Task-Specification Effects in Prompt Injection (AutoDojo) — 如果開放行動任務容易遭注入,而且也是非專家使用者日常採用的預設方式,那麼實際上是否應禁止開放行動委派(強迫使用者指定行動),把安全負擔推回任務規格?
- Memory and Context Poisoning — 完整性雜湊能偵測修改,卻無法偵測透過合法(遭注入的)互動寫入的惡意但有效記憶。什麼機制能抓出語意遭污染、但密碼學完整的記憶?
答案一:不;預設綁定,若因此受阻再引導補足,剩餘部分則要求授權#
**以語料提出的兩個判準來看,禁止都是錯誤的控制類別。**第一,這是對最無力遵守的一方提出的紀律要求:開放行動式措辭之所以是日常預設,正是因為「多數使用者不是安全專家」(Task-Specification Effects in Prompt Injection (AutoDojo))——要求他們像安全專家那樣具體說明,是施加在使用者一端的摩擦,這類做法在壓力下會失效,也會像 ADI 確認對話框那樣錯置責任 (Does 'Impossible, Not Tedious' Kill Defense-in-Depth? Layered Friction, Agent-Relativity, and the Frequency Paradox)。第二,這會犧牲產品價值:開放式委派就是代理程式的價值所在;「處理我 TODO 清單上的任務」是日常委派使用的典型情境,不是該禁止的邊緣案例。
而且,禁止並無必要,因為揭露開放行動漏洞的同一項測量也顯示,採用適當防禦後,結果會反轉。開放行動任務只有在依賴提示與篩選器的防禦下才是最糟情況(自適應 ASR 最高達 64%);限制行動的系統層級防禦在這種情況反而更強:規格不足的請求會推導出保守的執行軌跡,其中不包含寫入行動,因此無論注入內容如何措辭,任何注入的寫入都會遭阻擋 (Task-Specification Effects in Prompt Injection (AutoDojo):「真正的穩健性來自將代理程式的行動綁定到使用者請求,而非篩選輸入」)。因此危險組合不是開放行動加使用者,而是開放行動加上只有篩選器。有了綁定層,使用者規格不足反而成為防禦優勢。
真正需要面對的剩餘問題是效用,它也決定了處方的其他部分。綁定會降低任務完成度(DRIFT 捨棄 18–30 個效用點,Progent 最高捨棄 11 個——Task-Specification Effects in Prompt Injection (AutoDojo)),而真正開放的任務——其目的要求根據攻擊者可觸及的內容採取具後果的行動(「支付這個檔案裡的帳單」)——會因保守的執行軌跡而受阻。由此得出的設計順序如下:
- **預設綁定。**系統推導出請求所支持的最窄執行軌跡;規格不足時,預設採取近似唯讀的保守策略。
- 若綁定使任務受阻,就由系統引導補足規格——在模糊情境中,這是 HAS-Bench 測得效果最佳的管道:提交前先釐清 (Configurable Human Participation)。這是對問題原本框架的關鍵反轉:不把規格當成使用者必須先滿足的條件,而是在執行軌跡過於受限時,由代理程式引導使用者補充。這也正是 unknown-elicitation 基於品質考量所提出的做法——問題本身已注意到兩者趨同,如今以一套同時由兩方受益的紀律來解決:引導使用者說出真正的需求,既能封閉注入面,也能找出原本就會降低產出的未知事項。
- **將安全關鍵的剩餘部分交由逐項行動授權處理。**對於任何推導出的執行軌跡都不應自動允許的行動,僅控制通道是唯一在受保護行動上測得 100% 的管道 (Configurable Human Participation);若核准者必須以密碼學方式證明就是資產擁有者,則採用綁定身分的變體 (Off-Host, Identity-Bound Authorization),並以 in-the-loop literature 提醒的核准疲勞上限作為資源預算。
所以:**整個控制堆疊中都不該有禁止。**責任應落在系統身上(綁定、引導補足、設置關卡),而非要求使用者嚴守措辭規範——「不可能,而非繁瑣」測試指出,持久有效的控制必須安置在此處。
答案二:沒有任何機制能抓出它——這已有證明——因此問題的前提應該退場#
問題問的是什麼機制能抓出惡意但有效的記憶,而現有最有力的答案是:前提本身不成立,**根據定理,任何偵測器都辦不到。**惡意但有效的類型,正是一種洗白攻擊:不受信任的內容經代理程式自行摘要改寫、由受信任工具重述,或透過虛構來源相互佐證,直到它讀起來無害、雜湊也驗證無誤;TMA-NM 的機器驗證分離定理 (T1) 證明,任何基於內容或溯源的偵測器都無法可靠地防範此類攻擊;附帶的內容判斷器測試也確認,沒有任何閾值能在效用完整的情況下,將 ASR 降至 0% (Memory and Context Poisoning)。
取而代之的是從建構上預防:在寫入時,將每個記憶項目的行動權限綁定到其真實來源,以不可竄改的方式傳遞該綁定,並且只有在真正獨立、可信的佐證成立時才允許提升權限——這樣洗白後的項目無論讀起來多麼無害,都會帶有 act = none,因此根本無法授權具後果的行動。測量結果:在 8 個前沿模型上,直接攻擊及全部三種洗白管道的攻擊成功率皆為 0%,合法效用則維持 100%;相較之下,以內容或溯源為基礎的基準方法,失敗率最高達 68% (Non-Malleable Memory Authority (TMA-NM))。完整性雜湊仍執行其本職工作——偵測竄改並支援鑑識與回復 (Memory and Context Poisoning 的 Phase-7 控制措施)——但語意污染的防禦靠的是權限架構,而非檢查。
剩餘風險確實存在,而且已列在它們該在的位置(TMA-NM 頁面本身的待解問題):從檢索到文字的路徑(附帶來源資訊呈現的答案偏誤不在範圍內)、現實環境中的佐證者可用性,以及巢狀負載中的值層級汙染。這些都不會讓本頁提出的問題死灰復燃;它們界定的是回答該問題所採用建構的適用範圍。
補記(2026-09-02):第一項剩餘風險如今有了代價,而且嚴重到足以改變解讀答案的方式。Karunanidhi(arXiv 2608.21230,empirical,標記為 vendor-COI——作者的公司正開發受測的記憶層)只測量從檢索到文字的路徑,別無其他:攻擊者明確宣稱其目標是*「不是權限提升,也不是資料外洩,而是破壞代理程式的信念」;整個過程從未採取任何具後果的行動;而在不含負載的錯誤陳述下,僅污染 LongMemEval 語料的 1.2%,準確率就會從 0.850 降至 0.300——最弱一級的攻擊,就奪走記憶價值的 65%,而且遭污染的記憶在每個問題上都排名第一。本文以上內容並未推翻先前的答案:洗白結果仍成立,act=none 仍是正確的綁定方式,而預防建構仍是取代偵測的方法。改變的是**「爆炸半徑為零」的適用範圍**。這句話對從檢索到行動的路徑完全準確,套用到整個系統則不正確——綁定為 act=none 的項目無法授權任何行動,卻仍會在讀取者的上下文中宣稱錯誤事實;如今語料已有數據說明其代價。由此得出兩項修正。第一,整合後的結論需要再加一個子句:改變產物可被允許執行的動作,並另外決定它可在檢索上下文中佔據*多少空間——這是兩種不同的控制,而來源綁定只提供前一種。第二,第二種控制顯而易見的候選方案已經過測試,而且失敗:排序函式中加成式的來源資訊項,在權重小到足以安全時不起作用(相對於無防禦,p=0.80);權重大到足以生效時,則會成為阻斷服務原語(120 個問題的證據召回率降至精確的 0.00%,準確率為 0.0417)。Karunanidhi 提出的替代方案——將來源資訊設為有界佔用限制,也就是保留空間而非扣減分數——尚未實作,也尚未評估,作者也明確如此說明;目前已列為 Non-Malleable Memory Authority (TMA-NM) 的待解問題。因此,本頁答案二的實際狀態是:以建構預防權限問題已有定論,佔用問題仍未解決;目前唯一測量過的方案已知無效,所提方案則尚未建置。
第二則補記(2026-09-02):佔用控制的另一半如今有了攻擊端的數據,也為尚未建置的配額設下必須超越的下限。PipePoison(Zang 等人,山東大學,arXiv 2609.00523,empirical)是語料中最強的間接記憶污染攻擊;它測試三個不同的旋鈕,而三者都以不同方式調節佔用。把檢索預算縮至 K = 1——比任何保留比例配額能為不受信任內容留下的空間都更小——端到端攻擊利用率仍有 34-39%(K = 5 時則為 67-73%),因為污染內容搶下了第一名;配額能限制不受信任內容取得多少位置,卻不能決定它取得哪個位置。將寫入管道從一個工具回傳項目稀釋為十個,利用率為 47-52%;把受害者的無害資料庫擴大 30 倍至 3,000 個項目,則為 59-69%。三種獨立壓縮污染內容所占比例的方式,最終都落在未防禦攻擊率的三分之一到一半之間。
對答案二有兩項方向相反的修正。悲觀的修正是:「佔用問題尚未解決」說得太客氣——如今佔用已被測為一種效力有限的控制桿,因此有界配額的上限大概無法達到零;本頁應停止把它當成加成式項目的顯而易見替代方案。令人鼓舞的修正更有意思:PipePoison 面對的八種防禦中,最強的既非權限綁定,也非佔用配額,而是衝突解決——偵測並整合彼此矛盾的記憶——它將攻擊利用率降至 41-48%,也是唯一會讓檢索行為有所變動的階段。這是本頁二分法沒有位置容納的第三種控制類別:不是管產物可以做什麼,也不是管它能佔多少空間,而是管它是否與資料庫其餘內容一致。這也是唯一有望處理錯誤事實情況的階段,因為錯誤陳述恰好就是會與真實陳述矛盾的內容。八種防禦都沒有測量效用的一組,因此每一種的(安全性、效用)前緣都仍未測量——包含成效最佳的那一種;而這條前緣正是讓加成式來源資訊項遭否決的依據。
統整結論#
兩個答案都是注入防禦語料反覆傳達的同一個教訓:**當有一類威脅已被證明能擊敗檢查,就別再檢查,改變產物獲准執行的動作。**開放行動文字無法可靠地透過篩選——因此將行動空間綁定到請求,並由系統引導補足缺漏。遭洗白的記憶無法可靠辨識——因此將權限綁定到來源,讓看似可信的項目無力授權。在這兩種情況下,使用者都能保有自然的行為(模糊請求、累積記憶),攻擊者仍保有存取權,而結構讓爆炸半徑維持為零——偵測退居鑑識用途;即使輸掉搶先競速,也不代表輸掉整場攻防。
Cited by 5
- Memory and Context Poisoning×2
Bind Dont Forbid And Prevent Dont Detect — formalizes the retirement of this page's detection…
- Task-Specification Effects in Prompt Injection (AutoDojo)×2
If action-open tasks are the injectable ones and also the everyday default for non-expert users, is…
- Memory-Poisoning Numbers, Conditioned on the Write
An adaptive attacker against any of it. All the conditionals above would move, and the ones…
- Agent Security
Bind Dont Forbid And Prevent Dont Detect — Two-question synthesis closing the remaining…
- Risk-Tiered Auto-Approval
The ordering is the design. Three of the four gates are deterministic properties of the diff and…
Related articles
- Agentic Prompt Injection
Direct and indirect injection of malicious instructions into an agent; LLMs cannot reliably distinguish information fro…
- Capability Gating Is Not Authorization
Agent frameworks ship capability gating (which tools are exposed, schema validity) but no fail-closed per-call authoriz…
- Open Questions Backlog
Generated by `_system/lint.py --write-backlog`. Do not hand-edit. Domain and Watching sections carry one row per page —…
- Out-of-Band Prompt-Injection Defense
Second-generation prompt-injection defense enforced outside the model: a deterministic reference monitor mediates tool…
- Zero Trust for AI Agents
Anthropic's security framework for deploying autonomous agents: trust nothing / verify everything / assume breach, appl…
