dsh-guardwall:DeepSeek Harness 的運行時安全護欄

前言

DeepSeek Harness (DSH) 的核心設計是“一切皆插件”。引入外部插件意味着引入新的代碼和權限,開發者通常只能依賴靜態掃描,但這無法覆蓋運行時動態構造的命令或工具調用。dsh-guardwall 作爲一個安全插件,提供兩層防護:安裝前的源碼體檢和運行時的護欄攔截,並附帶篡改檢測的審計日誌。

功能概覽

該插件由 iiiweiii 維護,採用 MIT 許可證。核心能力包括:
* 安裝前體檢:通過真實製品落地、權限清單、靜態風險掃描和信任評分,對插件進行“裝前把關”。
* 運行時攔截:在輸入側攔截破壞性命令、憑據、SSRF 和反向 shell,在輸出側審計密鑰泄露。
* 篡改檢測審計:使用 HMAC 鏈式哈希和尾部 checkpoint,確保日誌不被篡改或截斷。
* 熱加載:無需重啓即可更新規則和閾值。
* 零第三方運行時依賴:僅使用 Node.js 內置模塊。

安裝與啓用

通過 CLI 安裝插件。如果 npm 尚未發佈製品,可使用 GitHub 通道。

dsh plugin --profile web add dsh-guardwall

安裝後驗證配置是否掛載:

dsh --profile web --dump-config | grep -A2 'id: guardwall'

第一層:安裝前體檢

在安裝插件前,系統會先確認“裝這個插件 = 給了它什麼權限”。默認攔截風險等級 >= 7 的插件。

體檢工具:

npx guardwall check <spec>              # 體檢輸出報告
npx guardwall add <spec> [--force]      # 體檢通過後執行安裝

<spec> 支持本地路徑、npm 包名或 github:owner/repo。

四步體檢流程:
1. 真實製品落地:通過 --ignore-scripts 安裝 npm 包或檢出 GitHub 精確 ref,獲取源碼後再做判斷。
2. 權限清單:靜態分析插件訪問的文件路徑(如 ~/.ssh)、執行的命令(如 rm、curl)和連接的域名。
3. 靜態風險掃描:檢查依賴樹、危險模式(eval、動態執行)及安裝腳本。
4. 信任評分與門禁:基於五維評分。D 級拒絕(需 --force),C 級警告,A/B 級放行。

第二層:運行時攔截

插件在 DSH 的 tools/execute(輸入側)和 tools/result(輸出側)事件中介入。

與依賴 cordis/dsh-tools 的其他安全插件不同,dsh-guardwall 零第三方運行時依賴,減少供應鏈攻擊面。當 Agent 被誘導執行高危操作(如 rm -rf /)時,調用會被攔截並返回錯誤提示。

默認攔截規則(風險 >= 7):
* SEC-001:破壞性刪除/格式化(rm -rf /、format、mkfs)。
* SEC-002:訪問憑據文件(~/.ssh、.aws、.env)。
* SEC-003:參數中出現疑似明文憑據(password=、sk-)。
* SEC-004:SSRF 攻擊(雲元數據端點)。
* SEC-005:反向 shell 或下載執行管道(bash -i、nc -e)。
* SEC-006:命令鏈注入(;rm、&&rm)。
* SEC-007:提權操作(sudo su、chmod 777 /)。
* SEC-008:寫入系統關鍵文件(/etc/passwd、/boot)。

輸出側審計規則:
* OUT-001:密鑰/私鑰泄露(sk-、AKIA、BEGIN PRIVATE KEY)。
* OUT-002:內網 IP 輸出。
* OUT-003:帶口令數據庫連接串。
* OUT-004:環境變量密鑰 dump。
* OUT-005:公鑰/證書/私密材料。

熱加載

支持在運行時動態修改規則和閾值,無需重啓 DSH。

熱加載規則:
規則文件位於 ~/.dsh/cache/dsh-guardwall/rules.d/*.json,保存即生效。

[
  { "id": "MY-001", "direction": "input", "risk": 8,
    "re": "internal\\.corp\\d+\\.com", "summary": "禁止訪問內網域名", "advice": "確認授權後訪問" }
]

熱配置:
同目錄下的 config.json 可調整閾值:

{ "blockThreshold": 6, "warnThreshold": 3 }

工具命令:
* guard_reload:手動刷新規則與配置。
* guard_rules:查看生效規則。

配置與策略

默認策略爲 risk >= 7 攔截、risk >= 4 告警。可在 cordis.patch.yml 的 config 中調整。

- insert:
    - id: guardwall
      name: dsh-guardwall
      config:
        blockThreshold: 7
        warnThreshold: 4
        dataDir: ~/.dsh/cache/dsh-guardwall
        failMode: closed             # 掃描異常時拒絕執行
        allowAgentWhitelist: false   # 默認禁止 Agent 自助放行

審計日誌

審計日誌依賴 HMAC 鏈式哈希機制,確保日誌完整性。

日誌存儲位置:~/.dsh/cache/dsh-guardwall/
* audit-YYYY-MM-DD.jsonl:每條記錄包含 prevHash 和 HMAC hash。
* checkpoint-YYYY-MM-DD.json:尾部錨點。
* chain.key:鏈密鑰(權限 0600)。

安全機制:
內容修改、併發鏈分叉或尾部截斷會導致 verify() 返回失敗。該機制用於檢測意外損壞和未持有密鑰的修改。

工具列表

工具 用途
guard_check 安裝前體檢(權限/風險/評分/門禁建議)
guard_status 攔截/告警/記錄統計、審計鏈完整性、白名單
guard_whitelist 臨時放行某規則(默認關閉,需精確工具名和有效期)
guard_reload 手動重載熱加載規則與配置
guard_rules 查看生效規則與熱加載狀態

兼容性與路線圖

  • 兼容性:已驗證 @deepseek-ai/dsh 0.1.0-rc.5(web profile)。
  • 路線圖:白名單按 agent/會話隔離、高敏操作二次確認、審計導出/週報、npm 發佈。

結語

dsh-guardwall 通過源碼溯源、運行時攔截和鏈式審計,爲 DSH 插件生態提供了從安裝到使用的全流程安全兜底。如果你需要在不犧牲靈活性的前提下加強智能體執行環境的安全性,可參考其配置進行部署。

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

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

小夜