前言¶
在 DeepSeek Harness(DSH)裏裝第三方插件,很多人會在安裝前掃一遍源碼。但插件會發新版本:上一版可能只是讀文件,下一版多了一行 child_process.execSync,你本地早就不是當初審的那份代碼,卻很少會有人提醒你「該重新看一眼」。
現有安全類插件大多解決的是「裝之前」的問題。dsh-drift 面向的是升級之後:在你說「這版審過了」的那一刻存一份能力基線,升級後再對比,只報告比基線多出來的能力,不打分、不判惡意。下面介紹它做什麼、怎麼用,以及邊界在哪裏。
這是什麼¶
dsh-drift(維護者 Daphne999)是 DSH 社區目錄裏歸類爲 admin-security 的插件,當前版本 v0.1.0,許可證 MIT。
一句話定位:插件能力漂移檢測——存基線,升級後只報新增能力(安裝期腳本、shell/eval、外聯域名、憑據路徑、原生依賴等靜態畫像項)。
它不回答「新增是不是惡意」,也看不到運行時纔出現的行爲;只回答:相對你存的基線,這版多出了什麼。
核心功能¶
工作流程¶
審完某一版插件後,對該插件目錄執行 drift_baseline 寫入基線;中間若發生升級,再對同一目錄執行 drift_check,輸出僅包含新增項。能力減少、僅版本號變化都不報告。
drift_baseline { target: "某個插件目錄" } ← 審完存基線
↓(中間插件升級了)
drift_check { target: "同一個目錄" } ← 只報新增了什麼
README 中的輸出示例:
🔴 dsh-foo 1.2.0 → 1.3.0:新增了 3 項能力(high)
· 新增安裝期腳本 postinstall
· 新增能力 execSync
· 新增憑據路徑訪問 .ssh
三個工具¶
| 工具 | 作用 |
|---|---|
drift_baseline { target } |
存當前能力基線 |
drift_check { target } |
對比基線,只報新增 |
drift_list {} |
列出已存基線 |
基線文件路徑:~/.dsh/drift/baselines/<插件名>.json。
設計原則(與嚴重度)¶
- 只報新增:減少能力視爲變安全,不列入告警;版本變化 alone 不報。
- 畫像穩定:相同代碼兩次掃描結果逐字節一致,避免漂移檢測誤報。
- 不評分:只陳述「多了什麼」,避免「分數差不多就放行」的錯覺。
新增項的嚴重度(摘自 README):
| 新增 | 級別 | 理由 |
|---|---|---|
| 安裝期腳本 | high | 跑在安裝那一刻,最容易藏東西 |
child_process / eval / vm |
high | 能把代碼變成命令 |
憑據路徑(.ssh / .env / api_key) |
high | 直接對着祕密去 |
原生依賴(.node) |
medium | 二進制裏看不清 |
| 外聯域名 | medium | 數據可能出去 |
能力邊界¶
- 只看靜態代碼:動態拼 URL、讀配置再決定連哪等情況抓不到。
- 不判斷惡意:新增能力不等於惡意,目的是提示「該重新審一遍」。
- 畫像粒度:按 API 名與域名歸類,不到調用級。
插件爲 host-only、零依賴 bundle,通過 cordis.patch.yml 注入宿主;裝完後重啓 DSH 宿主,會話中會出現 drift_* 三個工具。
安裝與啓用¶
官方 README 給出的安裝方式如下(請將 <profile> 換成你的 DSH profile):
# 市場頁搜 dsh-drift 安裝,或從源碼 link:
git clone https://github.com/Daphne999/dsh-drift.git
dsh plugin --profile <profile> add link:"$PWD/dsh-drift"
也可在 DSH 插件市場目錄頁檢索並安裝:https://www.skillhub.cn/plugins/Daphne999/dsh-drift
注意:DSH 插件以當前 dsh 進程的權限運行。無論通過市場還是 link 安裝,安裝前建議自行查看倉庫源碼與許可證,確認符合你的安全策略。
裝完後需重啓宿主才能在會話裏使用 drift_baseline、drift_check、drift_list。
典型用法¶
下面示例中的 target 爲插件所在目錄路徑(README 使用 Windows 路徑示意,Linux/macOS 換成你的實際路徑即可)。
第一步:審完當前版本後存基線
drift_baseline { target: "D:/ds工作區/dsh-foo" }
第二步:插件升級後只做漂移檢查
drift_check { target: "D:/ds工作區/dsh-foo" }
查看已記錄的基線列表
drift_list {}
若輸出提示新增了 high 級能力(例如 postinstall、execSync、.ssh 路徑訪問),README 的建議是:新增了能力就該重新審一遍——升級不等於安全。
維護者在 2026-11-11 對 v0.1.0 跑過 node test/drift.test.mjs(14 條斷言,14/14 通過);README 註明驗證主要在 Windows 上完成,基線爲純 JSON,跨平臺理論可行但未充分實測。
適用場景與注意¶
適合誰:已經會裝第三方 DSH 插件、希望在版本升級時有可重複對照的人,而不是隻在首次安裝時掃一次。
不適合替代什麼:不能替代人工 code review,也不能替代運行時監控;它不做惡意判定。
生態背景:DSH 的理念是「一切皆插件」;社區插件目錄(SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係,本文所述安裝與市場檢索均指該社區生態內的用法。
結尾¶
dsh-drift 用「基線 + 只報新增」把升級後的能力變化說清楚,補的是「裝時審過、升版後忘了再審」這一環。需要目錄介紹可看 SkillHub 插件頁,源碼與完整說明見 GitHub:Daphne999/dsh-drift。