长文#2 定稿《红队一个 MCP server》+ W8 周总结
长文#2 定稿《红队一个 MCP server》+ W8 周总结
日期: 2026-08-09 阶段: Phase 2 - AI-native 参考架构 标签: #longform #red-team #aisa #week-summary
核心问题
W8(本周)做了一件事:把 AML Copilot 的 MCP 工具链当成攻击目标,做了两轮红队——红队 I(Day 53)测拦截前 ASR,红队 II(Day 54)测拦截后 ASR 与绕过归因,中间(Day 55)精读了 A2A 协议为跨 agent 委托的新攻击面铺垫。今天收口,回答两个命题:
- 长文#2《红队一个 MCP server》怎么定稿成一份有真实 ASR 前后对比的报告,而非「MCP 安全综述」? 报告骨架 = 攻击向量分类 → ASR 前后量化 → 修复闭环,必须是「我们对自己的 copilot 做了什么、测出什么数字、改了什么」的一手叙事。
- 为什么「安全」是 AISA(AI Security Architect / AI-native PM 的安全维度)的差异化卖点,而不只是合规清单? 这是把红队成果从「技术活」升维成「求职叙事」的关键——能红队自己产品的 PM/架构师极稀缺。
本篇同时是 W8 周总结,复盘红队两轮 + A2A 精读的收获与下周衔接。
关键内容
A. 长文#2 的报告骨架(攻击向量 × 拦截效果,非综述)
长文标题《红队一个 MCP server:从 36% ASR 到可控残余风险》。它不是「MCP 有哪些安全风险」的综述(那种文章满网都是),而是一份对本项目自己的 copilot 做的红队报告,骨架严格按 2026 红队报告标准结构(OnSecurity / Repello 口径):执行摘要 → 方法 → 分向量发现(含 PoC)→ ASR 前后度量 → 修复与残余风险。论证主线是一条有因果的攻击-防御演进,不是平铺风险类别:
第1节 攻击面建模(为什么 MCP 是 AML copilot 的软肋)
AML copilot = LLM + 金融工具(查交易/拟 SAR/调 typology 检查)
→ MCP 工具描述、参数、调用图都是攻击者可操纵的注入点
→ 最危险后果: 篡改 SAR 金额 / 越权导出客户数据 / 静默跳过 typology
│ 「面有了,实际能打穿吗」
▼
第2节 红队 I:拦截前 ASR 基线(Day 53)
按 MCPTox 三类向量分桶: 显式劫持/隐式劫持/参数篡改 + 间接注入
→ 拦截前 ASR 基线(扩充集): 参数篡改桶最高(锚 MCPTox 46.7%)
→ 每桶给 PoC: 一条能打穿的 payload + 它达成了什么攻击目标
│ 「打穿了,加防御能拦多少」
▼
第3节 红队 II:拦截后 ASR + 防御代价(Day 54)
在「原 payload + K 语义变体」同一扩充集上复测(关键纪律!)
→ ASR 前后对比表(本文核心数字) + 误拦率/延迟/人审负载
→ 拦截不在 prompt 层(拦不住合法工具滥用),在工具调用层做结构校验
│ 「还有没拦住的,怎么办」
▼
第4节 绕过归因与残余风险(Day 54 闭环)
每个绕过案例打到具体修复层(打「类」不打「条」)
→ 显式承认残余风险非零(参数篡改最难,ASR_after 目标 0.15)
→ defense-in-depth + 风险分级: 重检查只上高风险路径
│ 「这套方法跨 agent 委托还成立吗」
▼
第5节 新攻击面前瞻(Day 55 A2A)
A2A 跨组织委托 = 信任边界扩大 = 被委托 agent 行为须补测
→ 签名 Agent Card 解信任传递,但被攻破的合法 agent 仍能作恶
→ P4 接外部制裁筛查 agent 时的红队增量
报告的核心交付物——攻击向量 × 拦截效果矩阵(数字为 v1 红队设计目标 + MCPTox 行业锚定,真实复测结果以 src/aml/redteam/asrEval.ts 实测回填):
| 攻击向量 | PoC 攻击目标 | ASR_before(扩充集) | 拦截手段 | ASR_after(扩充集) | 残余风险 |
|---|---|---|---|---|---|
| 显式触发·函数劫持 | 调用未授权导出工具 | ~0.55 | 工具白名单+签名 | ≤0.05 | 白名单外新工具首调 |
| 隐式触发·函数劫持 | 伪装背景任务链式越权 | ~0.50 | 调用图异常+人审闸门 | ≤0.10 | 多跳伪装 |
| 隐式触发·参数篡改 | 篡改 SAR 申报金额 | ~0.47 | 参数范围/一致性硬校验 | ≤0.15 | 贴线微调 |
| 间接注入 | 外部内容夹带指令 | ~0.40 | JIT 隔离+内容标记 | ≤0.10 | 多跳嵌入 |
反直觉洞察①(红队报告的可信度来自「敢报残余风险」,不是「ASR 归零」):一份写「拦截后 ASR=0、全部修复」的报告,在懂行的人眼里是减分项——OWASP GenAI Q1 2026 明说「声称零 ASR 通常意味测试集太弱」。本长文每个桶都显式列非空残余风险、把最难的参数篡改桶 ASR_after 目标诚实地设在 0.15,这种「敢承认拦不干净」恰恰证明测试集够硬、判断够诚实。红队报告的说服力与 ASR 数字漂亮程度负相关,与残余风险披露的完整度正相关。
B. 拦截前后量化的诚信纪律(承 Day 27 / Day 54)
长文最显眼的数字是「ASR 从 ~36% 降到可控残余」。这串数字的每次出现都强制带三条限定(否则即触发阶1 诚信止血定义的「夸大」):
| 危险写法(禁止) | 诚实写法(要求) | 差异本质 |
|---|---|---|
| 「ASR 从 36% 降到 0%」 | 「在含 K 语义变体的同一扩充集上,参数篡改桶 ASR_after 目标 0.15,残余风险为贴线微调」 | 零 ASR 是测试集弱的信号 vs 标明残余 |
| 「我们的 copilot 已通过红队」 | 「v1 ASR 为红队设计目标 + MCPTox 行业锚定,真实复测 W8 回填」 | 谎称已防护 vs 标明阶段 |
| 「比 GPT 系列更安全」 | 「Claude 在 MCPTox 中 ASR 最低(34.3%),但金融工具后果更重,不放松」 | 蹭基准 vs 标明攻击面差异 |
| 「拦截器拦住了所有变体」 | 「before/after 必须在同一扩充集算,否则降幅来自测试集变简单」 | 苹果比橘子 vs 可比性纪律 |
核心是 Day 54 钉死的可比性纪律:ASR_before 与 ASR_after 必须在同一个含语义变体的扩充集上算,从 asrEval.ts 的断言层强制(两者 case 集合不一致即抛错)。长文所有 ASR 数字引自该函数实测输出、不手抄,避免数字漂移——这是 Day 27「数字单一真相源」纪律在安全域的延续。
C. 安全作为 AISA 差异化(从技术活到求职叙事)
红队成果的最高价值不是「修了几个洞」,而是它证明了一种稀缺能力组合。把它升维成求职叙事(对标优化路线图的「收敛到 3 条叙事」目标):
能力栈(红队这条线证明的)
① 能把 MCP/agent 当攻击目标系统性建模(MCPTox 三类向量内化)
② 能设计 defense-in-depth 而非堆单层 guardrail(风险分级)
③ 能诚实量化 ASR 前后 + 残余风险(eval 判断力,非营销)
④ 能预判跨 agent(A2A)新攻击面(架构前瞻)
│
▼
差异化定位: 「懂金融合规 + 能红队自己 AI 产品的 PM/架构师」
→ 2026 市场极稀缺: 多数 AI PM 不会红队,多数安全研究者不懂金融合规
反直觉洞察②(会红队自己产品的 PM 比会做产品的 PM 稀缺一个数量级):直觉认为 PM 的核心是「定义做什么」,安全是安全团队的事。但 2026 的现实是——AI 产品的失败模式大半是安全/可靠性失败(被注入、越权、幻觉造成合规事故),而能在产品设计阶段就用红队思维预判这些的 PM/架构师极少。一个能拿出「我红队了自己的 AML copilot、这是 ASR 前后对比和残余风险」的作品集,向招聘方展示的不是「我会安全」,而是「我把安全当产品质量的一等维度」——这正是 ThoughtWorks Radar Vol 34(2026-04)把「权限饥渴 agent 零信任」列为技术雷达项所指的能力。安全不是合规清单上的勾选项,是 AI-native 产品 PM 的核心判断力。
W8 周总结
| 维度 | 本周收获 | 下周(W9)衔接 |
|---|---|---|
| 红队方法 | ASR 前后须同扩充集算;绕过打「类」不打「条」 | 把 asrEval/bypassTaxonomy 接进 CI |
| 防御架构 | 拦截在工具调用层,非 prompt 层;defense-in-depth+风险分级 | 接入 orchestrator Budget 闸门 |
| 协议精读 | A2A 横向连 agent,MCP 纵向连工具,正交;长任务八态状态机 | P4 跨云对标的边界文档 |
| 诚信纪律 | 零 ASR=测试集弱;残余风险须显式;数字单一真相源 | 入作品集发布自查清单 |
| 求职叙事 | 「能红队自己 AI 产品」是 AISA 稀缺差异化 | 收敛进 3 条核心叙事之一 |
W8 踩坑复盘:本周最大的认知纠偏是「拦截在哪一层做」。第一直觉是在 prompt/system message 层加防注入指令——但 MCPTox(拒答率<3%)和 Willison(2.5 年无完整解)证明这条路走不通:模型层拦不住「合法工具被滥用」。正解是把拦截下沉到工具调用层做结构性校验(白名单/参数范围/调用图),这与本项目已有的
Budget闸门(assertCanToolCall)是同一抽象层——防御应该建在你能确定性校验的地方,不是指望概率性的模型自觉。
设计要点/决策表
| 要点 | 决策 | 理由 |
|---|---|---|
| 长文体裁 | 一手红队报告,非 MCP 安全综述 | 「对自己 copilot 做了什么」才有作品价值 |
| 报告骨架 | 攻击面→ASR 前→ASR 后→绕过归因→新面前瞻 | 有因果的攻防演进,非风险类别平铺 |
| 核心交付物 | 攻击向量×拦截效果矩阵 | 一张表压住全文论证 |
| 残余风险 | 每桶显式非零,参数篡改桶最高 | 零 ASR=测试集弱(OWASP) |
| ASR 数字 | 引 asrEval 实测,同扩充集,三限定语 | 单一真相源 + 诚信止血 |
| 安全定位 | AISA 差异化卖点,非合规清单 | 能红队自己 AI 产品的 PM 极稀缺 |
对本项目的落地
- 长文#2 落盘:写入
docs/aipa/longform/,接 learn track(体例同src/data/aipa-posts.ts+app/learn/aipa/,模式同 Day 27 长文#1),骨架严格按 A 节五节;所有 ASR 数字引自src/aml/redteam/asrEval.ts的recheckAsr输出,门槛/目标值另列标「红队设计目标」。 - 红队报告页:在作品集站新增
/aml-copilot演示页的「安全」子页,渲染 A 节攻击向量×拦截效果矩阵 + B 节诚信对照表——这是把红队成果做成可展示作品(对标优化路线图「3 条叙事」中的安全叙事)。 - CI 衔接(W9):
asrEval.ts的recheckAsr与bypassTaxonomy.ts接入测试,断言每个攻击桶asrAfter ≤ 目标值才允许通过——把红队从「一次性活动」变成「回归门」,呼应 Day 19 的阻断式 eval gate(ASR 退化即阻断 merge)。 - 诚信自查入清单:B 节四行危险/诚实对照表抽成 PR/文案自查项,任何展示 ASR 数字的页面(含红队报告页、作品集首页)发布前过一遍,禁止出现左列写法——这是 Day 27 诚信清单在安全域的扩展。
- A2A 新面挂账:Day 55 的「被委托 agent 信任边界」作为 P4 红队增量挂进
docs/daily/AIPA_PROGRESS.md的 P4 行待办,当前不实现(无外部 A2A agent),仅在长文#2 第5节作前瞻,不谎称已覆盖。
参考资料
- MCPTox — A Benchmark for Tool Poisoning Attack on Real-World MCP Servers(arXiv:2508.14925,2025-08/2026-初):平均 ASR 36.5%,三类向量(显式劫持 224 / 隐式劫持 548 / 参数篡改 725,后者平均 ASR 46.7% 最难);Claude-3.7-Sonnet ASR 34.3% 最低、拒答率<3%;ASR=成功/有效输出
- OnSecurity — LLM Red Teaming: A Guide for AI Security(2026)/ Repello — Essential Guide to AI Red Teaming 2026:报告结构(执行摘要/方法/分向量发现含 PoC/ASR 度量/修复+残余);复测须含语义等价变体
- OWASP GenAI Security Project — Exploit Round-up Report Q1 2026(2026-04-14):声称零 ASR 通常意味测试集太弱;六大攻击面(注入/越狱/投毒/抽取/越权工具/隐私泄露)
- getmaxim / Lushbinary — Prompt Injection Defense Production Playbook(2026):defense-in-depth;重检查只上高风险路径;guardrail LLM 本身可被注入
- ThoughtWorks Technology Radar Vol 34(2026-04):agent topologies;权限饥渴 agent 零信任;spec-driven development
- When MCP Servers Attack: Taxonomy, Feasibility, and Mitigation(arXiv:2509.24272,NUS,2025-09):tool poisoning / rug pull / shadowing / exfiltration / command injection / sandbox escape
- 本仓库
src/aml/redteam/asrEval.ts(ASR 前后单一真相源)、bypassTaxonomy.ts(绕过归因)、src/agent/orchestrator/budget.ts(工具闸门)、src/data/aipa-posts.ts(长文体例)、Day 27 长文#1(诚信纪律)、Day 53/54/55(红队两轮 + A2A)(2026-06)
SOTA 检查 (2026-06-11)
- 红队报告结构在 2026-06 已标准化:执行摘要/方法/分向量 PoC/ASR 度量/修复+残余(OnSecurity/Repello/OWASP Q1 2026 口径一致);ASR 为核心度量、「测修复前先测语义变体」为硬纪律——本长文骨架与之对齐。
- MCPTox 仍是 MCP 工具投毒事实基准:其三类向量与「参数篡改最难(46.7%)」结论定义本长文桶设计;Claude ASR 最低(34.3%)但本项目不放松(金融工具后果更重)——这一判断在 2026-06 成立。
- 「安全是 AI 产品 PM 一等维度」是 2026 上升共识:ThoughtWorks Radar Vol 34(2026-04)把「权限饥渴 agent 零信任」「agent topologies」列为雷达项——印证 C 节「能红队自己 AI 产品的 PM 稀缺」的市场判断是 live 的。
- 过时认知警示:(1) 红队报告不可追求「ASR 归零」——零 ASR=测试集弱(OWASP);(2) 拦截不可只做 prompt 层——模型对齐拦不住合法工具滥用(MCPTox 拒答率<3%),须下沉工具调用层;(3) ASR 前后不可不同集对比——必须同扩充集(Day 54 可比性纪律)。
- 待跟踪:NIST CAISI AI Agent 标准(2026-02-17 启动,Q4 2026 出 profile)若给出官方红队/ASR 报告口径,长文#2 度量须对齐;A2A 跨 agent 委托(Day 55)的新攻击面(被委托 agent)在 P4 接外部 agent 时补一轮红队,结果回填长文#2 第5节;MCP 2026-07-28 最终规范(stateless core/Tasks/Extensions)落地后工具调用层校验接口是否变化,须复核 asrEval 拦截点。