鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册

dsh-plugin-sentinel

插件安装前静态安全审计:生命周期脚本、动态执行、凭据外传组合特征与 patch 层风险;零依赖,tar 包全程内存解析不落盘。

安全权限
访问 GitHub
文档README

dsh-plugin-sentinel 🔒

Awesome DSH Plugin

DSH 插件安检机 — 给 DeepSeek Harness 装一台插件安检机:在安装任何社区插件之前做纯静态安全审计,输出按严重度排序的结构化风险报告。

官方文档对 GitHub 安装方式的警告原话:prepare 脚本授权是 "permission to execute the package's code on your machine at install time, outside any sandbox the agent runs under"。DSH 生态 24 小时收录 288+ 社区插件——这台安检机就是为了让"先过安检再安装"成为一句话的事。

安装

▼
sh
复制代码
dsh plugin --profile <你的profile> add github:<你的fork>/dsh-plugin-sentinel # 或本地安装 dsh plugin --profile <你的profile> add ./dsh-plugin-sentinel

装好后对 DSH 说:

  • 「帮我装 github:xxx/yyy 这个插件」→ 模型会先调 audit_plugin 过安检,block 则拒绝安装并说明风险
  • 「巡检我当前 profile 装过的插件安不安全」→ audit_installed

提供的工具

工具用途
audit_plugin审计一个插件目录或 .tgz 压缩包:安装期脚本、动态执行、凭据读取、网络外传、patch 层 !!js 表达式、静默禁用安全行、路径穿越、软链接…
audit_installed巡检 profile 内全部社区 bundle(官方 @deepseek-ai/* 内置包标记 trusted 跳过)

结论分级:pass(通过)/ review(需人工审查)/ block(建议拒绝)。风险分权重 critical=10 / high=5 / medium=2 / low=1。

安全设计:安检机自身的攻击面为零

决策理由
零 npm 依赖、零安装脚本、零构建package.json 没有 scripts、没有 dependencies;从 GitHub 安装不需要 pnpm allowBuilds 授权,不存在安装期执行
原生 JSON-Schema ToolDefinition 注册(MCP 工具同款路径)全部源码只 import Node 内置模块,不依赖任何运行时包
纯 JS tar 解析(node:zlib + 手写 ustar/pax/GNU-longname).tgz 审计全程在内存完成,被审计的恶意代码不落盘;全程不用 child_process
词法剥离扫描:先剥注释/字符串再匹配危险 API;模板 ${} 插值内的代码保留字符串和注释里写着 eval( 不算证据(防误报);藏在插值里的代码跑不掉(防漏报)
组合规则process.env 读取 × 网络出站 = 凭据外传特征(critical);编码载荷 × 动态执行(critical);shell × 网络(critical)

审计覆盖(v0.1 规则表)

  • package.json:安装期 lifecycle 脚本(critical)、伪装插件、运行时依赖
  • JS/TS 源码:child_process、eval/new Function/vm、网络出站、process.env、文件写入、动态 require、homedir 探测
  • 字符串字面量:敏感路径(.ssh/.env/云凭据/DSH credentials)、外部 URL、长编码载荷(混淆特征)
  • cordis.patch.yml:!!js 配置表达式(加载期宿主执行,critical)、disabled: true 静默禁用 sandbox/approval/guard 行(critical)、重配置安全行(high)、伪装安全行 id(high)
  • tarball 结构:路径穿越(critical)、软链接(high)、异常档案

局限(诚实地写)

  • 词法扫描器不是完整 AST——针对蓄意构造的规避手法(如把代码藏进插值内的伪注释)可能漏报;它面向捕获真实世界的常见恶意模式,不承诺对抗性完备。规则表在 src/rules.js,欢迎补充。
  • review/block 是"值得人看一眼/建议拒绝",最终决定权在人。

开发

▼
sh
复制代码
node --test test/*.test.js # 27 个用例:扫描器/规则/解析器/tar/注册契约/端到端

MIT License.

安全权限

快捷安装

复制到终端去安装插件

dshplugin--profilewebaddgithub:BotonJ/dsh-plugin-sentinel

温馨提示

装插件等于在本机跑第三方代码,权限与你相同,能读文件、用凭据、访问网络,工具审批管不到。请只装可信来源,并尽量锁定 commit。

站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题
dsh 插件推荐
cc-safety-net
执行前守卫,在工具调用运行前拦截破坏性 Git 与文件系统命令,以及对 SSH 密钥、.env 等机密文件的访问。
dsh-workspace-write-plus
增加工作区修改++权限档,文件工具仍锁在工作区,可用通配符放行 Git Bash 等程序以跳过 Windows 进程沙箱。
user-management
用户管理:给 dsh web 加登录门禁,未登录访问弹登录/注册页,首个注册者自动成为管理员;管理员可管理用户/角色,带登录与访问审计。
dsh-security-guard
DSH 插件安全卫士:28 条规则静态扫描、风险评分、白名单/黑名单、本地 Web 仪表盘与 DSH 内风险弹窗。
dsh-route-fence-linter
审计 profile 内所有插件 HTTP 路由的浏览器信任围栏:插件路由在 Web 服务器的最长前缀匹配中优先,因此缺少围栏的路由会被静默暴露;逐条给出文件与行号级别的证据。