威胁模型¶
pVisor 保护项目工作区、HOME、凭据、网络与模型额度,假设工作负载可能出错,也可能被操纵,并信任监督进程、宿主内核与执行器后端。
逐执行器、逐能力维度的保护范围见执行器边界。
资产¶
| 资产 | 典型风险 |
|---|---|
| 项目工作区 | 被误删、被写坏、被未经审查的改动覆盖 |
| 你在运行期间的手工修改 | 被 Agent 的改动覆盖 |
| HOME 与应用状态 | 配置被改写,状态被污染 |
| 凭据(SSH 私钥、云凭据、API Key) | 被读取、外传 |
| 宿主其他路径 | 被读取或写入 |
| 网络 | 访问未授权的目标、外传数据 |
| 模型额度 | 被滥用 |
攻击者与失误来源¶
- 误操作的 Agent:理解错任务,删除或改写了不该动的文件;
- 被提示注入的 Agent:仓库内容、网页或工具输出诱导它读取秘密、访问外部地址;
- 恶意依赖或工具:Agent 安装或调用的软件包在执行时做额外的事;
- 恶意或异常的模型响应:模型返回的工具调用超出任务需要。
信任边界¶
你(审查与 apply)
└─ pVisor 监督进程(可信):准入、暂存、apply、证据
└─ 执行器边界:host 平台控制 / OCI 容器 / libkrun VM
└─ 工作负载(不可信):Agent、脚本、它启动的子进程
- 工作区改动必须穿过暂存与 apply这道边界才能到达项目,见暂存与 apply 语义;
- 文件读取、网络和进程的约束由执行器边界提供,强度因执行器和平台而异;
- 记录由监督进程产出,工作负载不能改写自己的 Run Bundle。
不在范围内¶
- 宿主内核、虚拟化层和 FUSE 实现自身的漏洞;
- 侧信道(时序、缓存、资源占用);
- 已显式授予的凭据被滥用:通过
--pass-env交给 Agent 的 Key,Agent 可以按任意方式使用; - 经过授权目标的数据外传:域名规则无法区分同一域名下的推理、遥测与上传 API,也无法阻止内容夹带在模型请求中;
- 敌对多租户:本地记录供审查和诊断,不提供密码学证明;macOS 上 VMM 仍拥有调用用户的宿主权限;
- 外部副作用的回滚:暂存只覆盖工作区文件。
证据的作用¶
声明不等于证据。准入阶段的计划最高只能是 Planned;实际强制力只来自执行器收尾时返回的观察结果。因此安全评审应当读 Run Bundle,而不是读配置。证据的口径见能力、证据与保证边界。
把模型用于一次真实评审¶
先把任务涉及的资产列出来,再为每项资产选择控制:项目文件用暂存与冲突检查,视图外读取用 executor,普通出口用相应网络边界,模型 Key 用 Gateway 或短期显式授权。需要允许的外部写入在服务端另设权限与审查。
评审时记录“请求 → 计划 → 实际控制 → 观察 → 未覆盖部分”。若观察缺失,把结论标为未知;若只能得到协作控制,说明工作负载如何绕过。不要把工具未触发、网络不可达或样本没有攻击行为当成边界成立。