2026-07-31T14:14:40.025Z
MCP 安全扫描器:证明干净扫描的覆盖范围
在信任干净的结果之前,先审核 MCP 扫描仪覆盖范围、执行安全性、清单新鲜度、实时会话和目的地证据。
一个 MCP安全扫描器 可以回答一个有价值的预检问题: 我发现了哪些代理组件,扫描器在其检查的版本中发现了哪些风险? 它无法回答整个操作问题: 连接的代理现在是否健康,其工具调用是否产生了预期的结果? 使用干净的扫描件作为一张有界收据。在信任它之前,请分别验证四件事: 1. 扫描仪涵盖了所有相关的配置和组件; 2. 运行扫描程序不会在沙箱之外执行不受信任的本地服务器; 3. 扫描的清单仍然是客户端将使用的清单; 4. 扫描后,实时会话和特定目的地结果检查通过。 这个边界很重要,因为扫描不一定是被动的。的文档Snyk 代理扫描 v0.5.15说扫描MCP配置启动 stdio 其中定义的命令,以便扫描仪可以检索工具描述。其默认交互流程首先请求同意。相同的文档将 CLI 输出字段和问题代码标记为实验性的。 因此,合理的默认设置是:广泛清查,在配置尚未受信任时在一次性环境中进行扫描,保留内容最小化的收据,并在更改代理的健康状态之前需要实时证据。 从承保收据开始,而不是一条绿线 扫描仪报告需要一个分母。如果项目级配置、扩展捆绑服务器或拒绝的本地命令从未进入扫描,“没有发现任何结果”就没有什么意义。 v0.5.15Agent Scan文档发布了两个有用的矩阵:按操作系统支持的代理和按配置范围划分的检测覆盖范围。范围矩阵明确区分系统、用户、项目/工作空间和扩展/插件位置。它还包含间隙。这比没有记录的普遍发现的承诺更健康,但这意味着操作员必须将扫描仪的覆盖范围与实际安装进行比较。 使用标识符和哈希值(而不是提示、凭据、工具参数或结果)构建收据: expectedConfigs 必须来自您的部署清单,而不是来自扫描仪自己的发现计数。否则,未发现的文件会减少分子和分母,但看起来仍然完整。 也固定扫描仪释放装置。这代理扫描 v0.5.15 发布,于 2026 年 7 月 16 日发布,包括平台二进制文件、校验和、签名的校验和文件以及SBOM。这些工件可让您准确记录执行的内容。他们不认证未来版本、本地重建的二进制文件或某个版本的安全性MCP服务器。 将拒绝的服务器视为库存缺口,而不是视为通过的服务器。下降可能是正确的安全决策。由于未检查服务器的工具和描述,因此得出的聚合结论仍然不完整。 将扫描仪执行视为特权测试 目前的MCP 安全最佳实践将本地服务器描述为可以以客户端权限运行的下载或编写的二进制文件。对于一键本地配置,指南要求在连接前显示确切的命令并获得明确的批准。它还建议沙箱和限制文件系统、网络和进程访问。 对启动已配置服务器的扫描程序也应同样小心。恶意或只是权限过高的命令不会变得无害,因为其父进程称为扫描程序。 对于未知配置: 仅将配置和所需的设备数据复制到一次性虚拟机或容器中; 删除生产凭证并用本地测试替身替换目的地; 拒绝网络访问,除非特定测试需要; 在可行的情况下将文件系统挂载为只读; 在同意之前审查确切的命令和参数; 记录哪些服务器被拒绝、超时或初始化失败。 不要通过在开发人员笔记本电脑或生产主机上盲目启用“运行每个配置的服务器”标志来解决非交互式自动化问题。扫描器可能需要这样的受控 CI 模式,但信任决策属于环境和清单,而不是标志的便利性。 还有一个数据边界问题。Agent Scan组件名称和描述可以发送到其分析服务的文件,同时它说MCP不存储或记录工具调用内容和结果。查看您选择的扫描仪的策略和实际配置。无内容的操作收据应保留问题代码、计数、版本、哈希值、覆盖范围差距和时间戳;默认情况下,它不应将敏感描述或服务器输出复制到运行状况仪表板中。 将扫描证据与实时健康状况分开 扫描仪主要在连接之前或连接前后工作。代理健康状况在此之后继续。 保留三张收据: 扫描收据: 库存覆盖范围、扫描仪版本、结果、安全执行和清单哈希。 实时会话接收: 成功初始化、协商协议和功能、当前授权、新工具发现以及有界请求/响应关联。 结果接收: 来自目的地的确定性证据,表明预期变更或可交付成果存在。 这种区别可以防止出现两种假绿状态。 首先,配置可以在扫描后更改。工具描述、命令参数、包版本、服务器 URL 或范围可能会发生变化,而旧报告仍保持绿色。比较扫描时和连接前的标准化清单哈希。不匹配意味着 STALE SCAN ;它并不意味着“可能安全”。 其次,扫描仪可以在运行时无法访问、未经授权或无法完成工具调用时通过。即使是一个成功的MCP tools/call 反应并不能证明外部效应。文件可能被写入错误的目录,API 可能接受但后来拒绝作业,或者消息可能永远不会到达其目的地。验证用户实际请求的工件或状态。 以下优先级为每个失败提供一个有限的下一个操作: 此示例中的 24 小时年龄是策略输入,而不是协议常量。频繁更改的开发配置可能需要更短的窗口。不可变的签名部署可以使用哈希匹配作为决定性的新鲜度检查。 领养前重播不方便的情况 我针对该分类器重放了八张无内容收据: 直接在主机上扫描的不可信命令; 服务器在发现期间拒绝; 关键发现; 扫描后舱单发生变化; 干净、最新的扫描,没有实时检查; 干净的扫描,然后是失败的实时会话; 成功返回工具但没有目的地证据; 当前扫描、通过实时会话和验证结果。 所有八个都产生了预期的状态。更重要的是,生产的仅扫描仪外壳 SCANNER PASS ONLY , 不是 HEALTHY BOUNDARY 。第一个健康的判决需要所有三个证据层。 这不是扫描仪检测精度的基准。我故意不执行第三方MCP主机上的配置:源文档表明这样做可以启动本地命令。要比较检测引擎,请为您关心的风险创建安全的代表性装置,在隔离的环境中运行每个扫描仪,并测量误报、误报、不支持的范围和输出稳定性。 该限制在操作上是有用的。它阻止团队将未经验证的扫描仪比较转变为安全声明。 使用扫描仪做出它可以支持的决策 采用MCP安全扫描器可以为您提供更好的组件库存、捕获相关配置或明显风险、暴露其覆盖范围限制,并且可以在您的安全边界内运行。当扫描本身需要您无法证明的权限或数据传输时,拒绝或包含它。 领养后: 1. 固定并验证扫描仪工件; 2. 定义扫描仪外部的预期配置清单; 3. 仅在一次性环境中扫描不受信任的本地命令; 4. 阻止关键发现和明确的覆盖范围差距; 5. 在连接时再次比较清单哈希; 6. 运行最少的实时初始化和授权检查; 7. 在宣布健康之前验证一个有代表性的目的地结果。 扫描仪并没有因为这条规则而减弱。它变得更加值得信赖,因为它的结论是基于它实际观察到的证据。 Sidewisp是一个人工智能代理健康平台,旨在使证据、新鲜度、不确定性和下一个安全行动在现有运行时可见。 Sidewisp 目前处于私密预览阶段。 生产MCP扫描、实时代理运行状况收集和恢复适配器今天尚未发货。