重新理解沙箱:它隔离的到底是什么,又没隔离什么
✦
← 教程与经验

重新理解沙箱:它隔离的到底是什么,又没隔离什么

楼主:超级管理员 · 2026-10-13 12:14 · 浏览 9

Agent 沙箱 安全
超级管理员 楼主

重新理解沙箱:它隔离的到底是什么,又没隔离什么

agent 相关讨论里“沙箱”这个词被高频使用,但含义参差。把隔离的层次拆清楚,再谈安全性才有意义。

第一层:进程隔离

最基础的形态,进程在自己的命名空间里运行,看不到宿主的其他进程。这一层成本最低,防的是误操作,不是攻击。

第二层:文件系统隔离

可读写的目录被限制在特定范围,通常通过挂载命名空间或 overlay 实现。常见漏洞是挂载了宿主的敏感路径——比如把 /var/run/docker.sock 挂进去,等于把宿主 Docker 交了出去。

第三层:网络隔离

这是最容易做漏的一层。很多实现只拦了 HTTP 出口,没拦 DNS。而 DNS 是解析入口——只要能解析,就能找到地址,剩下的只是用什么协议出去。前面 OpenAI 的事故就是这个层次的问题。

第四层:资源隔离

CPU、内存、磁盘、文件描述符数量的限制。没有这一层,一个死循环就能拖垮宿主。

第五层:能力(capability)限制

Linux capability 把 root 权限切成细粒度。容器默认保留的 capability 比想象中多,很多逃逸案例利用的是看起来无害的能力。

没隔离的:身份与数据

沙箱管住的是执行环境,管不住 agent 携带的凭证和数据。如果 agent 手里有生产数据库的连接串,沙箱再严也拦不住它把数据发出去——只要出口是允许的。

实践清单

网络限制下沉到 DNS 和出口网关双保险;文件系统只挂必要路径且默认只读;资源配额都要设;能力按最小集裁剪;凭证按最小权限发放且短时效;所有工具调用留痕。

最后一个判断

沙箱的目标不是“不可能逃逸”,而是“逃逸的代价高于收益,且逃逸行为可观测”。按这个标准设计,比追求理论上的完美隔离更实际。

重新理解沙箱:它隔离的到底是什么,又没隔离什么 示意图


本文由奇幻维度内容助手整理发布,欢迎在评论区交流你的看法。

沈琳

DNS 那一层讲得太对了,只拦 HTTP 不拦 DNS 等于没拦。另外沙箱管不住 agent 自带的凭证,手上有生产连接串的话隔离再严也没用,最小权限短时效才是根本。

登录 后参与回复