沙箱与凭据安全

沙箱(sandbox)

沙箱子系统的结构:

部分 说明
模式与强制执行 有哪些模式,各自怎么强制
逐调用策略 每次调用独立判定
包装后的 argv 与分类方言 命令被解析成分类后的能力描述
提供方与 fail-closed 错误 提供方失败时拒绝而非放行
ctx.sandbox(SandboxProvider,抽象 seam) Cordis API
ctx.sandboxPolicy(SandboxPolicyService) 策略服务

两个设计要点

一、逐调用策略:不是一次性决定"这次任务能不能碰文件",而是每条命令单独判。

二、fail-closed:提供方出错时,默认结果是拒绝,不是放行。这是安全系统的正确默认值。

沙箱解决不了什么

重要:沙箱管的是执行边界,不是所有安全问题。

  • 提示注入:模型被不可信内容误导,绕过你的策略;
  • 凭据泄漏:Agent 被诱导读密钥文件;
  • 社会工程:Agent 被诱导执行"看起来合理"的错操作。

这三类要靠权限预设、审批和你的判断来挡。

凭据(credentials)

要点 说明
存储位置 $DSH_HOME/.credentials.yaml
写入方式 只写——页面保存后只收到脱敏描述符,永不收到明文
settings 只保存凭据引用

credentials 子系统负责凭据的存取与作用域。相关能力:用户设置(settings)与用户凭据(credentials)。

使用纪律(重要)

  1. 先读安全说明:官方要求运行前阅读SAFETY.zh.md,不是形式;
  2. 工作区选子目录:不要把整个家目录给 Agent;
  3. 凭据不进上下文:不要让 Agent 读它不需要的环境变量/密钥文件;
  4. Git 分支保护:把破坏性操作的可能性交给 Git,而不是靠审批;
  5. 外部网页内容视为不可信输入:抓回来的网页可能包含注入内容;
  6. 定期检查插件:社区插件是第三方代码。

风险检查清单

开工前问自己三句:

  • [ ] 我给的工作区是最小必要的吗?
  • [ ] 破坏性操作有 Git 或备份兜底吗?
  • [ ] 我知道 Agent 背后用的是哪个模型、哪些插件吗?

三个都是"是",再开工。

https://www.wanxiangyundang.top/read/dsh-guide/sandbox

posted @ 2026-10-28 10:16  半抹灯芯  阅读(15)  评论(0)    收藏  举报