前言¶
在 DSH 的插件機制裏,動態插件經常通過 cordis_define 和 cordis_run 安裝或運行。對插件源碼做靜態審查、給出明確判定、保留操作者審批與白名單入口,是處理動態插件時的常見需求。dsh-plugin-security-review 提供這樣一個守衛:它審查動態插件源碼,按安全優先策略處理安裝或運行,並提供 plugin_security_review / plugin_security_audit 兩個工具。
這是什麼¶
dsh-plugin-security-review 是 ShanHaiFish 維護的 DSH 插件安裝安全審查守衛,許可證爲 MIT。
它的定位是圍繞 cordis_define / cordis_run 的動態插件源碼做靜態安全審查,按 BLOCK / ASK / WARN / ALLOW 處理安裝或運行,並提供審查、審計、審批彈窗和本地白名單能力。靜態 bundle 形態隨 profile 層棧自動加載。
核心功能¶
- 對
cordis_define/cordis_run安裝或運行的動態插件源碼做靜態安全審查。 - 按
BLOCK/ASK/WARN/ALLOW判定處理安裝或運行。 - 提供
plugin_security_review/plugin_security_audit審查工具。 - 靜態 bundle 形態隨 profile 層棧自動加載。
- 支持瀏覽器審批彈窗:同意 / 同意+白名單 / 拒絕。
- 支持
trusted-local白名單,按prefixes/pluginIds/fingerprints直接放行。 - 人工批准
ASK後持久化代碼指紋,並在後續命中相同指紋時自動放行。
安裝與啓用¶
推薦靜態 bundle 形態:
dsh plugin --profile web add dsh-plugin-security-review
未發佈或離線調試時,可以使用 file: 本地安裝:
dsh plugin --profile web add file:/path/to/dsh-plugin-security-review
重啓 dsh web 後,調用無參數的 plugin_security_audit,應顯示:
守衛: 運行中 (v1.8.1)
典型用法¶
審批彈窗¶
靜態 bundle 形態支持瀏覽器審批彈窗,選項爲:
- 同意
- 同意+白名單
- 拒絕
人工批准的 ASK 成功後,會持久化代碼指紋;後續命中相同指紋時自動放行。代碼變更後,原指紋批准失效。
trusted-local 白名單¶
本地白名單文件位於:
<DSH_HOME>/storages/plugin-security-gate/trusted-local.json
可配置以下字段:
{
"prefixes": ["<prefix>"],
"pluginIds": ["<pluginId>"],
"fingerprints": ["<sha256>"]
}
命中 trusted-local 白名單時,對應 cordis_define / cordis_run 會直接放行。
回退官方審批 UI¶
如果希望 ASK 回退官方審批 UI,可配置:
<DSH_HOME>/storages/plugin-security-gate/config.json
內容爲:
{"askMode":"seam"}
能力聲明¶
在 cordis_define 的 purpose 末尾追加能力聲明:
CAPABILITIES: spawn,network,env,fs
動態插件回退形態¶
動態回退形態用於沒有 bundle 能力的 profile,基本步驟是:
- 讀取
package-source.js與manifest.json。 - 調用
cordis_define。 - 調用
cordis_run激活。 - 調用
plugin_security_audit驗證。
動態回退形態不跨 DSH 進程存續,重啓後需要重新加載;該形態不提供瀏覽器審批彈窗。
適用場景與注意¶
適合以下場景:
- 需要在 DSH 中安裝或運行動態插件。
- 需要對
cordis_define/cordis_run的插件源碼做靜態審查。 - 需要保留人工審批、代碼指紋放行和本地白名單入口。
使用注意:
- 按 DSH 插件安裝機制,插件以當前
dsh進程權限運行;安裝前應先檢查源碼與許可證。 - 源碼不可檢索時,行爲爲 fail-closed,即
ask。 trusted-local白名單用於對抗未經操作者確認的高危安裝,不是對抗 agent 自身的安全邊界。- 在 full-access 部署中,agent 也能寫
trusted-local文件。 - 將守衛自身 id/前綴加入
trusted-local白名單,會解除守衛自我保護。 trusted-local白名單寫入失敗只記日誌,不影響代碼指紋批准;讀取側仍保持 fail-closed。peerDependencies要求:@deepseek-ai/dsh-tools:^0.1.1-rc.2@deepseek-ai/dsh-cordis-host-runner:^0.1.1-rc.2- 社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不應寫成官方應用商店。
結尾¶
dsh-plugin-security-review 的價值在於把動態插件安裝前的一次靜態審查、一次明確判定、一次人工審批和一組白名單規則放到同一條路徑裏。它適合 DSH / 智能體開發者在需要管理動態插件安裝與運行時使用。
GitHub 倉庫:
https://github.com/ShanHaiFish/dsh-plugin-security-review
社區目錄頁:已覈實資料未給出具體 URL。