MCP安全
MCP 让模型可以按统一协议接入外部工具,解决了「每个 Agent 都要为每个工具写一遍适配代码」的问题;但同一条协议也把工具本身变成了新的攻击面。
本分类从 MCP 协议基础讲起,逐条分析工具投毒(Tool Poisoning)、命令注入、权限过度授予与信息泄露等风险,对应 OWASP MCP Top 10 的对应条目,并给出配置与实现层面的防护建议。
本分类目前收录以下文章,按建议阅读顺序排列。
-
MCP安全系列之MCP基础
Agent有一个重要的组成,就是它可以调用外部的很多工具来完成任务,比如让一个Agent规划一下明天从A到B的路线,途中有哪些美食和景点,完事把结果存到数据库,同时把结果整理成…
-
MCP安全系列之信息泄露
MCP的第一个风险点翻译过来实际上叫做Token管理不当和密钥泄露,这里为了方便,就统一叫做信息泄露。
-
MCP安全系列之权限过大
该类问题主要指的是MCP工具权限太大,未遵循最小化权限原则,和Skill的过度权限、大模型的过度权限是相似的原理。之前文章可参考:
-
MCP安全系列之工具中毒
MCP安全中的工具中毒风险,其实是围绕恶意MCP展开的,比如MCP服务端的代码是恶意的,或者MCP工具的描述包含了恶意提示词等,都可归类为MCP工具中毒,所以感觉原理和之前Sk…
-
MCP安全系列之命令注入
命令注入相当于MCP服务端存在命令注入等相关问题,其执行的恶意命令会有很多来源,比如用户通过提示词给到模型,或者模型通过上下文获取,或者恶意命令存在外部,模型去读取,或者上游下…
-
MCP安全系列之意图流颠覆
意图流颠覆相当于模型本来要去做A任务,我们通过注入让其去做B任务,或者是影响A任务的结果,即改变了Agent原本的任务流。我们这里通过一个简单代码审计示例来复现下。
-
MCP安全系列之身份验证和授权问题
身份验证和授权问题大面上就是关于MCP服务权限问题,这里分了以下几个场景: