近日,GitHub官方推出的MCP服務(wù)器為大語言模型增添了新功能,包括讀取用戶倉庫議題和提交新拉取請求(PR)的能力。然而,這一創(chuàng)新卻潛藏著三重安全威脅:私有數(shù)據(jù)訪問、惡意指令暴露以及信息泄露。
據(jù)瑞士網(wǎng)絡(luò)安全公司Invariant Labs發(fā)布的研究報告,他們發(fā)現(xiàn)GitHub官方的MCP服務(wù)器存在安全漏洞,攻擊者能夠在公共倉庫中巧妙隱藏惡意指令。當(dāng)AI智能體如Claude 4處理這些公共倉庫議題時,可能會不經(jīng)意間觸發(fā)這些指令,導(dǎo)致MCP用戶的私有倉庫敏感數(shù)據(jù)被泄露。值得注意的是,類似的漏洞也存在于GitLab Duo中。
攻擊的核心在于獲取用戶正在處理的其他倉庫信息。由于MCP服務(wù)器被授予了訪問用戶私有倉庫的權(quán)限,當(dāng)大語言模型處理相關(guān)議題并嘗試創(chuàng)建新PR時,私有倉庫的名稱便有可能被暴露出來。
Invariant Labs的測試案例詳細(xì)揭示了這一攻擊過程。用戶只需向Claude發(fā)出一個看似無害的請求,如“查看pacman開源倉庫的議題”,就可能觸發(fā)信息泄露。當(dāng)AI智能體在處理公共倉庫議題時,會意外觸發(fā)隱藏的惡意指令,進(jìn)而將私有倉庫的數(shù)據(jù)拉入上下文環(huán)境,并在公共倉庫中創(chuàng)建一個包含私有數(shù)據(jù)的PR,使得攻擊者能夠輕松訪問這些敏感信息。
更為嚴(yán)重的是,如果將多個MCP服務(wù)器組合使用,一個用于訪問私有數(shù)據(jù),一個用于暴露惡意Token,另一個用于泄露數(shù)據(jù),將構(gòu)成更為嚴(yán)峻的安全風(fēng)險。而GitHub的MCP服務(wù)器目前已經(jīng)將這三要素集成在一個系統(tǒng)中,這無疑加劇了安全威脅。
在實際測試中,Invariant Labs成功滲出了用戶ukend0464的私有倉庫信息,泄露的內(nèi)容包括私人項目“Jupiter Star”、移居南美計劃以及薪資等高度敏感的數(shù)據(jù)。這一漏洞源于AI工作流的設(shè)計缺陷,而非傳統(tǒng)GitHub平臺的安全漏洞。
為了應(yīng)對這一安全挑戰(zhàn),Invariant Labs提出了兩套防御方案。首先,實施動態(tài)權(quán)限控制,嚴(yán)格限制AI智能體的訪問權(quán)限,確保它們只能訪問必要的數(shù)據(jù)。其次,建立持續(xù)安全監(jiān)測系統(tǒng),通過實時行為分析和上下文感知策略來攔截異常的數(shù)據(jù)流動,從而及時發(fā)現(xiàn)并阻止?jié)撛诘陌踩{。