DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

Daphne999 /

Daphne999/dsh-drift

Verified

Capability drift detection for DSH plugins: store a baseline, then report only what an upgrade NEWLY gained. | 插件能力漂移检测:存基线,升级后只报新增能力。

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@e63c9d8f

dsh-drift

装之前扫一次不够。升级之后,它可能悄悄多出 shell、外联、凭据访问。

问题

现有安全插件几乎都是「装之前扫一次」。但插件会升级:

v1.2.0  只读文件
v1.3.0  多了一行 child_process.execSync

你早就不是当初审的那份代码了,而没有人提醒你重新审一遍。

它做什么

drift_baseline { target: "某个插件目录" }   ← 审完存基线
        ↓(中间插件升级了)
drift_check    { target: "同一个目录" }     ← 只报新增了什么

输出示例:

🔴 dsh-foo 1.2.0 → 1.3.0:新增了 3 项能力(high)
   · 新增安装期脚本 postinstall
   · 新增能力 execSync
   · 新增凭据路径访问 .ssh

建议:新增了能力就该重新审一遍——升级不等于安全。

三个设计原则

  1. 只报新增。能力减少说明变安全了;版本号变化只是发布动作。都不报。
  2. 画像稳定。同样的代码跑两次,画像逐字节一致——否则漂移检测会全是误报。
  3. 不评分。评分会诱导"这次分数差不多就放行";这里只回答一个问题:它多了什么。

严重度怎么定

新增 级别 理由
安装期脚本 high 跑在安装那一刻,最容易藏东西
child_process / eval / vm high 能把代码变成命令
凭据路径(.ssh / .env / api_key) high 直接对着秘密去
原生依赖(.node) medium 二进制里看不清
外联域名 medium 数据可能出去

三个工具

工具 作用
drift_baseline { target } 存当前能力基线
drift_check { target } 对比基线,只报新增
drift_list {} 列出已存基线

基线存在 ~/.dsh/drift/baselines/<插件名>.json。

能力边界

  • 只看静态代码:运行时才出现的行为(动态拼 URL、读配置决定连哪)抓不到
  • 不判断"恶意":新增能力不等于恶意,它只是告诉你"该重新看一眼"
  • 画像有粒度:按 API 名与域名归类,不做到调用级

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit e63c9d8f4f8f

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout