前言¶
DeepSeek Harness(DSH)採用「一切皆插件」的擴展方式:第三方插件可以註冊工具、改配置、在 Agent 會話裏被調用。習慣做法是安裝後再觀察行爲,或人工翻源碼;插件一多,很難在裝之前系統性地看「會寫哪些路徑、會不會起子進程、會不會往外 POST」。dsh-audit(Audit Console)面向同一類問題:在本地對目錄、壓縮包或 npm 規格做純文本靜態檢查並給出 S–D 等級,安裝後繼續記錄啓停、敏感工具調用和 token 估算,數據落在本機 $DSH_HOME/dsh-audit/,不上傳遙測。
維護者爲 Shark00I,源碼與說明見 GitHub:Shark00I/dsh-audit;社區目錄頁:skillhub.cn/plugins/Shark00I/dsh-audit(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。當前版本 1.0.0(README 標註 2026-10-28 首發),許可證 MIT。
這是什麼¶
dsh-audit 是 DSH 上的審計控制台:裝插件前先審目標包,裝完後看插件實際觸發了哪些敏感操作。審計過程對受檢對象只讀文本,不 import、不執行、不解包到磁盤;對已安裝插件的掃描不髮網絡請求;運行期監控不外發數據。dsh-audit 不會審計自身(掃描與監控均跳過本插件)。
環境要求(來自 README):
| 項 | 要求 |
|---|---|
| DSH | >= 0.2.1-rc.0(Desktop 與 dsh web) |
| Node | >= 20(可用 DSH 自帶 Node) |
| OS | Windows 10+ / macOS 12+ / Linux,純 ESM,無原生代碼 |
| 運行時依賴 | 無;@deepseek-ai/* 由宿主提供 |
核心功能¶
安裝前審計(Pre-install audit)¶
支持本地目錄、.tgz / .tar.gz、npm spec,或 https tarball。全程文本分析,不導入、不執行、不解包到磁盤。
S–D 分級與 0–100 分¶
每個第三方插件根據證據扣分後映射等級,分數只表示相對風險,不是安全證明。等級含義如下:
| 等級 | 分數 | 含義 | 建議 |
|---|---|---|---|
| S | 90–100 | 低風險 | 可安裝 |
| A | 75–89 | 可接受 | 可安裝,按建議收緊 |
| B | 60–74 | 需留意 | 先看證據 |
| C | 40–59 | 謹慎 | 重點看命令執行與外連主機 |
| D | 0–39 | 高風險 | 除非信任來源,否則勿裝 |
扣分項包括(節選):動態執行 −25、系統自啓動 −12、混淆 −12、child_process −10、安裝腳本 −10(若下載/執行再 −10)、對外 POST −10 等。README 與 locale 註釋、壓縮單行包等會跳過部分詞法規則(URL 仍會收集)。
運行期監控(Runtime monitor)¶
只記錄三類事實:
- 啓停:插件經
internal/status進入/離開 ACTIVE 及持續時間。 - 敏感調用:在
tools/pre-execute與tools/result上匹配刪除/寫入/運行/網絡/憑證等規則,以及plugin_manager、web_fetch/web_search目標等。 - Token 估算:按「四字符 ≈ 一 token」估算工具調用的參數與結果文本,歸屬到註冊該工具的插件。
事件環形緩衝約 600 條,約每 3 秒或每 80 條刷入 $DSH_HOME/dsh-audit/events.jsonl,5 MB 輪轉;空閒成本接近零。不輪詢、不盯文件。
設置面板¶
路徑:Settings → Audit。無需重啓;若入口未出現,dsh web 下可刷新頁面一次。各 Tab 職責:
| Tab | 內容 |
|---|---|
| Grades | 等級徽章、分數與證據芯片;可展開看數據去向、安裝腳本、自啓動、外發等 |
| Runtime | 運行中插件、各插件工具 token 估算、啓停/敏感調用/管理變更時間線 |
| Errors | 插件加載失敗、工具錯誤、會話錯誤 |
| Pre-install | 輸入目錄/壓縮包/npm spec,給出是否建議安裝及可關閉項 |
| Settings | 監控開關、敏感調用記錄、啓動掃描、排除列表、npm registry、清空 |
新裝插件約 2 秒後觸發重掃,面板約 6 秒輪詢;也可點 Rescan 立即刷新。不列入掃描/監控的包括:@deepseek-ai/* 官方包、僅通過臨時 --patch 加載且不在 profile package.json 中的項,以及設置中的排除列表。
Agent 工具與 HTTP API¶
Agent 側工具:
plugin_audit audit installed plugins (profile?, plugin?, detail?)
plugin_audit_preinstall audit a not-yet-installed target (target: dir/archive/npm spec/https tarball)
plugin_audit 返回 Markdown 報告(概覽 → 各插件等級/分數/證據 → 結論);detail: false 可省略 URL 列表。
同域 HTTP 接口(節選):
| 方法 | 路徑 | 用途 |
|---|---|---|
| GET | /dsh-audit/api/state |
版本、設置、最近掃描、事件、錯誤、運行中插件 |
| GET | /dsh-audit/api/events?limit=&type=&plugin= |
事件與錯誤 |
| POST | /dsh-audit/api/scan |
觸發掃描 |
| POST | /dsh-audit/api/preinstall |
{ target } 安裝前審計 |
| POST | /dsh-audit/api/settings |
{ patch } 更新設置 |
| POST | /dsh-audit/api/clear |
清空事件與錯誤 |
其他插件可通過 ctx.audit 註冊靜態規則、訂閱運行期事件、觸發 scan() / preinstall() 等(卸載插件時該 Cordis 服務一併移除)。
安裝與啓用¶
Desktop¶
在 Plugins → Add plugin 中選擇 dsh-audit 目錄或壓縮包,或執行:
dsh plugin --profile desktop add link:<absolute path to dsh-audit>
將 <absolute path to dsh-audit> 換成本機上的絕對路徑。
dsh web¶
dsh plugin --profile web add dsh-audit # 發佈到 npm 後可用
dsh plugin --profile web add link:<absolute path>
安裝後打開 Settings → Audit 即可使用。
典型用法¶
安裝前先審一個 npm 包或本地目錄:在 Settings → Audit 的 Pre-install Tab 輸入目標,或在 Agent 中調用 plugin_audit_preinstall,根據等級與證據決定是否安裝、安裝後應關閉哪些監控項。
已安裝插件定期看等級與時間線:Grades Tab 看各插件分數與證據;Runtime Tab 看敏感調用與 token 估算。需要報告時可讓 Agent 執行 plugin_audit,必要時設 detail: false 縮短輸出。
自定義規則或聯動(需改插件源碼並重啓 DSH):靜態規則在 lib/rules.js,打分在 lib/scan.js 的 scoreOf(),運行期分類在 lib/runtime.js 的 classifyCall();HMR 不監視 profile 外目錄。
適用場景與注意¶
適合:經常從社區或 npm 拉第三方 DSH 插件、希望在同一界面做「裝前靜態結論 + 裝後行爲時間線」的開發者。
務必知曉的邊界(README 原文要點):
- 安裝前審計看不到:嚴重混淆/壓縮代碼、運行時拼出的 URL、動態
import()、原生.node行爲、node_modules內依賴(不展開)。 - 低分不等於惡意,高分不等於安全;審計只讀文本,不替代人工讀源碼與許可證審查。
- 第三方插件與 dsh-audit 一樣,在當前 DSH 進程權限下運行;安裝任何插件前仍應檢查來源、LICENSE 與自身威脅模型。
- 數據僅存
$DSH_HOME/dsh-audit/(如settings.json、scan.json、events.jsonl、errors.jsonl),無遙測;唯一可能出網的是你在 Pre-install 裏顯式指定的 npm spec 或 https URL(默認走registry.npmjs.org或你在設置裏配置的 registry)。
結尾¶
dsh-audit 把「裝前純文本審計 + S–D 證據打分」和「裝後啓停/敏感調用/token 估算」收進 Settings → Audit 與 Agent/HTTP 接口,數據留在本機。若你要在 DSH 生態裏系統化管理第三方插件風險,可從目錄頁或 GitHub README 對照安裝命令與評分表使用。
- 目錄頁:https://www.skillhub.cn/plugins/Shark00I/dsh-audit
- GitHub:https://github.com/Shark00I/dsh-audit