前言¶
DeepSeek Harness (DSH) 的內置權限詞彙通常僅限制寫入操作,讀取操作往往缺乏限制。這使得 AI 代理在執行 cat .env 或打開 ~/.ssh/id_rsa 等操作時處於不受控狀態。gabrip780/dsh-hidden-paths 作爲一個策略守衛插件,旨在通過插件層攔截這些不應被讀取的文件和路徑,防止 AI 代理意外或惡意讀取敏感信息。
核心功能¶
該插件主要具備以下能力:
- 多渠道攔截:阻止 AI 代理通過文件工具(如
read、edit)、Shell 命令(如cat、ls)、搜索選擇器以及run_code執行代碼來訪問隱藏的文件和文件夾。 - 自動脫敏:自動識別並脫敏憑證格式(如 OpenAI/Anthropic 密鑰、JWT、GitHub/GitLab 令牌等),在結果中將其標記爲
[redacted:kind]。 - 默認保護:默認保護
.env、.ssh、.aws等敏感文件和目錄。 - 結果屏蔽:在工具返回的結果中,將隱藏路徑的名稱統一顯示爲
[hidden]。 - 雙層機制:採用 Layer 1 路徑拒絕和 Layer 2 結果過濾。Layer 1 在工具執行前進行路徑拒絕;Layer 2 在執行後過濾結果,負責脫敏和路徑名稱屏蔽。
安裝與啓用¶
通過官方命令安裝插件並激活 profile 層:
dsh plugin --profile web add dsh-hidden-paths
安裝後需重啓 dsh 服務器以加載新模塊。
插件由 bundle 層自動插入配置,不要在配置中手動添加 insert 塊。若需調整配置,請使用 id-targeted override 覆蓋默認設置。
典型用法¶
在配置文件中添加需要隱藏的路徑:
- id: dsh-hidden-paths
config:
hiddenPaths:
- /home/you/private # 隱藏文件夾及其子目錄
- /etc/app/master.key # 隱藏單個文件
通過覆蓋配置激活插件(不要使用 insert 塊):
- id: dsh-hidden-paths
config:
hiddenPaths: []
maskResults: true
hidePathsInResults: true
適用場景與注意¶
該插件適合需要在項目中限制 AI 代理訪問敏感目錄和文件的開發者。但在使用時需注意以下侷限性:
- 策略守衛而非沙箱:這是一個運行在應用層的策略守衛,不是內核沙箱。它無法阻止通過
run_code執行任意代碼、硬鏈接、讀取/proc目錄或通過環境變量拼接路徑等手段繞過保護。 - 配置容錯:配置中的字符串會被視爲單個條目;相對路徑會相對於當前工作目錄解析。如果配置無法讀取,插件會拒絕所有工具調用。
- 脫敏範圍:脫敏規則僅針對明確的令牌格式,不會破壞普通源代碼(如
const api_key = ...)的內容。
結語¶
gabrip780/dsh-hidden-paths 是 DeepSeek Harness 生態中用於增強安全性的重要工具。通過配置路徑黑名單和默認規則,可以有效降低 AI 代理泄露敏感信息的風險。更多詳情請參考 SkillHub 插件目錄 或 GitHub 倉庫。