dsh-agent-scope:审 Agent 工具、文件与网络权限是否声明、是否过宽

前言

在 DeepSeek Harness(DSH)里给 Agent 接上 MCP,配置文件往往很短:几个 server 名、一条 npx 命令、偶尔再加 allowedTools。表面看已经「配好了」,但文件根路径若是 /、工具列表若是 ["*"]、网络若是 allowedDomains: "*",Agent 一旦被提示注入牵着走,能做的事就是你写进配置里的全部能力——OWASP 把这类问题归在 LLM06 Excessive Agency。

手工翻 mcp.json、settings.json 容易漏项,也难对照最小权限或 MCP 文档里的目录限制建议。dsh-agent-scope(npm 包名 @deepwhale-cn/dsh-agent-scope,维护者 feely0208,分类 admin-security)只做一件事:扫描常见客户端里的 Agent/MCP 配置,查工具权限、文件路径、网络范围有没有显式声明,以及是否出现明显过宽的写法。

这是什么

一句话:Agent 权限边界检查——查 agent 的工具/文件/网络权限有没有声明、是不是过宽。

仓库:feely0208/dsh-agent-scope。插件目录页:skillhub.cn/plugins/feely0208/dsh-agent-scope。当前 package 版本为 0.1.1,许可证 MIT;运行要求 Node.js >= 18,DSH >= 0.1.0-rc.6。

它不读 Agent 业务代码,只审配置;也不判断「权限给得是否刚好够用」,只标「没声明」和「一眼过宽」的模式。

不装插件时常见的盲区

README 里举的典型配置如下:

"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/"] },
"everything": { "command": "npx", "args": ["-y", "mcp-everything"], "allowedTools": ["*"] }

对应的风险可以概括为:

  1. 文件访问路径是 / → 读写范围覆盖整机文件(含 ~/.ssh、~/.aws 等)。
  2. allowedTools: ["*"] → 可调用该 MCP 暴露的全部工具。
  3. 若出现 allowedDomains: "*" → 被注入后数据可发往任意地址。

文档强调:没有声明通常等于默认全开,用户看到的仍可能是「很干净」的 JSON,意识不到爆炸半径。

它查什么

规则按严重级别归类(依据在插件 --list-rules 与文档截图中可查),核心项包括:

级别 检查内容 依据(文档表述)
高 工具权限使用通配符 * 最小权限(NIST SP 800-53 AC-6)
高 文件访问为 /、~ 或整个用户目录 MCP 文档与目录限制建议
中 网络访问无限制 OWASP LLM06 Excessive Agency
中 配置中找不到任何权限相关声明 最小权限;权限应显式声明

关键词方向:Agent 权限、工具权限、权限边界、最小权限、MCP 权限、agent scope、least privilege、MCP security、excessive agency。

安装与启用

在 DSH Web 配置侧添加插件:

dsh plugin --profile web add @deepwhale-cn/dsh-agent-scope

不经过 DSH 包管理、仅作 CLI 时:

npx @deepwhale-cn/dsh-agent-scope

插件以当前 dsh 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证,确认符合你的合规要求。

典型用法

安装后可用二进制 dsh-agent-scope(见 package.json 的 bin 字段):

dsh-agent-scope --demo
dsh-agent-scope --list-rules
dsh-agent-scope --html r.html

说明:

  1. --demo:演示模式,便于在不碰本机真实配置时看输出形态(官方 README 提供演示截图)。
  2. --list-rules:列出规则及依据,便于和团队规范对齐。
  3. --html r.html:将检查结果导出为 HTML 报告(README 中有报告示例图)。

工具会在常见路径中查找 MCP/客户端配置(如 mcp.json、.mcp.json、settings.json、claude_desktop_config.json 等);不同客户端路径不一致,以插件实际扫描逻辑为准。

边界与同系列分工

使用前建议把「能做什么、不能做什么」说清楚:

  • 只审配置,不审 agent 实现——代码里如何消费这些权限,本工具看不到。
  • 不判断权限是否「给够了」——通配符、根路径等明显过宽会标出;权限偏大但未用通配符时需人工评审。
  • 沙箱是否真生效需运行时验证,不在本插件范围内。

与同维护者其它插件的分工(README 原文):

  • dsh-mcp-audit:查 MCP 服务来源(未锁版本、明文端点等)。
  • dsh-least-privilege:查容器/云/Web 侧权限;dsh-agent-scope 专注 Agent/MCP 配置里的权限边界。

适用谁、怎么用进流程

适合:已经在 DSH 或其它客户端里接 MCP、需要上线前或改配置后做一次「权限声明与过宽模式」扫雷的开发者与安全评审。

建议做法:改 MCP 配置 → 跑 dsh-agent-scope(或导出 HTML 留档)→ 对高危项先收窄路径与白名单 → 再与 dsh-mcp-audit 等供应链/来源类检查配合。DSH 社区插件目录独立于 DeepSeek/幻方官方应用商店,按需从目录页或 npm 安装即可。

更多说明与 issue:GitHub 仓库;目录页:skillhub.cn/plugins/feely0208/dsh-agent-scope。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye