前言¶
在 DeepSeek Harness(DSH)裏安裝第三方 skill 或插件 bundle,常見做法是直接 dsh plugin add 或把目錄交給智能體處理。bundle 裏可能包含 SKILL 指令、Cordis 補丁、npm 生命週期腳本等文本;在未審閱前執行或安裝,存在指令覆蓋、遠程拉腳本、憑證路徑引用等供應鏈風險。手工逐文件 grep 可行但易漏、難統一口徑。
dsh-skill-scan 由 lengrufeng2008 維護,歸類爲 admin-security,對 bundle 做靜態、只讀的第一遍安全掃描:不執行 bundle 內容,用啓發式規則標出需要人工解釋的高風險片段。思路受 NVIDIA SkillSpector 供應鏈檢查啓發,實現爲小型 DSH 工具與 CLI(見倉庫 NOTICE.md,未複製其源碼)。社區目錄頁:https://www.skillhub.cn/plugins/lengrufeng2008/dsh-skill-scan;源碼:https://github.com/lengrufeng2008/dsh-skill-scan。SkillHub 爲社區獨立站點,與 DeepSeek / 幻方無官方從屬關係。
這是什麼¶
一句話:對 DSH skills 與 plugin bundle 做靜態只讀安全初篩(Static, read-only security first pass)。
維護者 lengrufeng2008;當前 package 版本 0.1.0,MIT 許可證,Node.js >= 20。它不是沙箱、AST 污點分析、OSV 漏洞庫或運行時監控;PASS 僅表示在當前規則下未發現命中項,不能當作「已證明安全」。
核心功能:掃描器會找什麼¶
README 列出的啓發式檢測方向包括:
- 指令覆蓋 / 外泄類表述(instruction override / exfiltration language)
curl ... | sh一類遠程 shell 模式- 破壞性 root/home 刪除相關表述
- 憑證路徑(如
.ssh/id_rsa、.aws/credentials) eval/new Function- 過長編碼 payload
- 隱藏 Unicode(雙向文本 / 零寬字符等)
- package 生命週期腳本(lifecycle scripts)
- Cordis 補丁中的
!!js
命中高嚴重項時結果可爲 BLOCK;也可能出現 WARN。安全文檔引用攻擊手法、合法包使用 lifecycle script 等會產生誤報,需結合上下文讀具體文件與行號。
安裝與啓用¶
DSH 側按 README 示例從本地路徑加入插件(路徑需換成你本機 clone 或下載後的目錄):
dsh plugin --profile web add /home/lrf/dsh/products/dsh-skill-scan
安裝後可在對話中讓智能體使用該工具,例如 README 建議的表述:「Use skill_scan on this bundle.」工具行爲爲只讀掃描。
獨立使用 CLI 時,在倉庫根目錄通過 Node 調用 bin/dsh-skill-scan.mjs(亦可通過 npm 包配置的 dsh-skill-scan 入口,視你的安裝方式而定)。
典型用法¶
對某個 bundle 目錄做掃描:
node bin/dsh-skill-scan.mjs /path/to/bundle
需要機器可讀輸出時:
node bin/dsh-skill-scan.mjs /path/to/bundle --json
退出碼含義(README 原文):
1:存在BLOCK級發現0:PASS或WARN2:輸入無效
出現 BLOCK 時,安裝或合併前應打開報告中的文件與行號自行判斷;掃描器不會替你執行或隔離代碼。
倉庫內測試(fixtures 含故意不安全的 bundle,測試僅按文本讀取、不執行):
npm test
適用場景與注意¶
適合:在 CI 或安裝前對第三方 skill / plugin bundle 做統一、可重複的文本級初篩;與人工 code review 配合,而不是替代。
務必注意:
- 插件與 CLI 在當前 dsh / 用戶進程權限下讀取文件;安裝插件前仍應檢查源碼、許可證與維護者信息。
- 不要因
PASS跳過審閱;不要因單條BLOCK在未讀上下文時直接否決——README 明確說明誤報可能。 - 安裝命令以 README 爲準;勿憑插件名臆造
dsh plugin add github:owner/repo等形式。
結尾¶
dsh-skill-scan 把第三方 bundle 的安全檢查收成一條可腳本化的只讀第一遍:規則覆蓋指令劫持、遠程 shell、憑證路徑、混淆與 Cordis !!js 等常見紅旗,並區分 PASS / WARN / BLOCK 與 CLI 退出碼。更深的安全仍依賴人工讀代碼與組織策略。