編輯 | 云昭
出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)
MCP 這次真的火了!
自從Anthropic于 2024 年 11 月推出以來(lái),它有望成為“將 AI 助手連接到數(shù)據(jù)所在系統(tǒng)的新標(biāo)準(zhǔn)”。
截至目前,該協(xié)議已被 OpenAI、微軟和谷歌等公司迅速采用;各大供應(yīng)商紛紛推出 MCP 服務(wù)器,希望在 AI 代理工作流程中不失時(shí)機(jī)。同樣,阿里、騰訊、百度等國(guó)內(nèi)大廠也毫無(wú)例外地統(tǒng)一宣布支持MCP協(xié)議。
簡(jiǎn)單說(shuō),MCP在網(wǎng)絡(luò)上風(fēng)靡一時(shí)的原因很簡(jiǎn)單——人們已經(jīng)發(fā)現(xiàn)了它各種各樣的使用場(chǎng)景。但問(wèn)題是:最近,人們開(kāi)始注意到 MCP 服務(wù)器并不像看上去那么安全。
一、為什么 MCP 服務(wù)器很危險(xiǎn)呢?
要了解這些危險(xiǎn),您首先需要了解什么是 MCP 服務(wù)器以及它是如何工作的。
1.MCP 服務(wù)器究竟是如何工作的?
MCP 服務(wù)器就像專業(yè)的管家,充當(dāng) AI 模型和外部資源之間的橋梁。它們提供特定的功能,例如訪問(wèn)文件、與數(shù)據(jù)庫(kù)交互或使用 API。每個(gè) MCP 服務(wù)器都專注于一項(xiàng)特定的任務(wù),使 AI 能夠輕松使用這些工具,而無(wú)需為每項(xiàng)服務(wù)編寫自定義代碼。
2.MCP 服務(wù)器的工作原理
連接:AI(充當(dāng) MCP 客戶端)連接到 MCP 服務(wù)器。
工具發(fā)現(xiàn):服務(wù)器告訴 AI 它可以訪問(wèn)哪些工具或數(shù)據(jù)源。
通信:它們使用名為 JSON-RPC 2.0 的輕量級(jí)協(xié)議進(jìn)行通信,該協(xié)議允許快速和動(dòng)態(tài)的交換。
例如,如果人工智能需要從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù):
AI向MCP服務(wù)器詢問(wèn)最新的銷售數(shù)據(jù)。
MCP 服務(wù)器將請(qǐng)求轉(zhuǎn)換為數(shù)據(jù)庫(kù)查詢。
它執(zhí)行查詢并將結(jié)果發(fā)送回 AI。
圖片
3.危險(xiǎn)之處
1)工具中隱藏惡意指令(工具中毒)
攻擊者可以將有害命令隱藏在 MCP 工具描述中。這些指令對(duì)用戶不可見(jiàn),但可以誘騙 AI 模型執(zhí)行危險(xiǎn)的操作。
工具描述可能看起來(lái)很正常(例如,“分析此文件”),但人工智能可能會(huì)秘密復(fù)制敏感文件(如密碼或客戶數(shù)據(jù))并將其發(fā)送給黑客。
攻擊者可能會(huì)在“更新設(shè)置”等看似簡(jiǎn)單的任務(wù)背后隱藏代碼來(lái)刪除文件或竊取數(shù)據(jù)。
2)用戶看不到隱藏的風(fēng)險(xiǎn)
人們只能看到簡(jiǎn)短的工具描述,而AI模型卻能看到完整的、可能有害的指令。更糟糕的是,許多MCP工具不會(huì)檢查隱藏的危險(xiǎn)。
一款名為“整理文件”的工具在AI運(yùn)行時(shí),實(shí)際上可能會(huì)刪除重要文檔。用戶除非檢查代碼,否則不會(huì)發(fā)現(xiàn)。
3)批準(zhǔn)后的虛假更新(MCP Rug Pulls)
黑客可以在您批準(zhǔn)工具后修改工具的描述,并在安裝后添加有害代碼。
想象一下,你安裝了一個(gè)計(jì)算器工具。后來(lái),黑客對(duì)其進(jìn)行了更新,竊取了用戶在應(yīng)用中輸入的信用卡號(hào)碼。這就像一個(gè)“假更新”騙局。
4)劫持可信工具(跨服務(wù)器攻擊)
惡意服務(wù)器可以覆蓋安全服務(wù)器的工具。這些攻擊不會(huì)在用戶日志中留下任何痕跡。
被黑客入侵的服務(wù)器可能會(huì)更改受信任的電子郵件發(fā)送工具,將所有電子郵件轉(zhuǎn)發(fā)到黑客的地址,即使您輸入了正確的收件人。
5)真實(shí)世界中有效的漏洞
Cursor AI 漏洞:名為“add()”的工具看似無(wú)害,但卻會(huì)從設(shè)置文件中秘密竊取登錄詳細(xì)信息(如密碼)。
虛假電子郵件工具:一種惡意工具,假裝向您的聯(lián)系人列表發(fā)送消息,但實(shí)際上卻將其發(fā)送給了黑客。
6)MCP 的內(nèi)在弱點(diǎn)
MCP 完全信任工具描述,即使它們很危險(xiǎn)。一臺(tái)服務(wù)器被黑可能會(huì)感染其他服務(wù)器。
如果黑客入侵了一個(gè)工具,他們就可以利用它攻擊所有連接的工具,就像連鎖反應(yīng)一樣。
7)當(dāng)今保護(hù)措施薄弱
大多數(shù)用戶并不知道 MCP 服務(wù)器的風(fēng)險(xiǎn)有多大。工具也缺乏基本的安全保障。
如果某個(gè)工具更新了有害代碼,除非客戶端檢查更改(許多客戶端不會(huì)檢查),否則用戶不會(huì)知道。
二、如何保持安全
圖片
雖然 MCP 的概念很棒,但它也隱藏著一些每個(gè)人都應(yīng)該知道的風(fēng)險(xiǎn)。為了安全起見(jiàn),你可以遵循以下步驟:
- 在安全性提高之前,請(qǐng)避免使用不受信任的 MCP 服務(wù)器。
- 使用強(qiáng)有力的保護(hù)措施,例如:
工具固定:將工具鎖定為特定的、經(jīng)過(guò)驗(yàn)證的版本。
用戶友好警告:清楚地顯示工具運(yùn)行前的功能。
跨服務(wù)器隔離:分離工具,以便被黑客入侵的工具不會(huì)影響其他工具。
- 對(duì)于關(guān)鍵任務(wù),請(qǐng)考慮像 Invariant 的安全堆棧這樣的解決方案,它增加了額外的保護(hù)層。
三、怎么辦?安全指南來(lái)了
但這并非代表著MCP 服務(wù)器一無(wú)是處,當(dāng)然它們也很有用。只不過(guò),它們就像開(kāi)車不系安全帶一樣,確實(shí)很方便,但一步走錯(cuò)就完蛋了。黑客可以在工具描述中隱藏惡意代碼,誘騙 AI 泄露你的機(jī)密,或者在你信任之后“更新”工具。
生存方法如下:
將每個(gè) MCP 服務(wù)器視為一個(gè)粗略的應(yīng)用程序下載 - 避開(kāi)那些沒(méi)人信任的服務(wù)器。
通過(guò)固定將工具牢牢鎖定(這樣黑客以后就無(wú)法潛入)。
如果您必須使用 MCP,請(qǐng)像隔離放射性物質(zhì)一樣將其隔離 - 將其遠(yuǎn)離您的重要物品。
總而言之,MCP 的技術(shù)很酷,但它仍在改進(jìn)中。謹(jǐn)慎使用,做好自我保護(hù),或者等到“安全更新”發(fā)布后再完全信任它。