MPMA:Preference Manipulation Attack Against Model Context Protocol

概要

MCP作為提供給LLM作為工具調用的標準化協議被廣泛應用,但是MCP在安全方面還比較脆弱。本文提出了一種MPMA攻擊方法通過在工具的名字或描述中插入具有操控性的文字、短語來操控LLM選擇MCP server的過程。

不了解MCP的具體細節可以看看我寫的這篇文章MCP

場景

在經濟利益驅動下,多個提供類似功能的付費 MCP 服務器常常存在直接的競爭關系。在這種利潤競逐的格局中,惡意 MCP 服務器可能試圖操控 LLM 的工具選擇過程,以提高其在各種用戶查詢中被選中的概率。

攻擊者在第三方平臺發布一個惡意的付費 MCP 服務器,一旦被用戶集成,底層大語言模型(LLM)便會在功能相似的 MCP 服務器中持續偏向選擇該惡意服務器,從而使攻擊者獲取經濟收益。

威脅模型

攻擊場景:

攻擊者部署了一個有害的付費MCP server在第三方平臺上。被用戶部署了這個有害的MCP后,它會影響LLM的工具選擇,讓LLM有更大的可能性去選擇它,從而增加攻擊者的收入。

攻擊者的能力:
  • 攻擊者能白盒訪問MCP服務器,能控制其元數據,例如工具名稱、工具描述。
攻擊者的目標:
  • 攻擊有效性:保證惡意的MCP server能在LLM選擇頻率上始終超過其他競品;
  • 隱蔽性:保持惡意MCP server能不引起用戶懷疑并規避人工審查和自動化檢測;

攻擊方法

本文提出了直接偏好控制攻擊(DPMA),通過在工具的名字或描述中插入具有操控性的文字、短語在大多數設置中取得了很好的效果。
但是這種方法很容易被用戶或者第三方平臺審查出來,因此要保證攻擊的隱蔽性至關重要,受到傳統廣告能無意識的影響人類的偏好的影響,本文進一步提出了一種基于遺傳的廣告偏好控制攻擊(GAPMA),利用傳統廣告的策略構建了4個描述的優化目標:權威型、情感型、夸張型和潛意識型,后在用黑箱的遺傳算法進一步增強了隱蔽性。

![[Pasted image 20250612194358.png]]

Direct Preference Manipulate Attack (DPMA):

攻擊策略: 給工具提供最好的工具描述和最好的名字

  1. 最好的描述:研究得出包含“best”的單詞和短語是最符合LLM的偏好的,所以把正常的描述和帶有“best”的控制性描述連接起來。 D b = D m + D r D_b = D_m + D_r Db?=Dm?+Dr?
  2. 最好的名字:也是把單詞“best”和原來的名字拼接在一起。 N b = N m + N r N_b = N_m + N_r Nb?=Nm?+Nr?
    但是隱蔽性太差,容易直接被審查出來。下圖是MCP server對外可見部分。
    ![[Pasted image 20250612195905.png]]

Genetic-based Advertising Preference Manipulate Attack (GAPMA)

攻擊策略: 通過GTP-o來生產具有下列四種廣告特征的工具描述

  1. 權威型:通過將廣告內容偽裝成專家建議或用戶推薦,將其嵌入文本之中。
  2. 情感性:通過融入充滿情感色彩的語言,將廣告內容與受眾的情感需求相結合。
  3. 夸張型:運用夸張手法和強烈的修辭技巧,使產品顯得更加吸引人。
  4. 潛意識性:通過潛意識提示嵌入信息在不知不覺中影響行為。

攻擊過程:
在這里插入圖片描述

  1. 廣告風格初始化:

    • 調用 GPT-4o,用提示 P a d v P_{adv} Padv? 將原始描述 D 0 D_0 D0? 轉換成符合目標廣告策略且初具隱蔽性的描述——記作 description
    • 將這個 description 在候選池 D D D 中復制 P I P_I PI? 次,構成初始池 P P P
  2. 遺傳迭代優化:

    • 變異(MUTATE):對池中每個候選描述 D j D_j Dj?,使用隱蔽性提示 P e n c P_{enc} Penc? 生成一個“變異”版本 D j ′ D'_j Dj?,旨在讓表述更不易被察覺
    • 交叉(CROSSOVER):從當前池中隨機抽取另一個描述 Random( P P P) 與 D j D_j Dj? 配對,通過 P e n c P_{enc} Penc?生成“交叉”版本 D j ′ ′ D''_j Dj′′?,將兩者的某些元素組合,以探索更多樣化的描述可能
    • 候選池擴容:將所有新生成的 D j ′ D'_j Dj? D j ′ ′ D''_j Dj′′? 加入到“新候選集” P n e w P_{new} Pnew? ,并將 P n e w P_{new} Pnew?并入原有池 P P P,得到一個更大的描述集合
    • 隱蔽性 Top- k k k 篩選:調用 GPT-4o 并使用提示 P s e l - k P_{sel\text{-}k} Psel-k?在合并后的池 P P P中選出“最不引人懷疑”的前 k k k 條描述 ,丟棄其余,保留這 k k k 條作為下一輪迭代的池 P P P
    • 對上述步驟迭代 n n n
  3. 終選最優描述: 完成 n n n 輪迭代后,再次調用 GPT-4o,使用提示 P s e l - 1 P_{sel\text{-}1} Psel-1?從池中只選一條,確定出隱蔽性最強的那條描述 D ? D^* D?

實驗

指標

  • ASR:評估 MPMA 的攻擊效果
  • TPR:衡量 MCP 服務器的隱蔽性

模型

Deepseek-V3、Claude-3.7-Sonnet 、Gemini-2.5-flash、Qwen3-235BA22B、GPT-4o。

MCP Server

天氣信息、時間信息、安裝幫助、熱點新聞、網頁內容獲取、網頁轉 Markdown、加密貨幣分析、網絡搜索。

數據集

每個 MCP 服務器均構造 10 條對應的常見查詢進行評估。

實驗結果

DPMA 實驗結果:
  • “最佳描述”策略幾乎在所有設置下均達到 100% ASR。

  • “最佳名稱”策略在大多數情況下也達 100% ASR,并優于基線;僅在 GPT-4o 下有少數場景 ASR 低于基線,推測其更依賴描述而非名稱。

  • 總體而言,DPMA 攻擊效果強,“最佳描述”優于“最佳名稱”。

![[Pasted image 20250612205643.png]]

GAPMA 實驗結果:

從ASR來看:

  • 大多數廣告策略(Adv 列)平均 ASR 遠高于基線,唯 GPT-4o 下的 Ex 策略略遜。

  • Au 策略表現最優,Em 策略相對最差;5 種模型中,Gemini 平均 ASR 最高達 91.88%,GPT-4o 最低僅 22.19%,或因其內置防御機制所致。

![[Pasted image 20250612205825.png]]

從TPR來看:

  • 所有廣告策略的 TPR 均低于 DPMA 的“最佳描述”。

  • 經 GA 優化后的四種策略在 LLM-judge 下 TPR 分別為 Au 0%、Em 5%、Ex 2.5%、Su 0%,均低于最佳描述的 37.5% 和原始描述的 10%。

  • GA 一致顯著降低 TPR,驗證了其提升隱蔽性的效果。

  • 綜合攻擊效果與隱蔽性,Au+GA 最優,既擁有最高 ASR 又具最低 TPR。

![[Pasted image 20250612210145.png]]

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/84577.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84577.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/84577.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vim 替換命令完整學習筆記

Vim 替換命令完整學習筆記 文章目錄 Vim 替換命令完整學習筆記1. 核心概念2. 替換命令基本語法2.1 基本格式2.2 分隔符選擇2.3 范圍指定 3. 替換標志詳解3.1 基礎標志3.2 高級標志3.3 標志組合 4. 正則表達式在替換中的應用4.1 基礎正則表達式4.2 字符類和量詞4.3 分組和引用 5…

@RequestBody和@ResponseBody注解的作用是什么

@RequestBody和@ResponseBody注解的作用是什么 文章目錄 @RequestBody和@ResponseBody注解的作用是什么@RequestBody和@ResponseBody注解的作用是什么SpringMVC的請求與響應模型1. 請求的處理流程1.1 DispatcherServlet作為入口1.2 Handler處理器與Controller1.3 HandlerAdapte…

質因數分解_java

什么是質因數? 說的通俗一點就是,這個數既是因數,又是質數。但是1不是質因數(不是質數)。然后比如122*2*3,里邊的2,3都是質數,并且也是12的因數,所以2、3就是12的質因數。 因為本人很菜&#xf…

SpringDoc集成到Springboot

1.Maven引入jar包 <dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-ui</artifactId><version>1.6.14</version> </dependency> 2.新建OpenApiConfig文件&#xff0c;代碼如下 package com.elan…

Memory Repair (五)

Compression Algorithm and Fuse Box Organization 通常情況下&#xff0c;這部分信息對于實現BISR&#xff08;內置自修復&#xff09;并非必需&#xff0c;但對于診斷問題可能有所幫助。 Compression and Fuse Box Organization Overview BISR controller采用的壓縮算法基于兩…

雙系統(win+linux)根目錄擴容(不掉GPU驅動)

先看效果&#xff0c;原來的根目錄僅50G&#xff0c;從/home節點分出擴容后變為250GB&#xff1b; 因為根分區是系統當前運行的文件系統&#xff0c;Linux系統啟動后會鎖定根分區&#xff0c;防止對其進行修改。這時使用系統內的工具&#xff08;如gparted&#xff09;調整根分…

oracle 23ai對象注釋新特性ANNOTATIONS

我們知道以前數據庫版本注釋方式是用COMMENT&#xff0c;如下 COMMENT ON COLUMN 表名.字段名 IS 字段注釋; oracle 23ai對象注釋有新增了ANNOTATIONS&#xff0c;比如創建如下表&#xff1a; SQL> create table test.t_user( id number, name varchar(200) ANNOTATIONS …

VMware 虛擬機開機自啟動配置指南

方法一&#xff1a;通過啟動文件夾設置&#xff08;簡單版&#xff09; 打開啟動文件夾&#xff1a; 按下 Win R 快捷鍵輸入 shell:startup 并回車 創建啟動腳本&#xff1a; 在打開的文件夾中右鍵新建一個文本文件命名為 vm_start.bat輸入以下內容&#xff1a; echo off &…

2025pmx文件怎么打開blender和虛幻

pmx文件怎么打開blender 前言 一坑接一坑。 意思很簡單&#xff0c;就是給Blender、3dsmax裝插件&#xff0c;然后就可以打開了。但是報錯就要多走很多錯路。 記錄一下。 內容 參考文章&#xff1a;https://blog.csdn.net/c858845275/article/details/144180555 我的Ble…

Kotlin基礎語法五

繼承與重載的open關鍵字 KT所有的類&#xff0c;默認是final修飾的&#xff0c;不能被繼承&#xff0c;和Java相反 open&#xff1a;移除final修飾 類型轉換 open class Person2(private val name: String) {fun showName() "父類 的姓名是【$name】"// KT所有的…

MySQL數據庫:關系型數據庫的基石

文章目錄 每日一句正能量前言一、MySQL簡介&#xff08;一&#xff09;什么是MySQL&#xff1f;&#xff08;二&#xff09;MySQL的歷史 二、MySQL的特點&#xff08;一&#xff09;開源與免費&#xff08;二&#xff09;高性能&#xff08;三&#xff09;跨平臺支持&#xff0…

【kafka】Golang實現分布式Masscan任務調度系統

要求: 輸出兩個程序,一個命令行程序(命令行參數用flag)和一個服務端程序。 命令行程序支持通過命令行參數配置下發IP或IP段、端口、掃描帶寬,然后將消息推送到kafka里面。 服務端程序: 從kafka消費者接收掃描任務信息通過調用masscan啟動探測任務,獲取進度和結果信息,…

ARM 和 x86_64是什么關系

什么是 ARM 和 x86_64&#xff1f; 它們都是 CPU 指令集架構&#xff08;ISA&#xff09; 指令集架構&#xff08;Instruction Set Architecture&#xff09;就是&#xff1a; CPU 能夠理解和執行的“語言”和“命令格式”。 類比解釋&#xff1a;指令集就像“語言” 類比對…

nginx配置中有無‘‘/’’的區別

在Nginx配置中&#xff0c;location指令末尾的斜杠/和proxy_pass目標地址末尾的斜杠/組合使用會產生顯著差異。以下是四種組合的區別詳解&#xff1a; ??核心區別對比表?? 配置方案匹配規則請求URI傳遞邏輯實際轉發效果示例location /api/ proxy_pass ...701/僅匹配/api/…

系統安全之身份認證

本篇我們對常用的身份認證協議做簡要的梳理&#xff0c;包括主流的 HTTP 相關認證協議以及證書密鑰對、新興的 WebAuthn 認證。 HTTP 協議認證 RFC 7235 中定義了 HTTP 協議的認證框架&#xff0c;要求在支持 HTTP 協議的服務器&#xff0c;如果訪問服務的身份驗證失敗&#…

部署http服務

使用flask搭建一個http服務&#xff0c;能夠通過本地的另外一個終端訪問對應接口&#xff0c;拿到服務端的計算結果 服務端&#xff1a; 創建一個test_http_dtw.py并運行 from flask import Flask, request, jsonifyapp Flask(__name__)# 示例分析函數 def analysis(data):…

WLAN 技術指南:從入門到原理

文章目錄 目錄 文章目錄 前言 一.WLAN 基本概念 有線側組網概念 AP-AC 組網方式 AC 連接方式 CAPWAP 協議 無線側組網概念 無線信道 ?編輯 BSS/SSID/BSSID ?編輯 VAP ESS 二.WLAN 組網架構 基本的 WLAN 組網架構 四.WLAN 工作原理 AP 上線 AP 獲取 IP 地址階段 CAP…

語言學習專用AI播放器推薦:LLPlayer

學語言&#xff0c;經常會看大量的比較優秀的視頻材料&#xff0c;那么推薦一款語言學習利器&#xff0c;極大提高生產力。 LLPlayer 是一款專為語言學習者設計的獨特視頻播放器。 它具有許多重要功能&#xff0c;例如可同時顯示文本字幕和位圖字幕、使用 OpenAI Whisper 自動…

mysql 關聯表查詢,索引失效

來源表: ##示例 CREATE TABLE order_wide (order_id varchar(33) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 訂單ID,member_id int(11) DEFAULT NULL COMMENT 用戶ID,content varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 訂單標簽,PRIMARY KEY (order_…

Oracle DG庫手動注冊歸檔日志的兩種方法

Oracle DG庫手動注冊歸檔日志的兩種方法 注冊單個歸檔日志文件注冊多個歸檔日志文件有的時候由于網絡或各種原因,Oracle DG庫服務器上可能缺少部分歸檔日志文件,導致DG庫的MRP進程一直處于WAIT_FOR_GAP狀態。 此時我們可以手動從主庫或其他DG拷貝歸檔日志到當前DG服務器,并…