dsh-capsule:爲第三方 DeepSeek Harness 插件提供 Linux 沙箱隔離

前言

DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在開發或集成第三方插件時,一個直接的問題是:如何在不影響宿主環境安全性的前提下,給予插件必要的執行能力。如果插件直接運行在 DSH 進程中,將獲得宿主的全部權限,這在安全上是一個隱患。

dsh-capsule 插件通過在 Linux 系統上創建獨立的 Bubblewrap 進程來解決這個問題。它將兼容的第三方 DSH 客戶端運行在隔離的環境中,由宿主進行完整性校驗和權限控制。

插件介紹

插件名稱:dsh-capsule

核心定位:爲第三方 DeepSeek Harness 插件提供 OS 級別的隔離能力膠囊。

維護者:2-c-q

分類:admin-security

開源協議:MIT

該插件通過 Bubblewrap 構建全新的用戶、PID、掛載和網絡命名空間,將插件代碼與宿主環境物理隔離,防止惡意代碼或錯誤代碼破壞宿主系統。

核心功能

根據插件的功能描述,其核心能力包括:

  1. 運行隔離:在全新的 Linux Bubblewrap 進程中運行兼容的第三方 DSH 客戶端。DSH 進程中不會加載客端的代碼,且代碼在兩次調用之間不會駐留內存。
  2. 完整性驗證:由受信任的主機驗證一個完整性固定的 JavaScript 工件(Artifact),確保運行的是未被篡改的代碼。
  3. 隔離貢獻:在隔離的 describe 單元中發現並貢獻信息。
  4. 工具註冊:代表宿主註冊真實的 DSH 工具和靜態系統提示部分。
  5. 逐次調用:每次工具調用都會啓動一個新的隔離單元,確保狀態隔離。

安裝與啓用

在安裝之前,必須確保宿主系統滿足前置條件。

前置條件:

  • Bubblewrap:宿主必須安裝 Bubblewrap,且必須支持 --ro-bind-fd 參數。
  • 系統限制:Ubuntu 24.04 可能需要加載 AppArmor 配置文件以允許未授權的用戶命名空間。

安裝命令:

通過 DSH 插件管理器安裝插件包:

dsh plugin --profile <profile> add github:2-c-q/dsh-capsule

依賴要求:

安裝包接受以下 peer dependencies,版本範圍爲 0.1.0-rc.5 到 0.2.0:

  • @deepseek-ai/dsh-subprocess
  • @deepseek-ai/dsh-system-prompt
  • @deepseek-ai/dsh-tools

典型用法

安裝完成後,需要在配置文件中定義膠囊實例。

1. 準備宿主環境

在 Debian 或 Ubuntu 系統上安裝 Bubblewrap:

sudo apt-get update && sudo apt-get install --yes bubblewrap

如果是在 Ubuntu 24.04 上,建議安裝系統自帶的 AppArmor 配置文件以確保用戶命名空間功能可用。

2. 配置膠囊

在配置文件中(通常通過 cordis.patch.yml),定義膠囊的根目錄、清單文件和策略。以示例 echo-capsule 爲例:

- id: dsh-capsule-host
  config:
    capsules:
      - root: /absolute/path/to/dsh-capsule/examples/echo-capsule
        manifest: capsule.json
        policy:
          capsuleId: example.echo
          tools:
            - capsule_echo
          promptSections:
            - capsule.echo.guidance
          grants: []
    bubblewrapCommand: bwrap
    # ... 其他配置參數(如 maxManifestBytes, maxFrameBytes 等)

3. 工作區訪問

若要授予插件讀取宿主文件系統的權限,需使用 workspaceRoot 和 policy。

  • 請求:在插件 manifest 中聲明 {"kind":"workspace-read","path":"reference/context.txt"}。
  • 配置:在膠囊配置中指定 workspaceRoot 並在 policy 的 grants 中匹配該路徑。

配置後,文件將在膠囊內以只讀方式掛載到 /workspace/reference/context.txt。注意,v0.1 版本僅支持對現有常規文件的精確只讀掛載,不支持目錄掛載或寫入掛載。

適用場景與注意

適用場景:

  • 需要在宿主環境中運行不可信或待驗證的第三方 DSH 插件。
  • 需要嚴格隔離插件對宿主系統資源(文件、網絡、進程)的訪問。

重要注意:

  • Linux 限制:v0.1 版本的隔離提供程序僅支持 Linux 系統。
  • 安全邊界:隔離邊界是宿主與膠囊之間的執行世界證明。如果宿主環境(如 Bubblewrap 版本)或配置(如 manifest/policy)不匹配,膠囊將無法激活。
  • 威脅模型:該插件的目標是限制運行時權限,不保護宿主免受內核漏洞、Bubblewrap 本身漏洞、側信道攻擊或拒絕服務攻擊的影響。
  • 權限模型:v0.1 協議僅支持 workspace-read。不支持 workspace-write、network-connect、subprocess-exec 或 storage。目錄掛載在當前版本也不被視爲一種能力。

總結

dsh-capsule 爲 DeepSeek Harness 插件生態提供了一個基於 Bubblewrap 的輕量級沙箱解決方案。通過將插件運行在獨立的 Linux 進程中並驗證其完整性,它有效地限制了插件的運行時權限,降低了宿主環境被破壞的風險。對於需要集成外部插件的開發者,這是一個必要的隔離機制。

插件目錄:https://www.skillhub.cn/plugins/2-c-q/dsh-capsule

GitHub 倉庫:https://github.com/2-c-q/dsh-capsule

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

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

小夜