前言¶
DeepSeek Harness(DSH)採用插件化架構。在智能體開發中,工具調用可能意外泄露敏感文件(如 .env、.git 目錄或 SSH 密鑰)。dsh-guard-sensitive-paths 旨在通過在執行前強制審批來攔截這些操作,確保敏感數據不會未經授權地被讀寫或執行。
核心功能¶
該插件是一個 DSH bundle,通過前置註冊 tools/pre-execute 策略來攔截操作。它默認開啓,零配置即可生效。
主要攔截以下場景:
1. 寫/改/執行操作:攔截 write、edit、str_replace_editor、bash 對敏感路徑的調用。
* 敏感路徑集合:.env 文件、.git 目錄、.ssh 目錄、SSH 私鑰文件、.pem 證書文件。
2. 讀操作:僅攔截對 密鑰類 文件的讀取,即 SSH 私鑰和 .pem 證書。讀取 .env、.git、.ssh/config 等文件保持放行。
工作機制:
* 優先級:通過 PREPEND 方式註冊,優先於其他 tools/pre-execute 監聽器執行。
* 行爲:純審批策略。命中時返回 ask 決策,理由中包含敏感路徑類別(如 environment-file、key-material)。未命中則原樣委託。
* Bash 掃描:支持掃描 Bash 命令文本,檢測命令中是否包含敏感路徑(如 .env、id_rsa、*.pem 等)。
安裝與啓用¶
插件遵循 DSH bundle 規範,安裝後隨 profile 重啓生效。
從 GitHub 安裝:
dsh plugin --profile web add github:TARS-snail/dsh-guard-sensitive-paths
驗證安裝:
dsh --profile web --dump-config
生成的配置中應包含 name: dsh-guard-sensitive-paths 的條目。
配置¶
默認零配置即開啓。若需關閉,可在 profile 的 cordis.patch.yml 中覆蓋配置:
- id: sensitive-paths
name: dsh-guard-sensitive-paths
config:
sensitivePaths: false
適用場景與邊界¶
該插件通過觀察工具調用的參數進行攔截,不修改會話行爲。
覆蓋範圍:
* 攔截 write、edit、str_replace_editor、read、bash 工具對敏感路徑的參數。
不覆蓋範圍(威脅模型邊界):
* 宿主級 sidecar / 運行時行爲:不經過工具循環的讀取、打包、加密、上傳(如智譜 ZCode 事件中通過宿主進程打包上傳 .git 歷史),本插件無法攔截。
* 網絡出口:文件 sandbox 管文件訪問,不管主機進程把數據發往哪裏。
* 模型推理端點:任務相關的上下文仍會發送給 LLM provider。
結尾¶
該插件確保工具調用命中敏感路徑時,必須先獲得批准。它無法防止宿主進程繞過工具循環的操作,如需覆蓋這些面,需要文件 sandbox、進程隔離與網絡出口策略。