我从quake上拉了批有mcp协议的资产来跑。30个目标,17 个确认是MCP服务器,15个完全没有认证
可见mcp的安全问题非常严重!!!
其实我自己在工作中vibecoding出来的mcp服务都是没鉴权的,并且搭到了公网上(嘻嘻 因为我防火墙配置了白名单,作为一名安全从业者我后来还是加上了鉴权)
为啥mcp暴露面这么严重?
MCP默认不强制认证,FastMCP、mcp-go 这些主流框架都是没有鉴权的
我扫了什么,挑几个说:
1.某教务系统:一个学生管理系统,无授权可以调用37个工具,有学生、教师、管理员相关功能。背后对应的应该是真实在运行的校园数据库,这个有点重
2.两个数据库直连:一个 postgres-mcp,9 个工具;一个 mysql-mcp-server,10 个工具。这类是直接把数据库操作能力包了一层 MCP 暴露出来,可以直接调增删改查了
扫描用的是AgentScan,我们自己写的开源的,专门用来做 AI Agent 暴露面发现。
agentscan scan -f targets.txt --skip-port-scan
会输出html和json格式的报告,识别到 MCP 之后会枚举工具列表、判断认证状态、做蜜罐检测。
这个工具还支持扫A2A(Agent-to-Agent 协议和LLM接口API(Ollama、vLLM、SGLang这些)
GitHub:GitHub - 7anX/AgentScan: AI protocol scanner — discover exposed MCP servers, A2A Agent Cards, and open LLM APIs in one command. 一条命令盘点 MCP、A2A Agent Card 和 LLM 开放接口暴露面。 · GitHub
下一篇文章我会分享A2A协议的安全问题