dsh-warden:DeepSeek Harness 的對抗式審查門

前言

DeepSeek Harness (DSH) 的核心能力在於允許智能體調用外部工具。在沒有防護的情況下,工具調用的誤用或惡意行爲可能直接破壞系統環境。DSH 自帶的工具審批通常只有“彈窗詢問”或“完全關閉”兩種模式,前者會打斷工作流,後者則失去了防護意義。

dsh-warden 旨在提供第三種方案:平時零打擾,只在真正危險的操作上觸發一次低成本審查。它通過掛載在 tools/pre-execute 鉤子上,在工具執行前攔截並評估風險。

它是什麼

dsh-warden 是 DeepSeek Harness 的一個插件,由 dingchenhui0618-arch 維護,許可證爲 MIT。

它是一個“對抗式審查門”:在工具調用執行前,由一個獨立的小模型複覈該調用是否危險,並返回放行或攔截的指令。所有的判定結果都會在 Web GUI 中實時展示,且每次判定都會記錄到審計日誌中。

核心功能

兩層防禦機制

插件採用兩層防禦策略,第二層僅在第一層未攔截時觸發,以確保日常操作無額外延遲。

  1. 第一層(本地正則,零延遲)
    使用本地正則表達式匹配破壞性命令和敏感路徑。

    • 破壞性命令:包括 rm -rf(任意旗標順序)、Remove-Item -Recurse、rmdir /s、format、mkfs、DROP TABLE/DROP DATABASE、git push --force、git reset --hard 等。
    • 敏感路徑寫入:.env、credential、id_rsa、.ssh、.git/、settings.*、cordis*.yml、AGENTS.md 以及 $DSH_HOME 下的任意文件。
  2. 第二層(模型調用,按需觸發)
    對於第一層未命中的調用,插件會將“工具名 + 風險類別 + 完整參數 + 當前會話目標”發送給審查模型,由模型判斷是否攔截。

    • 普通讀寫操作(read/grep/glob)不會進入這套邏輯,不會產生額外延遲。

實時審查與審計

  • Web GUI:在對話視圖的“審查”Tab 中,可以查看實時計數(工具調用總數、有風險類別數、送審數、放行數、攔截數、異常降級數)以及最近 60 條判定的詳情(時間、工具名、風險類別、耗時、模型、理由)。
  • 審計日誌:每一次送審的調用都會追加一行 JSON 到 $DSH_HOME/warden-audit.l,包含時間、工具、類別、決定、理由、模型和耗時。未送審的普通調用僅存在於內存環形緩衝中,不落盤。

可配置規則

默認規則內置在插件中,採取“默認放行,只攔不可逆破壞”的策略。
* 用戶可以通過編輯 $DSH_HOME/adversary.md 文件來覆蓋默認規則。
* 該文件支持按修改時間自動重載,修改後點擊面板上的“重載規則”按鈕即可生效,無需重啓 DSH。

安裝與啓用

插件已發佈到 npm,支持從 npm 或 GitHub 安裝。安裝後重啓 DSH,對話視圖的“審查”Tab 即會出現。

dsh plugin --profile <你的 profile> add dsh-warden

如果需要從源碼安裝:

dsh plugin --profile <你的 profile> add github:dingchenhui0618-arch/dsh-warden

注意事項

  1. 拒絕詢問模式:插件永遠不返回 ask。如果審批 UI 不可用或關閉,它會默認拒絕操作。不要依賴它來提供“請確認”的交互彈窗。
  2. 異常容錯:插件不會在異常或錯誤時阻斷執行。如果模型不可用、參數無法序列化或發生任何錯誤,插件會直接放行。它的設計目標是“最壞情況下什麼都不做”,而不是“因爲插件自身崩潰而鎖死工作流”。
  3. 安全邊界:它不是一個硬性的安全邊界。因爲它運行在同一進程內,惡意代碼或插件本身仍有可能繞過它。它主要用於降低誤操作的概率。
  4. 分類依據:分類基於“工具名 + 參數模式”,而非工具自報的類型。

結語

dsh-warden 通過正則預檢與模型複覈的結合,爲 DSH 提供了精細化的工具調用控制。它不干擾正常的讀寫操作,只在危險邊緣提供兜底保護。對於需要在生產環境或敏感數據上運行 DSH 的用戶來說,這是一個值得嘗試的安全增強手段。

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

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

小夜