dsh-vault-wall:讓 DSH Agent 無法感知或操作指定敏感路徑的隔離牆插件

在 DSH(DeepSeek Harness)環境中,Agent 通常具備對本地文件系統的讀寫權限。當需要操作敏感路徑(如密鑰、配置文件或私有數據)時,單純依靠提示詞無法保證安全。dsh-vault-wall 插件通過攔截層機制,讓 Agent 在面對特定路徑時無法感知文件存在,或直接拒絕訪問,或在訪問前通過人工審批。

插件概況

這是一個運行在 DSH 宿主上的客戶端插件,由 lxwallac 維護,採用 MIT 許可證。

  • 核心定位:爲 DSH 的 agent 提供路徑隔離能力,使其感知不到、無法操作指定敏感路徑。
  • 依賴要求:需要 DSH 宿主環境(DSH Desktop 或官方源碼版 dsh),以及 Node.js >= 22.0.0。

核心功能

插件通過配置規則集對文件路徑進行分級管控,主要包含以下能力:

1. 三種防護模式

  • 隱藏模式:命中規則的路徑對 Agent 僞裝爲不存在(not-found),連路徑名都不透露。
  • 拒絕模式:直接報錯並註明該處受規則保護,Agent 會明確知道不應觸碰該區域。
  • 詢問模式:命中後不直接拒絕,而是通過官方審批通道彈出確認框。Agent 會看到路徑、規則、工具及風險等級,只有人工點擊“允許”後才放行。若沒有審批通道或用戶拒絕,則轉爲明確拒絕。

2. 風險與驗證機制

  • 工具風險評級:內置 low(只讀)、medium(寫入)、high(執行/不可逆)、unknown(未識別,默認從嚴)四個等級。
  • 執行後驗證:每次調用結束後進行兩層覈對:
    1. 授權一致性:比對 guard 當時做出的決策,防止插件內部邏輯導致“判了拒絕卻執行成功”。
    2. 泄漏掃描:檢查結果中是否包含受保護路徑,按 redact(替換爲佔位符)、audit(僅留痕)或 block(整條阻斷)處理。
  • 循環糾正:同一 Agent 反覆命中同一規則時,拒絕文案會追加策略提示,防止無意義的重試。
  • 自我防護:規則文件、審計日誌、歷史文件對當前 Agent 隱藏,防止 Agent 自行修改牆或查看審計。

3. 規則管理與運維

  • 護欄評估:通過 /wall report 統計攔截/放行次數、審批結果、bypass 情況及漏報風險。
  • 規則體檢:通過 /wall lint 檢測規則是否存在覆蓋過寬、工具名不可達、路徑重複等問題。
  • 可回滾:通過 /wall history 和 /wall rollback 管理規則修訂歷史,支持回滾操作。

安裝與啓用

本插件非獨立程序,必須安裝在 DSH 宿主環境中。

  1. 前置條件:
    • 已安裝 DSH 宿主(DSH Desktop 或官方源碼版 dsh)。
    • Node.js 版本 >= 22.0.0。
  2. 安裝命令:
    使用以下命令將插件添加到指定 profile:
    dsh plugin --profile <profile> add dsh-vault-wall
若網絡環境不穩定(如鏡像不同步),建議下載 tgz 文件後安裝:
    dsh plugin --profile <profile> add ./dsh-vault-wall-0.4.0.tgz
  1. 生效:
    安裝完成後重啓 DSH,在設置頁的“保險區 Vault Wall”中配置規則。

典型用法與示例

規則配置

在設置頁以 JSON 編輯規則,可指定路徑、模式和參數:

{
  "version": 1,
  "rules": [
    {
      "id": "keys",
      "mode": "hidden",
      "paths": ["C:\\keys"]
    },
    {
      "id": "archive-ro",
      "mode": "deny",
      "paths": ["C:\\archive"],
      "tools": ["write", "edit", "bash"]
    },
    {
      "id": "wallet-ask",
      "mode": "ask",
      "paths": ["C:\\wallet"],
      "minRisk": "medium",
      "remember": true,
      "borrowTtlMs": 600000
    }
  ]
}

命令行操作示例

在 DSH 會話中,可使用 /wall 子命令進行管理:

# 測試某路徑的判定結果(不消耗借出、不改狀態)
/wall test C:\work\repo\**\.env read

# 查看護欄評估報告
/wall report

# 檢查規則是否有誤
/wall lint

# 臨時借出(授權整棵目錄,默認 10 分鐘)
/wall borrow add C:\Users\you\secret-box

運行效果

  • 隱藏模式:Agent 讀取密鑰會得到 Error: cannot read "C:\keys\id_ed25519": not found。
  • 拒絕模式:Agent 刪除歸檔目錄會得到 Error: [vault-wall] access to "C:\archive" is denied by rule "archive-ro"。
  • 詢問模式:Agent 寫入錢包會彈出審批框,顯示風險等級和工具信息,需人工確認。

總結

dsh-vault-wall 通過在 DSH 架構內構建隔離層,解決了 Agent 在本地文件系統中的安全越界問題。它結合了顯式攔截、人工審批和事後驗證,能夠有效防止敏感數據泄露。配合 /wall 系列命令,運維人員可以清晰地掌握 Agent 的操作邊界。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜