GitHub Plugin Security Review Squad:DSH 下 GitHub 插件的靜態安全審查預設

前言

在 DeepSeek Harness(DSH)裏從 GitHub 裝插件,常見做法是信任倉庫說明或掃一眼目錄。一旦插件帶惡意安裝腳本、依賴投毒或倉庫內的提示詞注入,在你本機「試裝」之前就可能已經越界。人工審計成本高,全自動跑 npm install 又等於把風險引進來。

下面介紹的是社區維護者 jiejiushijiehaohao-creator 發佈的 GitHub Plugin Security Review Squad(倉庫 deepseek-preset-github-plugin-security-review,SkillHub 分類 admin-security)。它是一個 DSH agent preset:對已從 GitHub 取得、落在本地的插件源碼做靜態審查,不安裝、不執行被審倉庫裏的任何代碼。項目自述爲 AI 輔助搭建的探索性預設,不能代替人工審計;維護者也明確建議勿在生產環境或含敏感憑證的環境使用。當前 GitHub 星標爲 0,許可證 MIT(package.json 版本 1.0.0)。

這是什麼

一句話:「隊長 + 偵察員 + 審計員」三角色流水線,專門審「下載到本地的 GitHub 插件目錄或 ZIP」。

角色 工具名 職責
Captain(主智能體) 預設掛載的工具 + 宿主側工具 調度與彙總,不下場做取證
Recon scout(偵察員) recon_scout 收集樹結構、package.json、腳本、危險模式命中、依賴列表等原始事實,不做結論
Security auditor(審計員) security_auditor 按 GATE 1 背景 / GATE 2 腳本與代碼 / GATE 3 依賴做判斷;無終端,無法執行任何命令

流程固定爲:captain → recon_scout(前臺)→ captain 原樣 relay → security_auditor(前臺)→ captain 彙總。

偵察員與審計員由 @deepseek-ai/dsh-tool-subagent 實例化,子進程創建時通過 ctx.tools.restrict() 做硬工具白名單:偵察員只有 pwsh、bash、job_output、job_list、job_kill;審計員只有 read、glob、grep、web_search、web_fetch。隊長不受同等隔離,預設內 R8 禁止用會繞過流水線的宿主工具(如 Agent Teams 的 spawn_teammate 等),但那是提示層規則,不是加載器級鎖死——使用時需心裏有數。

倉庫同時是一個 DSH bundle:package.json 裏 dsh.bundle.patch 指向 preset.patch.yml,可從 GitHub 一鍵安裝,無需手抄 YAML。

核心功能

靜態 intake,禁止 clone 與執行

審查輸入只能是本地已解壓目錄或本地 ZIP(偵察員可解壓到臨時目錄)。流水線禁止 git clone、任意 git 子命令與 Git hook。README 說明:不能直接把 GitHub 網頁 URL 當參數;需要 ZIP 時可在有網絡的 shell 裏 curl -L -o 再解壓,無網環境應事先把 ZIP 下載到本地。

雙 Agent 分工與輸出格式

偵察員只輸出原始數據(目錄樹、腳本文本、模式命中等),不得給出「安全 / 不安全」裁決。審計員輸出 GATE 1/2/3 報告。隊長最終給出結構化結論,例如:

  • Conclusion:safe / suspicious / high risk
  • Risk type:證據型 / 策略紅線型 / none
  • Recommendation:install / install with conditions / do not install
  • Key red flags(含 file:line 或鏈接)
  • Needs human review、Coverage and blind spots
  • Full report(審計員全文)

防上下文膨脹與寫盤邊界

README 將控制分爲三層:loader(工具白名單)、prompt(角色規則)、mechanism(自動裁剪)。例如通過 tool-result-pruner(6000 字符)、隊長/偵察員輸出上限、約 250 行報告 cap 等限制「讀爆上下文」。偵察員不得改寫被審倉庫;產物只能落在 $env:TEMP\dsh-recon\(README 還記錄了在無寫 workspace、無 git、shell 無出網等環境下的實測約束——這些不作爲安全控制依賴,規則寫在 persona 裏)。

紅線與門禁(摘錄)

完整條目見倉庫 README「Red-line map」。已抓取資料中可見的部分包括:禁止 npm install / npm run / yarn 等安裝鉤子;僅靜態閱讀、不執行下載代碼;不讀取被審目錄外的敏感文件(如 .ssh、.npmrc、.env);倉庫文本視爲數據而非指令;無 file:line 證據不得下結論;不得憑記憶斷言 CVE 等。驗證清單還要求:對不存在路徑偵察員應 STATUS: BLOCKED 且不調用審計員;在目標裏放惡意 AGENTS.md 時偵察員應記爲可疑信號而非服從。

倉庫 CI 提供 validate.yml;本地可對有效 checkout 運行 node scripts/validate.mjs,期望退出碼 0。

安裝與啓用

預設 id 爲 gh-plugin-security-review。兩種安裝方式只能選一種,否則註冊表會因重複 id 報錯(Duplicate agent preset)。

路線 A:從 GitHub 安裝(推薦,目標機器需有 git)

DSH 安裝器支持 github:owner/repo 等 git spec。GUI:DSH → Plugins → Install,填入:

github:jiejiushijiehaohao-creator/deepseek-preset-github-plugin-security-review

CLI(dsh 在 PATH 上):

dsh plugin --profile desktop add github:jiejiushijiehaohao-creator/deepseek-preset-github-plugin-security-review

也可把本倉庫目錄的絕對路徑作爲 install spec。安裝完成後,在新會話的 preset 選擇器裏選 GitHub Plugin Security Review Squad(默認仍是 cordis,需按會話選擇或改默認)。

路線 B:手動 patch profile

目標文件:<home>/.dsh/profiles/<profile>/cordis.patch.yml(Desktop 常見爲 %USERPROFILE%\.dsh\profiles\desktop\cordis.patch.yml)。

  1. 備份該文件。
  2. 將倉庫 preset.patch.yml 中從 - insert: 起的內容追加到 cordis.patch.yml 末尾(頂層 YAML 數組,- insert: 頂格爲新項)。
  3. 重啓 DSH → 新會話 → 選擇預設。

卸載須與安裝方式對應,避免重複註冊。

典型用法

在新會話中選中本預設後,對隊長說明要審查的路徑(Windows 風格示例來自 README,Linux 下改爲對應路徑即可):

review /path/to/some-plugin          ← 已解壓目錄
review /path/to/some-plugin.zip      ← 本地 ZIP

經上面的步驟,你會先看到偵察員原始取證,再看到審計員 GATE 報告,最後是隊長一行建議與完整字段化 verdict。

適用場景與注意

適合誰:在 DSH 生態裏習慣從 GitHub 拉社區插件、希望在不執行目標代碼的前提下做 supply-chain 向靜態把關的開發者與管理員。

務必知曉:

  • 預設運行在當前 DSH 進程權限下;隊長仍可能看到宿主側額外工具,依賴 prompt 自律與操作習慣。
  • 審查不能替代專業人工審計或正式滲透測試;SkillHub 簡介與 README 均強調實驗性質與能力邊界。
  • 安裝任何插件前仍應自行閱讀源碼、許可證與維護者說明;本預設給出的是證據導向的建議,不是安裝許可。
  • 兩種安裝路線勿混用;無網環境請提前準備本地 ZIP,勿指望流水線替你 clone 遠程倉庫。

DSH 社區目錄(如 SkillHub)與 DeepSeek / 幻方無官方從屬關係,本文介紹的是社區插件,不是「官方應用商店」內置能力。

鏈接

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/jiejiushijiehaohao-creator/deepseek-preset-github-plugin-security-review
  • GitHub 倉庫:https://github.com/jiejiushijiehaohao-creator/deepseek-preset-github-plugin-security-review

若你在紅線設計、依賴連坐或 YAML 校驗上有改進想法,可在倉庫 Issue 與維護者交流;使用前請以 README 與 preset.patch.yml 爲準覈對行爲。

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

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

小夜