#独立开发的日常 发现一个可怕的事:我的 MCP 安全靶场,没有一组说真的 MCP 协议。
真 MCP 是 JSON-RPC(initialize → tools/list),我的靶场收到
{"tool":...} 就干活——自己发明的假协议。在上面验证出的"绿灯",
对真实世界没有任何保证。上篇那个 1/1/0 的命中惨案,根子在这。
修正方式是把顺序反过来:先造两个说真话的真协议靶场(漏洞版+安全版),
再写真协议客户端,再写被动扫描器(16 项,全部只看协议层不碰业务),
最后编排器 + 强制脱敏。中间被双向自检抓出三次真 bug,包括
"扫不到被当成没问题"——这个失败模式差点又骗过我一次。
把"不越界"也写进了代码:目标必须带授权声明(self/ctf/bounty),
缺失直接拒绝执行。能扫真实 server 的工具,边界必须长在工具里。
还是零依赖,还是开源:github.com/535710934-ops/agent-audit-range