← 返回目录

第 30 卷

第 30 / 43 卷作者:Un-named日期:

稳定性rc期,破坏性变更风险稳定版,长期兼容承诺
文档官方偏架构,上手靠社区官方文档完善+教程丰富
IDE/工具链集成起步深度集成

**dsh 的定位**:不是"开箱即用的整车",是"可编程的乐高底座"。选择 dsh = 选择**自由度 **,代价是**自己要动手拼**。

12.7 官方策略风险

作为选型者,必须考虑的黑天鹅:

  • **开源承诺**:MIT 开源目前无杂音,但"官方级插件体系"意味着生态深度绑定官方节奏
  • **模型绑定倾向**:官方默认体验倾向 DeepSeek 模型(通过 llm 插件可接任意模型,

但"官方优化"以自家模型为主)

  • **商业化转向**:一旦 dsh 用户量上来,官方可能推出托管服务/付费层——开源版能否

保持同等能力未知

  • **方向漂移**:rc 期功能增删频繁(TUI/CLI 路线之争即信号),押注错误方向 = 沉没成

本

12.8 白皮书自身的局限

最后,诚实说这本白皮书自己:

  • **基于 rc.6 编写**:所有命令、配置、数据在 rc.6 验证,**新版本可能全部失效**
  • **benchmark 样本有限**:单机、单模型、有限任务集,不是权威评测
  • **中文优先**:英文版是翻译/精简版,可能滞后于中文版内容
  • **覆盖不全面**:dsh 官方包 60+,本手册深挖的是核心路径,长尾插件未逐一覆盖

> **使用建议**:把本白皮书当"rc.6 快照 + 方法论",不要当"永恒圣经"。版本更新时,先跑一遍 [roadmap 学习路径](./roadmap.md) 与 [速查卡](./cheatsheet.md) 的验收标准,再决定要不要

更新你的依赖线。

---

*本章信息截至 2026-08-14(dsh 0.1.0-rc.6)。后续版本如有更新,欢迎提 Issue/PR 修正。

*

第 13 章:安全与沙箱模型

> 本章目标:看懂 dsh 的安全骨架——沙箱管什么、权限怎么分级、审批怎么放行——以及社区审计发现的真实边界。**这是从"能跑"到"敢上生产"的关键一章。**

TL;DR(本章核心,30 秒版)

  1. **三层防线**:沙箱(在哪执行)→ 权限预设(能做什么)→ 审批(危险动作要不要

人点头)——默认不是裸执行

  1. **沙箱只管文件效果**:`read-only` / `workspace-write` / `danger-full-access` 三

档;网络与进程可见性不在词汇表内(所以 `taskkill` 杀宿主等案例是"词汇表外",不是沙箱失守)

  1. **权限 = 两个旋钮捆成预设**:`sandbox/mode` + `approval/policy`;默认表两张:

`workspace-write`(工作区写 + ask)与 `danger-full-access`(无沙箱 + never)

  1. **审批 fail-closed**:只有 `allowed-once` 放行;ask 无应答 = 拒绝

(unavailable),never 一切确定性拒绝——headless 的默认姿态

  1. **社区审计找到真实边界**:#159 fs-sandbox 竞态、#584 scrubbedParentEnv 误

伤、#381 iframe 点击劫持、#817 审计报告(vm 逃逸 + 本地 RPC 无认证)

  1. **企业基线一句话**:默认 `workspace-write`+ask、loopback 不放行、插件只装信

任源、敏感目录不进 workspace <details><summary>本章导航</summary>

  • [13.1 安全设计哲学:沙箱/权限/审批三层](#131-安全设计哲学沙箱权限审批三层)
  • [13.2 沙箱机制原理:fs 边界与工具沙箱](#132-沙箱机制原理fs-边界与工具沙箱)
  • [13.3 权限模型:工具权限分级表](#133-权限模型工具权限分级表)
  • [13.4 审批流:从请求到放行](#134-审批流从请求到放行)
  • [13.5 插件安全审计清单](#135-插件安全审计清单)
  • [13.6 社区已知安全案例](#136-社区已知安全案例)
  • [13.7 企业安全基线](#137-企业安全基线)

</details>

13.1 安全设计哲学:沙箱/权限/审批三层

dsh 的安全骨架是三层各管一件事(依据官方 `docs/subsystems/*` 架构文档,已核验:

`sandbox.md` / `permission-presets.md` / `approval.md`;与第 8 章 8.5 实测交叉印证):

层管什么官方包一句话
沙箱在哪执行、能碰哪sandbox/隔离命令执行的文
些文件sandbox、件效果

sandbox/ sandbox-local、

sandbox/ sandbox-policy

权限能做什么interaction/把沙箱 + 审批捆成 permission-命名预设

presets

审批危险动作要不要人interaction/user-最小权限的最后一
确认approval道闸

**最小权限原则**是三层共同的设计取向:默认预设只给"工作区写 + 关键操作询问";任何提升(切 `danger-full-access`、改审批策略)都显式发生并写入会话日志—

—`permission/preset` 事件是**纯日志的用户意图**,不进模型转录,便于事后回溯"谁在什么时候提了权"。

**威胁模型速记**:三层防线防的是"不可信输入驱动代理越界"——提示词投毒、恶意插件、被诱导的高权限操作(#381 iframe 劫持就是往这条链上打);它不承诺防"信任代码自

身"(插件就是可执行代码,见 13.5),也不承诺防网络/进程级攻击。

> 核心认知:**dsh 的工具执行默认有隔离与审批层,不是裸执行**;但它不是"安全操作系统"——沙箱不挡网络与进程、审批可以被模型自答(13.6)。

13.2 沙箱机制原理:fs 边界与工具沙箱

官方沙箱文档明确定义:**沙箱只管文件效果(filesystem effects)**,网络与进程可见性不在其词汇表内。

**三档模式**(`SandboxMode`):

模式允许的文件效果说明

read-only只读 + 必需 sinkWindows ACL 后端无显(POSIX 下如式可写根,报 partial

/dev/null)

workspace-write工作区根+后端承诺的临默认预设;根来自会话不
时区可写可变cwd
danger-full-access不设限直接spawn原argv,不

走 ctx.sandbox

**执行细节**:

  • **策略按调用携带**(per-call):`SandboxExecutionPolicy`(mode +

workspaceRoot + sessionId)在每次能力调用时解析,不绑死在 provider 上——同一 provider 可同时服务 `read-only` 的 bash 与需要可写状态目录的子代理

  • **工作区根规范化**:先按文件系统语义 canonicalize(`symlink/..` 解析到真实目录)

再做词法归一——防符号链接绕边界

全站分卷索引 · 43 卷
  1. 1第 1 卷
  2. 2第 2 卷
  3. 3第 3 卷
  4. 4第 4 卷
  5. 5第 5 卷
  6. 6第 6 卷
  7. 7第 7 卷
  8. 8第 8 卷
  9. 9第 9 卷
  10. 10第 10 卷
  11. 11第 11 卷
  12. 12第 12 卷
  13. 13第 13 卷
  14. 14第 14 卷
  15. 15第 15 卷
  16. 16第 16 卷
  17. 17第 17 卷
  18. 18第 18 卷
  19. 19第 19 卷
  20. 20第 20 卷
  21. 21第 21 卷
  22. 22第 22 卷
  23. 23第 23 卷
  24. 24第 24 卷
  25. 25第 25 卷
  26. 26第 26 卷
  27. 27第 27 卷
  28. 28第 28 卷
  29. 29第 29 卷
  30. 30第 30 卷
  31. 31第 31 卷
  32. 32第 32 卷
  33. 33第 33 卷
  34. 34第 34 卷
  35. 35第 35 卷
  36. 36第 36 卷
  37. 37第 37 卷
  38. 38第 38 卷
  39. 39第 39 卷
  40. 40第 40 卷
  41. 41第 41 卷
  42. 42第 42 卷
  43. 43第 43 卷