前言¶
DSH 環境裏常見的一種場景是:一個插件要加入某個 profile,或者要作爲 Agent Tool 提供給智能體使用。此時開發者需要先判斷插件是否包含命令執行、憑據訪問、數據外傳、混淆、不安全安裝腳本等行爲。
下面介紹 Eligahyu/dsh-sentinel-scanner。它是一個面向 DeepSeek Harness(DSH)插件的只讀安全、供應鏈和健康掃描工具,適用於插件源碼樹、已發佈的 npm 包、DSH profiles 和 CI pipelines。
這是什麼¶
Eligahyu/dsh-sentinel-scanner 是一個 read-only security, supply-chain, and health scanner for DeepSeek Harness plugins,由 Eligahyu 維護,MIT license。
它的核心定位是:在運行插件代碼之前,對插件做靜態檢查,並輸出結構化報告。掃描結果包含 0-100 risk score,以及 safe / review / risky / dangerous verdict。
同一套能力可以提供爲以下形式:
- DSH Agent Tool plugin:
sentinel_scan、sentinel_scan_profile、sentinel_audit_package - 獨立 CLI:npm package
deepseek-harness-sentinel,可執行命令爲dsh-sentinel - GitHub Action,支持 SARIF upload
- JavaScript API,用於程序化集成
它不是運行時 sandbox,也不是插件執行器。已覈實說明中寫明:scanned code is never executed。
核心能力¶
下面列出本文要覆蓋的能力。
靜態檢測規則¶
它使用 51 heuristic rules with AST-based taint analysis。
可檢測的問題類型包括:
- command execution
- dynamic code evaluation
- credential access
- data exfiltration
- obfuscation
- unsafe lifecycle scripts
- persistence
- native binaries
- manifest escape paths
- package drift
掃描模式¶
提供三種 scan modes:
sourcepackageprofile
其中 profile 用於 DSH profile 場景,package 用於包級場景,source 用於源碼樹場景。
Pre-install quarantine¶
對於 npm tarball,它可以做 pre-install quarantine,不執行 lifecycle scripts。
已覈實流程是:下載 tarball、驗證 integrity、解包到 quarantine、掃描、清理。它不會運行 npm install。
報告與 CI¶
它支持:
- SBOM export
- SARIF output
- CI policy enforcement
在 CI 中,它可以基於風險等級和掃描完整性影響退出碼。
隱私與外部查詢¶
已覈實說明中包含:
- Secrets are always redacted in reports
- Optional OSV lookup is disabled by default
- 啓用 OSV lookup 時,只發送 package name and version
TypeScript 邊界¶
已覈實說明中指出:TypeScript parser limits are reported as a capability boundary instead of falsely failing every TypeScript scan。
也就是說,遇到 TS 解析邊界時,報告會體現能力邊界,而不是把所有 TS 掃描都直接判成失敗。
安裝與啓用¶
作爲 DSH 插件安裝¶
如果希望把它作爲 DSH Agent Tool plugin 使用,已提供命令爲:
dsh plugin --profile web add github:Eligahyu/dsh-sentinel-scanner
安裝後,可以通過 DSH Agent Tool 調用:
sentinel_scan
sentinel_scan_profile
sentinel_audit_package
作爲獨立 CLI 使用¶
獨立 CLI 的 npm package 是 deepseek-harness-sentinel,可執行命令是 dsh-sentinel。
要求:
Node.js ^22.18.0 or >=24.11.0
可以臨時運行:
npx deepseek-harness-sentinel ./path/to/plugin
也可以安裝爲項目依賴:
npm install --save-dev deepseek-harness-sentinel
npx dsh-sentinel ./path/to/plugin
peer dependencies 是 optional:
@deepseek-ai/cordis
@deepseek-ai/dsh-tools
典型用法¶
下面示例均來自已覈實用法。
生成 JSON 報告¶
npx deepseek-harness-sentinel ./plugin --json --out sentinel.json
這一步是對 ./plugin 做掃描,並把結果寫到 sentinel.json。
掃描包產物並輸出 SARIF¶
npx deepseek-harness-sentinel ./plugin --mode package --format sarif --out sentinel.sarif
這一步使用 package mode,並輸出 SARIF 文件。
在 CI 中設置失敗策略¶
npx deepseek-harness-sentinel ./plugin --fail-on high --fail-on-incomplete --strict-exit-codes
這一步表示:當出現 high 級別結果,或掃描不完整時,CI 可以根據退出碼失敗。
安裝前審計 npm 包¶
npx deepseek-harness-sentinel audit-install some-plugin@1.2.3
這一步用於安裝前審計。已覈實說明中寫明:它不運行 npm install,而是下載 tarball、驗證 integrity、解包到 quarantine、掃描並清理。
對比源碼樹與已發佈包¶
npx deepseek-harness-sentinel diff ./plugin some-plugin@1.2.3
這一步用於比較本地源碼樹和指定 npm package。
查看規則目錄¶
npx deepseek-harness-sentinel --rules
這一步打印完整 rule catalog。
適用場景與注意¶
這個工具適合兩類人:
- 插件使用者:在 install 或 activation 前檢查第三方插件
- 插件作者和維護者:在 publish 前檢查危險行爲、打包漂移、不完整掃描和 manifest 問題
需要明確的是,它是 heuristic static analysis,不是安全證明。一條 finding 的含義是:review the evidence,而不是直接判定插件 malicious。
同時,DSH 插件運行時會處於當前 dsh 進程可獲得的權限範圍內,因此安裝前仍要檢查源碼、許可證和掃描結果。
實際使用時還要注意:
- 靜態分析不會執行被掃描代碼
- TypeScript 解析邊界會作爲 capability boundary 報告
- secrets 會在報告中 redact
- optional OSV lookup 默認關閉
- 啓用 OSV lookup 時只發送 package name and version
- peer dependencies
@deepseek-ai/cordis和@deepseek-ai/dsh-tools是 optional
結尾¶
Eligahyu/dsh-sentinel-scanner 的價值,是把 DSH 插件安裝前的檢查做成可重複、可接入 CI、可輸出報告的動作。對於要啓用第三方插件、要發佈插件、或者要在 DSH profile 中加入 Agent Tool 的開發者,它提供了一個不執行被掃描代碼的靜態檢查入口。
倉庫地址:
https://github.com/Eligahyu/dsh-sentinel-scanner
如果從 DSH 插件目錄查找,條目名爲:
Eligahyu/dsh-sentinel-scanner