前言¶
在 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)。
- 备份该文件。
- 将仓库
preset.patch.yml中从- insert:起的内容追加到cordis.patch.yml末尾(顶层 YAML 数组,- insert:顶格为新项)。 - 重启 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 为准核对行为。