AI Agent 越來越強,但你的 MCP 架構扛得住嗎?

AI Agent 越來越強,但你的 MCP 架構扛得住嗎?

最近看到 Google Cloud Tech 談 MCP(Model Context Protocol)安全的影片,裡面有一句話我很認同:當模型開始有「手腳」,你要治理的就不只是模型輸出,而是整個行動鏈。

https://www.youtube.com/watch?v=qGCdbAn0nk8

很多團隊把 MCP 當成「讓 LLM 連接外部工具的標準介面」。工程上它確實很漂亮:代理(Agent)負責決策,MCP Server 負責執行工具操作。但安全上,它等於把攻擊面從「文字」擴大成「能改你系統狀態的一連串動作」。

這篇我用實務角度整理 MCP 架構常見的四類風險,跟一套比較像工程的防線設計:縱深防禦(Defense in Depth)。


## MCP 的核心風險:不是連了多少工具,是把權限與行為串起來

在傳統系統裡,工具與權限往往分散在不同服務;在 Agentic AI 架構裡,你開始把「理解指令」與「執行動作」放在同一條工作流。

這會讓資安風險長得更像供應鏈事故:不一定有人正面突破你,而是你自己把一條捷徑鋪好。


## 四大風險(工程版翻譯)

### 1)權限過大(Overprivileged Agents)

最常見也最致命。為了方便,你把 Agent 的權限開到足以讀寫整個資料庫、拿到所有文件、甚至能操作關鍵系統。

一旦 Agent 被誤導,或它的決策被污染,後果會是越權存取與資料外洩。

### 2)Prompt Injection(輸入污染導致行為偏轉)

這是 Agent 系統獨有的麻煩:惡意指令不一定會以「指令」樣子出現,它可能藏在網站內容、文件、工單、Slack 訊息裡。

Agent 讀到之後,把它當成高優先級指令,接著去觸發工具:抓資料、寄出、修改設定。

### 3)憑證遭竊(Credential Theft)

Agent 要做事,通常需要 OAuth token、API key、service account。憑證一旦暴露,你不只失去一個 agent,你是失去一整串系統入口。

這也是為什麼很多事故的本質是「secret management」做得不夠像工程。

### 4)Command Injection / RCE(執行層被打穿)

MCP Server 端如果把工具呼叫做得太直接(例如把字串拼成命令、或對輸入沒有嚴格驗證),就可能被誘導執行任意命令。

這會把風險從「模型做錯事」升級成「伺服器被接管」。


## 防線怎麼設計:縱深防禦,不靠單點神技

我很喜歡「Defense in Depth」這個詞,因為它提醒一件事:你要假設任何單一層都會失守。

### 1)建立唯一的 Agent Identity(可追溯的數位身分)

不要讓所有代理共用同一個帳號。

讓每個 agent 有獨立身分、獨立權限與獨立 audit log,才有辦法做:

  • 精準授權
  • 事後追查
  • 分級風險

### 2)最小權限(Least Privilege)

權限不只是「能不能做」,還包含「做得到多深」。

把權限拆成讀、寫、刪、外寄、執行,並把高風險動作加上人類確認閘門,會讓整個系統可控很多。

### 3)憑證隔離儲存(Secret Manager)

不要把 key 寫死在程式碼或 prompt。

更重要的是:模型本身不應該直接碰到 secrets。它只能透過受控的執行層去完成授權過的動作。

### 4)運行時沙箱化(Sandboxing)

讓 agent 跑在受限環境(容器/Cloud Run/GKE 的受控 namespace)。

目標不是防止它出錯,而是讓它出錯時的爆炸半徑夠小。

### 5)輸入與輸出雙向防護(例如 Model Armor 類思路)

把「進入 agent 的內容」當成不可信輸入,做過濾與分級。

同時把「agent 對外發出的動作」做政策檢查與稽核。真正有效的防護不是只擋 prompt,而是把行為也納入治理。


## 結尾:Agentic AI 的安全,本質是治理能力

MCP 讓 Agent 系統變得更可組裝、更標準化,但安全問題不會因此自動消失。

你能安心用 Agent 的前提,是你能回答這些問題:

  • 誰在做事?(身分)
  • 被允許做什麼?(權限)
  • 內容從哪來?(輸入治理)
  • 出事怎麼止損?(隔離與回滾)
  • 做過什麼可不可以追?(audit)

當你把這些做成工程,MCP 才會是加速器,而不是引爆點。


#AI #MCP #AgenticAI #資安 #DevSecOps #GoogleCloud