沙箱与凭据安全
沙箱(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)。
使用纪律(重要)
- 先读安全说明:官方要求运行前阅读
SAFETY.zh.md,不是形式; - 工作区选子目录:不要把整个家目录给 Agent;
- 凭据不进上下文:不要让 Agent 读它不需要的环境变量/密钥文件;
- Git 分支保护:把破坏性操作的可能性交给 Git,而不是靠审批;
- 外部网页内容视为不可信输入:抓回来的网页可能包含注入内容;
- 定期检查插件:社区插件是第三方代码。
风险检查清单
开工前问自己三句:
- [ ] 我给的工作区是最小必要的吗?
- [ ] 破坏性操作有 Git 或备份兜底吗?
- [ ] 我知道 Agent 背后用的是哪个模型、哪些插件吗?
三个都是"是",再开工。
本文来自博客园,作者:半抹灯芯,转载请注明原文链接:https://www.cnblogs.com/wanxiangsucai/p/23464053

浙公网安备 33010602011771号