dsh-least-privilege:在仓库里扫「明显过宽」的权限配置

前言

在 DSH(DeepSeek Harness)里做应用或 Agent 编排时,配置往往分散在 Docker Compose、IAM 策略 JSON、OAuth 申请和 CORS 设置里。密钥扫描、依赖审计能发现「漏了什么」,却很难回答「给出去的权限是不是比实际需要大」。权限过宽通常没有告警:服务照常跑,直到某次漏洞被利用时,才发现容器几乎等同宿主机、或 IAM 通配符放大了横向移动面。

下面介绍社区插件 @deepwhale-cn/dsh-least-privilege(仓库 feely0208/dsh-least-privilege),维护者 feely0208,分类为 admin-security。它在代码与配置字面量层面做最小权限检查,专门抓容器 root / privileged、IAM 通配、CORS 全开、令牌申请 admin 等「一眼就能判为过宽」的写法。

这是什么

一句话:对当前工作区内的配置文件做静态扫描,标记高风险与中风险的权限过宽模式。

它与同系列的 dsh-data-scan 分工不同:后者查敏感数据暴露,本插件查访问数据的权限是否收得太松。npm 包名为 @deepwhale-cn/dsh-least-privilege,当前资料中的版本为 0.1.1,许可证 MIT;运行要求 Node.js >= 18,DSH >= 0.1.0-rc.6。

它查什么

README 将规则按严重程度分为两档:

级别 内容
高 容器以 root 运行或使用 --privileged;IAM 策略中出现 Action: * 一类通配
中 CORS 允许所有来源;令牌申请 admin 或全量 scope

文档用 Compose 里遗留的 privileged: true 举例:需求消失后配置未删,漏洞进容器时权限会从「应用进程」放大到接近宿主机。插件针对的是这类无症状、高后果的配置残留。

安装与启用

在 DSH 中接入(web profile):

dsh plugin --profile web add @deepwhale-cn/dsh-least-privilege

不经过 DSH、仅作 CLI 使用时:

npx @deepwhale-cn/dsh-least-privilege

安装前建议自行查看 GitHub 仓库 源码与 MIT 许可证。插件随 DSH 或 npx 以当前进程权限读取项目文件,应对准你要扫描的目录与信任边界。

典型用法

安装后可调用二进制 dsh-least-privilege:

1、演示模式,查看示例输出与规则展示:

dsh-least-privilege --demo

2、列出内置规则及依据:

dsh-least-privilege --list-rules

3、对扫描结果生成 HTML 报告(示例文件名为 r.html):

dsh-least-privilege --html r.html

官方 README 提供了检查报告、演示模式输出、规则说明的截图,路径在 deepwhale.org.cn 的 plugin-assets 下,便于对照 CLI 输出格式。

边界与适用场景

适合谁:需要在 CI、改配置前或 DSH 工作流里做轻量权限体检的团队;与深鲸网安守护系列里「权限与应急」类插件配套使用时,可补「访问控制」这一环。

务必知道的限制(来自 README「边界」):

  • 只查「明显过宽」的写法;权限偏大但未用通配符等情况需人工评审。
  • 不解析云厂商侧实际生效策略(继承、条件、权限边界等),仅看仓库里的字面配置。
  • 多阶段 Dockerfile 中 builder 阶段的 USER root 可能无害,需自行判断。

DSH 社区插件目录见 dsh-plugin.org 与国内 SkillHub 目录页。生态上 DSH 强调「一切皆插件」;目录站点为社区维护,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-least-privilege 把最小权限从原则落成可执行的仓库扫描:高风险的容器特权与 IAM 通配、中风险的 CORS 与令牌 scope,都能在合并前被点名。它不能替代云控制台里的策略仿真,但能拦住最常见的「配置忘改」类放大器。

  • 目录页:https://www.skillhub.cn/plugins/feely0208/dsh-least-privilege
  • GitHub:https://github.com/feely0208/dsh-least-privilege
羽毛球分组比赛记分
小程序二维码

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

小夜