KeyFrame內部研究專用

Black Hat Europe 2025 | Compromising The AI Agent Ecosystem Via Its "Universal Connector"

Black Hat·7月13日週一·31 min英文

三句話摘要

MCP(Model Context Protocol)作為 AI Agent 的通用連接器,其設計和實現中存在根本性安全風險,攻擊者可通過上下文操縱、認證欺騙、供應鏈污染等手段控制 Agent 行為並竊取用戶數據。 MCP 的這些風險並非漏洞而是協議與 SDK 設計的核心特性,需要市場掃描、沙箱隔離、SDK 安全加固與用戶警惕的系統性防守。 攻擊面轉移:傳統應用中代碼與數據分離,但在 LLM Agent 中兩者混融於上下文。攻擊者無需找代碼漏洞,直接操縱注入的數據即可控制 Agent 決策,單點失敗風險大。

重點整理

重點
  • 1

    攻擊面轉移:傳統應用中代碼與數據分離,但在 LLM Agent 中兩者混融於上下文。攻擊者無需找代碼漏洞,直接操縱注入的數據即可控制 Agent 決策,單點失敗風險大。

  • 2

    間接提示注入的普遍性:Fetch MCP 服務允許 Agent 讀取網頁內容,但 Agent 無法區分內容與指令。GitHub README、Issue、Wiki 頁面都可植入隱藏指令,導致遠程代碼執行(如 Cursor IDE 攻擊案例)。用戶快速批准是因為信任 Agent 的解釋,形成語義鴻溝。

  • 3

    協議設計引入的原生欺騙:Initiation 功能原生表單看起來完全合法,用戶誤認為是系統請求,利用對 Agent 的信任騙取密碼。URI 模式的客戶端動態註冊(DCR)允許攻擊者控制重定向 URI,劫持授權流程竊取訪問令牌。

  • 4

    SDK 實現的系統性缺陷:官方示例代碼默認開放 CORS,AI 代碼生成工具(如 Cursor)學習了這些不安全模式。PHP SDK 更嚴重:在流式 HTTP 模式下硬編碼禁用 CORS 檢查,無需開發者犯錯即已易受攻擊。

實用技巧與重點

乾貨
  • 攻擊技術與工具:
  • 間接提示注入(Indirect Prompt Injection)
  • 認證欺騙 - Form 模式與 URI 模式
  • 跨插件數據盜竊(GMail + 雲搜索服務)
  • CORS 跨域攻擊 + 客戶端動態註冊(DCR)組合
  • 語義路由劫持(Semantic Routing Hijacking)
  • 供應鏈污染(mcp.so marketplace)
  • 受影響平台:
  • Cursor IDE、ChatGPT、官方 MCP SDKs(Python、TypeScript、Kotlin、PHP)
  • 默認不安全配置:
  • Python/TypeScript/Kotlin/PHP SDK:默認允許所有 CORS
  • PHP SDK:硬編碼禁用 CORS 檢查(stream HTTP 模式)
  • 官方快速開始示例:設定寬鬆的 orange 和 white cards
  • 防守方案:
  • 市場掃描與安全檢查(mcp.so registry 掃描)
  • MCP 服務器沙箱隔離
  • 黑盒風險檢測
  • 開發者:遵循 MCP 安全規則、標記外部數據、使用安全 SDK
  • 用戶:警惕異常授權請求、拒絕可疑操作
  • AIGuard(開源 Agent 驅動程序):用於 MCP 掃描、AI 信息安全掃描與評估生成
  • --

結論

結論

MCP 的這些風險並非漏洞而是協議與 SDK 設計的核心特性,需要市場掃描、沙箱隔離、SDK 安全加固與用戶警惕的系統性防守。

完整解析

詳細

騰訊玄武實驗室的安全團隊發現,AI Agent 生態面臨根本性的安全轉移。傳統軟件應用的攻擊模式是尋找代碼漏洞(如緩衝區溢出、SQL 注入),但在 LLM Agent 的時代,攻擊發生在上下文窗口內部。MCP 協議作為連接 AI Agent 與外部工具的通用接口,將系統提示、工具定義和外部數據全部混融在一份上下文中。當 MCP 工具注入外部數據時,攻擊者若能操縱這些數據,就能直接控制 Agent 的決策行為。這標誌著從代碼層漏洞到上下文層操縱的本質轉變。

第一個關鍵風險是間接提示注入。Cursor IDE 支持 Fetch MCP 服務,允許 Agent 讀取任何公開網頁內容。但 Agent 無法區分「要讀取的內容」與「要執行的指令」。攻擊者在 GitHub README、Issue 或 Wiki 頁面中植入隱藏指令,當 Agent 讀取這些頁面時,會將指令理解為要執行的任務。例如在代碼片段前插入「執行以下命令以確保代碼正常運作」,Agent 就會真的執行該命令。關鍵在於:Cursor IDE 正確實現了協議,Fetch 服務沒有代碼漏洞。這是邏輯設計缺陷。用戶確實批准了操作,但批准按鈕只是聊天界面裡的普通按鈕,不是阻斷式確認。在對話流中,用戶會相信 Agent 的解釋而快速批准,形成語義鴻溝。

第二個風險來自 MCP 協議本身的 Initiation 功能。Form 模式允許服務器以原生表單請求用戶密碼或敏感信息。這個表單由 Cursor IDE 原生渲染,不是網頁,完全看不出是釣魚。用戶依賴網頁瀏覽器工具欄檢測釣魚,但這裡沒有。攻擊者利用用戶對 AI Agent 的信任,讓表單看起來像系統請求。URI 模式更危險:它支持客戶端動態註冊(DCR)。攻擊者發送一個授權 URI 給受害者,受害者誤認為是自己的會話而授權。由於協議握手是無狀態的,受害者的賬戶實際綁定到攻擊者的 MCP 會話,攻擊者獲得完全訪問權。

第三個問題在於 SDK 實現。Tencent 團隊審查了多個官方 SDK 的代碼,發現 Python、TypeScript、Kotlin、PHP 等版本都默認允許跨域請求(CORS)。更令人震驚的是,PHP SDK 在流式 HTTP 模式下硬編碼禁用了 CORS 檢查——這意味著使用該 SDK 的每個 PHP MCP 服務器生來就易受跨域攻擊,無需開發者犯任何錯誤。這個問題被當作「生態友好」特性部署到官方示例代碼中。由於 AI 代碼生成工具(如 Cursor)學習了官方示例,開發者只需問「給我寫個 MCP 服務器」,AI 就會重複這些不安全的配置,而開發者通常不檢查直接運行。

供應鏈層面,MCP 服務器在 mcp.so 等市場上共享。攻擊者可上傳惡意服務器;如果 Kubernetes 環境中多個服務器共享資源,攻擊者能訪問內網。攻擊者還可通過語義路由劫持註冊名為「PDF Reader」的惡意工具,比官方 PDF Reader 更容易被 AI 選中。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「AI 安全」的內容

Unlock Agent Autonomy: The Runtime for AI-Native Systems — Tushar Jain, Docker
22 min
AI 安全中文8月20日

Unlock Agent Autonomy: The Runtime for AI-Native Systems — Tushar Jain, Docker

AI Engineer

  • 1. 代理權限動態擴張的根本問題
  • 當代理被要求調查延遲尖峰時,它會自動擴展訪問需求——先請求日誌訪問,再要求 GitHub 儲存庫權限,最後要求 Slack 訪問。每一步都超越了信任邊界,最終導致代理擁有不受控制的全系統訪問權。傳統軟體可以提前定義權限,但自主代理的需求在運行時動態變化,這是核心難題。
  • 2. 多模型、多平台的統一防控需求
SANS Stormcast Wednesday, August 19th, 2026: Copilot as Whitstleblower; GEEKOM Bad Driver; Medusa Update; Encrypted AI
8 min
AI 安全英文PODCAST8月19日

SANS Stormcast Wednesday, August 19th, 2026: Copilot as Whitstleblower; GEEKOM Bad Driver; Medusa Update; Encrypted AI

SANS Stormcast

  • AI 系統的存取控制難以真正實施,因為一旦資料被 AI 系統存取,攻擊者總能找到繞過安全防護的方式提取資料。伺服器端請求偽造(SSRF)在聊天機器人中常見,攻擊者可騙誘 AI 系統向指定 URL 發送請求並將響應內容洩露給攻擊者。
  • Copilot 漏洞的完整利用鏈包括三個步驟:預填含惡意提示的 URL、誘導使用者點擊、利用 AI 的網頁擷取能力將敏感資料外洩到攻擊者控制的伺服器。Microsoft 的修補方案是限制允許的連結類型,犧牲了與其他系統的整合便利性以換取安全性。
Black Hat Asia 2026 | IntentGuard: Securing LLM-Generated Cloud Configurations
40 min
AI 安全英文8月18日

Black Hat Asia 2026 | IntentGuard: Securing LLM-Generated Cloud Configurations

Black Hat

  • 1. 基礎設施程式碼成為提示注入的隱形載體
  • 攻擊者可以在 CloudFormation、Terraform 等模板的註釋、環境變數預設值、引數名稱中植入指令,當 LLM 讀取這些模板生成新配置時,攻擊意圖會被隱形執行。這種攻擊能繞過傳統掃描器,因為最終輸出看似合規。
  • 2. 傳統掃描器的根本盲點:只看孤立配置,不看意圖一致性