前言¶
DeepSeek Harness (DSH) 生態允許通過社區插件擴展功能。官方文檔對 GitHub 安裝方式的警告指出:prepare 腳本擁有在安裝時執行代碼的權限,且不受宿主沙盒限制。dsh-plugin-sentinel 是一款靜態預安裝審計工具,旨在解決“先過安檢再安裝”的需求。
是什麼¶
這是一個零依賴、內存中解析 tar 包的靜態安檢工具。它由 BotonJ 維護,通過組合規則檢測插件包中的潛在風險,並在安裝前輸出結構化的風險報告。
核心功能¶
該插件具備以下特性:
- 零依賴、零安裝腳本、零構建:
package.json中無 scripts 和 dependencies,從 GitHub 安裝無需額外授權,不存在安裝期執行風險。 - 原生 JSON-Schema ToolDefinition 註冊:全部源碼僅依賴 Node 內置模塊,不依賴任何運行時包。
- 純 JS tar 解析:利用
node:zlib和手寫的 ustar/pax/GNU-longname 解析器,在內存中完成對.tgz文件的審計,惡意代碼不落盤。 - 詞法剝離掃描:先剝離註釋和字符串字面量再匹配危險 API,防止誤報;保留模板插值內的代碼檢測,防止漏報。
- 組合規則檢測:例如
process.env讀取 × 網絡出站 = 憑據外傳特徵。
安裝與啓用¶
通過以下命令將插件添加到指定的 profile:
dsh plugin --profile <你的profile> add github:<你的fork>/dsh-plugin-sentinel
典型用法¶
安裝完成後,可以通過以下工具與模型交互:
- 審計特定插件:輸入“幫我裝 github:xxx/yyy 這個插件”,模型會調用
audit_plugin進行安檢。若風險等級爲block,安裝將被拒絕。 - 審計已安裝插件:輸入“巡檢我當前 profile 裝過的插件安不安全”,模型會調用
audit_installed檢查所有社區 bundle。
審計結果按嚴重度排序,分級標準如下:
- pass:通過
- review:需人工審查
- block:建議拒絕
權重:critical=10 / high=5 / medium=2 / low=1。
審計覆蓋範圍¶
插件會對以下內容進行檢查:
- package.json:檢測安裝期生命週期腳本(critical)、僞裝插件、運行時依賴。
- JS/TS 源碼:檢測
child_process、eval/new Function/vm、網絡出站、process.env讀取、文件寫入、動態 require、homedir 探測。 - 字符串字面量:檢測敏感路徑(
.ssh、.env)、雲憑據、外部 URL、長編碼載荷(混淆特徵)。 - cordis.patch.yml:檢測
!!js表達式(加載期宿主執行,critical)、disabled: true靜默禁用安全行(critical)、重配置安全行(high)。 - tarball 結構:檢測路徑穿越(critical)、軟鏈接(high)、異常檔案。
限制與說明¶
- 掃描器侷限:詞法掃描器不是完整的 AST。針對蓄意構造的規避手法(如將惡意代碼藏入插值內的僞註釋)可能存在漏報。它面向捕獲常見惡意模式,不承諾對抗性完備。
- 權限說明:
review和block是建議,最終決定權在人。插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。