一萬筆紀錄,可能只是十五種刺激
來源事實:這篇 2026 年 8 月 13 日提交、尚未同儕審查的預印本,稽核作者團隊先前保存的一次 MCP 工具型代理安全評測。原始資料看似有 10,200 筆執行紀錄,但追溯實際送進模型的內容後,只剩 180 個模型綁定請求、45 個語意請求,以及 15 種可觀測刺激。每組完全相同的輸入被重跑 11 至 162 次;序列化訊息、模型輸出、解析結果、既有標籤與行為軌跡皆一致,因此這些重複執行只能證明確定性,不能擴大實驗涵蓋的情境。論文全文與限制見 https://arxiv.org/abs/2608.12880。
研究真正揭露的問題不是「MCP 攻擊很多」或「模型其實很安全」,而是安全評測可能把資料表裡的標籤誤當成行為真相。當執行次數、測試案例與獨立刺激沒有分開,五位數的資料量很容易製造統計規模感,卻沒有增加對新攻擊、不同工具組合或不同使用環境的認識。
答案如何洩漏進評分器
來源事實:該活動實際送出了兩種 schema 層級的處置:一種把轉送指令放進工具描述,另一種放進能力廣告;原先規畫的外部攻擊 payload 家族語料並未真正送入模型,部分「攻擊家族」與「防禦條件」只留在行政欄位。換言之,研究能檢驗的是兩種固定 schema 變化,不能據此比較不同提示注入家族或防禦效果。
致命缺陷出在歷史評分器。系統先依「是否為乾淨表面」建立一個代表存在敵意 payload 的旗標,再把它作為 ATTACK_SUCCESS 類別的門檻之一。只要固定代理的實際工具呼叫、參數、目的地與任務結果,單獨把處置欄位從乾淨改成污染,原本的正常完成就可能翻成攻擊成功。這就是 treatment leakage:實驗分組資訊進入了結果定義,評分器等於先讀到部分答案。
作者提出的直觀檢查稱為「處置不變性測試」:鎖住所有已執行的行為證據,只替換處置標記;若類別跟著改變,就不能把該標籤當成行為端點。修正版評分只讀取事前授權計畫、實際執行的工具與參數、任務完成狀態,以及受保護資料從來源流向目的地的證據,不再讀取模型、污染表面、攻擊家族或歷史標籤。
修正後不是「零風險」
來源事實:在 70 筆歷史上被標為 ATTACK_SUCCESS 或 HIJACK_ATTEMPT 的請求中,58 筆被重建為已授權的正常完成。修正後的 180 筆有限普查包含 89 筆正常完成、3 筆正常任務失敗、1 筆劫持嘗試、3 筆經驗證的受保護資料外傳,以及 84 筆結構無效;ATTACK_SUCCESS 類別為零。
「零 ATTACK_SUCCESS」不能解讀成系統安全。三筆資料外傳具有可稽核的來源、未授權目的地與內容雜湊對應,是真實的嚴重案例;另一筆確實送往未授權目的地,但沒有證明受保護內容完成轉移,因此保留為劫持嘗試。更重要的是,只有 96 筆被修正版視為結構可解讀,84 筆無法判讀。無法判讀既不是抵抗攻擊,也不是模型無能,而可能來自模型、tokenizer、包裝層與 parser 的整合不相容。
這項風險也符合 MCP 官方規格所描述的信任邊界:工具可形成任意資料存取與程式執行路徑,工具註記若非來自可信伺服器,必須視為不可信,而且呼叫工具前應取得使用者明確同意,見 https://modelcontextprotocol.io/specification/2025-11-25/schema。官方安全指引也要求限制本機 MCP 伺服器權限、使用沙箱並防範資料外洩,見 https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/security_best_practices。這些文件交叉支持「工具 metadata 與執行權限本身就是安全邊界」,但並未替論文的特定數字提供外部複驗。
為何現在值得企業注意
合理推論:當企業以單一「攻擊成功率」採購代理平台、比較模型或驗收防禦模組時,端點定義會直接轉化為商業判斷。若測試分組進入評分邏輯、重跑次數被當成案例廣度,或解析失敗從分母消失,漂亮的安全分數可能反映資料管線設計,而非代理是否越權。
作者觀點:台灣的金融、製造、醫療與政府場域若把代理接上郵件、文件庫、內部 API 或設備操作,採購要求不應停在「通過某基準」。更實用的驗收方式,是要求供應商交付處置內容、完整模型輸入、工具呼叫、授權物件、dispatcher 紀錄、資料來源與目的地,以及評分程式版本;並能示範在行為不變時,替換測試標籤不會改變結果。
容易忽略的研究限制
- 修正版是事後重建,不是預先註冊的評測規則;處置盲化只能排除一種缺陷,不能自動證明完整構念效度。
- 兩名盲審者對 96 筆可解讀紀錄彼此完全一致,卻仍有四筆與修正版規則不同,顯示「是否完成未授權目標」等語意邊界仍可爭議;審查者身分與獨立性也僅由作者保存的私人紀錄證明。
- 三筆資料外傳集中在兩個情境區塊及同一模型整合,不能外推為整體 MCP 攻擊率,也不能拿來做模型排名。
- 研究沒有實際送出原訂的 AgentDojo、InjecAgent 等 payload,也未測試動態更新、多伺服器或環境型攻擊。
接下來應看什麼
後續最值得追蹤的指標,不是更多執行列,而是獨立刺激與語意情境數、結構無效率、未授權工具或目的地比例、可驗證的受保護資料流,以及處置不變性測試是否納入持續整合。還應觀察其他團隊能否獨立重建分類規則、複驗那四個語意邊界,並在更多模型、parser、真實 payload 與多伺服器環境重現結果。
這篇研究最有價值的提醒,是可重現不等於量測正確:凍結程式碼與雜湊能忠實保存錯誤,卻不會替錯誤賦予科學效度。對代理安全而言,標籤只是分析起點;只有能一路追到授權、實際行為與資料流向的證據,才接近可以信任的結論。