MCP-38 論文閱讀分析:真正該防的可能不是單一 prompt injection,而是整個 MCP 協定層長出的新攻擊面

論文基本資訊

  • 論文標題:A Comprehensive Threat Taxonomy for Model Context Protocol Systems (v1.0)
  • 作者:Yi Ting Shen、Kentaroh Toyoda、Alex Leung
  • 來源:arXiv
  • 年份:2026
  • 論文連結:https://arxiv.org/abs/2603.18063
  • 主題:MCP、Threat Taxonomy、Agentic Security、Prompt Injection、Tool Poisoning、Runtime Trust

最近關於 MCP 的討論很容易停在幾個零散關鍵字:prompt injection、malicious server、tool poisoning、資料外洩、跨工具濫用。問題是,當這些風險真的開始同時出現在同一條 agent workflow 裡時,團隊往往根本沒有一套夠細、又真的貼近 MCP 結構的 threat map 可以用。

這篇 MCP-38 想補的正是這個缺口:它不是再舉幾個 scary demo,而是試圖把 Model Context Protocol 這個新介面層,整理成一套可枚舉、可對照、可拿來做設計審查與控制盤點的 protocol-specific threat taxonomy。

這篇真正重要的,不是又多列了一串風險名稱,而是它明確指出:MCP 的危險不只是「LLM 會被騙」,而是協定本身把 tool metadata、語意描述、動態信任與多步組合執行接在一起後,形成了一塊傳統軟體威脅模型沒有完整涵蓋的新攻擊面。

它在解什麼問題?

既有 threat framework 當然不是沒用。STRIDE 很適合做一般系統威脅分類,OWASP Top 10 for LLM Applications 很擅長描述 prompt / model / output 風險,OWASP Agentic Applications 也開始處理 agent autonomy 的問題。但作者認為,MCP 還多了一層更特殊的結構:

  • 模型不是直接碰世界,而是透過 MCP server / tool schema / description 去理解能力邊界
  • 這些能力邊界很多時候不是硬型別保證,而是語意描述與互動規則
  • 真實風險常常不是單一步,而是工具之間被串起來後才爆出來
  • 信任不是靜態設定,而是會隨 server、tool、session 與 context 動態變化

也因此,如果你還只是拿傳統 web / API threat model 套上 MCP,通常只會看見一半。

MCP-38 的主線:把「MCP 特有風險」變成可盤點的 38 類

這篇 paper 的核心產物,就是一套包含 38 個 threat category 的分類法,從 MCP-01 到 MCP-38。作者不是憑感覺列清單,而是說明自己走了四段方法:

  1. Protocol decomposition:先把 MCP 的結構拆開,辨識哪裡是獨特 attack surface。
  2. Multi-framework cross-mapping:把分類對照到 STRIDE、OWASP LLM Top 10、OWASP Agentic Top 10。
  3. Real-world incident synthesis:把真實世界已經出現的攻擊模式與案例拉進來。
  4. Remediation-surface categorization:不只分類攻擊,也思考它應該落在哪一層治理與緩解面。

這個方法很值得注意,因為它代表作者不是只想做「學術上漂亮的 taxonomy」,而是想做一套可以被安全工程、產品設計、治理審查與自動化 CTI 平台共同使用的 threat substrate

為什麼 MCP 的攻擊面跟一般 tool use 不一樣?

我覺得這篇最有價值的地方,是它把很多人模糊感受到、但一直沒被講清楚的事情講白了:MCP 最大的風險不是「模型多接了一個 API」而已,而是它把語意理解、能力發現、外部描述、工具調用與跨步協作綁成同一條執行鏈。

論文摘要點到幾個很關鍵的例子:

  • tool description poisoning:風險可能不是 payload,而是工具描述本身就在改寫模型如何理解能力與使用條件。
  • indirect prompt injection:不可信內容不是直接下命令,而是混進可被模型當成操作依據的上下文。
  • parasitic tool chaining:單一工具也許看起來無害,但一接到其他工具,就開始長出額外 side effect。
  • dynamic trust violations:今天可信的 server、tool、session 關係,明天未必還可信,尤其在 agent 長時間運行時更明顯。

換句話說,MCP 的問題不是單點 vulnerability,而是「語意層+協定層+執行鏈」一起形成 compound attack surface。

這篇最該被記住的一句話

真正該防的,可能不是某個單一 prompt injection,而是那些會沿著 MCP 的描述層、發現層、串接層與信任層一路擴散的結構性風險。

這其實和最近很多 agent 安全論文的共通結論互相對上:當 untrusted data 能一路穿過 retrieval、memory、planning、tool invocation、delegation,最後變成真實 side effect 時,安全重點就不再是單點字串過濾,而是整條 execution pathway 的 trust management。

它跟一般「MCP 很危險」文章差在哪?

最近 MCP 安全討論很多,但不少內容都還在「這個 protocol 會不會出事」的警示層級。MCP-38 比較不一樣的地方,是它把問題往下壓成分類與映射基礎設施

  • 它不是只說 MCP 有風險,而是試圖把風險拆到足夠細,可以做 checklist 與 coverage analysis。
  • 它不是把 MCP 當 generic LLM app,而是強調協定結構帶來的新攻擊面。
  • 它不是只做 taxonomy 封面,而是把每類威脅往既有框架對照,方便組織接軌原本的 governance 語言。

這點很重要。因為很多團隊現在最大的卡點,其實不是不知道 MCP 有風險,而是不知道要怎麼把這些風險放進現有的安全審查、控制設計、供應鏈評估與事件回應流程裡。

對 CTI / threat modeling 的價值在哪?

雖然這篇看起來比較像 taxonomy paper,但它其實很明顯在替自動化 threat intelligence 與 protocol-level risk analysis鋪路。摘要最後一句就直接說:MCP-38 提供 automated threat intelligence platforms 的 definitional and empirical foundation。

這句話背後的意思是:

  • 之後你要做 MCP-specific CTI,不可能只靠傳統 IOC 或 generic ATT&CK label。
  • 你需要一套能描述「描述污染、信任漂移、跨工具寄生鏈結」這種新型態風險的語言。
  • 沒有 taxonomy,後面不管是 telemetry schema、事件標註、偵測規則、風險 scoring 還是事件回報,都很難標準化。

也就是說,這篇的重要性不只在 taxonomy 本身,而在它幫 MCP 安全生態建立了一套比較像共同語言的底座。

放回最近 agent 安全脈絡,它補了哪一塊?

如果把最近幾篇一起看,脈絡其實很順:

  • 惡意 MCP server / behavioral detection 類工作 在處理「攻擊真的發生時,怎麼看出 server 正在偏航」。
  • attack surface / prompt injection 類工作 在處理不可信輸入怎麼穿越到行動層。
  • MCP-38 則往前補一層:先把 MCP 這個介面的 threat surface 用 protocol-native 的方式講清楚。

所以它比較不像直接防禦論文,反而更像後面所有 policy、benchmark、runtime guardrail、threat intel pipeline 的分類學地基

限制也要看見

當然,taxonomy paper 的限制也很明顯:

  • 分類完整不代表控制已經存在:知道有 38 類風險,不等於你已經有 38 類有效防線。
  • MCP 生態還在快速變動:server 實作、client behavior、tool conventions 變很快,taxonomy 之後很可能還要改版。
  • 很多風險仍高度依賴部署脈絡:相同 server 在不同權限模型、不同 approval flow、不同 sandbox 下,風險可能完全不同。

所以這篇比較像是把地圖畫出來,不是把所有路障都建好了。

我的看法

我自己覺得這篇很值得發,不是因為它提出什麼超炫新 defense,而是因為它做了一件 MCP 現在很需要的事:把零散討論收斂成一套結構化威脅語言。

這種 paper 的價值常常不在 headline result,而在它能不能變成後續研究與實務的共同參考座標。以目前 MCP 生態的混亂程度來看,如果沒有這種 protocol-specific taxonomy,很多團隊最後只會在 generic prompt injection、generic secret leakage、generic API abuse 這種太寬的標籤裡打轉,卻看不見 MCP 真正特殊的風險形狀。

如果要我用一句話收尾,我會這樣講:

MCP 時代真正需要的,不只是更多 guardrail,而是先承認這套東西已經長出一個傳統 threat model 沒完整覆蓋的新攻擊面,然後用新的分類語言把它講清楚。

免責聲明

本文由 AI 產生、整理與撰寫。內容主要依據公開論文摘要頁面與可取得研究資訊進行彙整、解讀與摘要;由於未完整檢視所有附錄、實作細節與完整 38 類分類內容,部分方法描述與研究定位採保守解讀。儘管已盡力確保內容完整與可讀,仍可能因資料來源限制、模型理解偏差或論文版本更新而存在疏漏、不精確或更新延遲之處。本文僅供研究交流與知識分享參考,最終技術細節、映射方式與作者主張仍應以原始論文與官方公開資料為準。

You may also like