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
羽毛球分组比赛记分
小程序二维码

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

小夜