Agent 天天挂在嘴边的沙箱,到底是个啥?

简介: 本文深入解析AI时代关键安全机制——沙箱:它不是虚拟机或Docker,而是“为代码划出的安全活动圈”,通过文件、网络、权限、资源四维隔离,保障Agent执行任意代码时系统与数据安全。结合iOS、浏览器、LeetCode等日常案例,厘清概念,并给出可落地的测试验证方法。

不知道你们有没有这种感觉。

不管是翻 Claude Code 的文档,还是用 Codex、WorkBuddy,总有一个词在你眼前晃,沙箱。

Claude Code 专门拿出一整节文档,来讲沙箱。

https://code.claude.com/docs/en/sandboxing

Codex 默认就在沙箱里跑,想联网得单独申请。WorkBuddy 装完第一件事,就是让你勾选它能碰哪些文件夹,没勾到的地方,一步都进不去。

要是你刚接触这个词,八成会拿它往熟悉的概念上套。沙箱?说的是虚拟机吗?还是 Docker 那种容器?再不然,Python 的 venv 算不算?

我把这几个产品的实现翻了一遍,答案是,都不对,而且这几个词压根不在一个层面上。

今天这篇,咱就把沙箱一次扒明白。

沙箱到底是个啥?

先说它是个啥。

简单来说,沙箱就是给代码执行划的一块活动范围。它能看到哪些文件、能起哪些进程、能不能联网,这些全都在外面提前设好了。它想干范围之外的事,系统直接拦下来,命令报错,执行不了。

为啥要这么干? 因为放进沙箱的代码,不一定可信。万一它带毒、被人做了手脚,或者纯粹写崩了,有沙箱圈着,文件偷不走,网连不上,系统也改不动。最坏的结果,就是沙箱里那点东西完蛋,你的电脑和资料安然无恙。

比如,同事找你借手机打个电话,你把手机打开进入到打电话界面递过去就行,没人会把锁屏密码也告诉他,很多安全问题的根源就出在这,为了完成一个很小的任务,我们给了他过大的权限。

家里有娃的都见过,孩子还不会走路的那阵,家长通常会在家里客厅给他围一个栏,玩具扔进去,人放进去,他就在里面随便玩,怎么爬都爬不出去。

沙箱就是给代码围的这个栏,代码在里面照常跑,但怎么折腾都出不了圈,外面的文件、系统、网络,它一律够不着。程序该跑照样跑,沙箱管住的,只是它能影响的范围。

沙箱这个词也不是什么新东西,最早主要在安全行业里用,到今天已经用了几十年。只不过这两年 Agent 火了,这个词才跟着被越来越多人提起。

你其实早就装了一堆沙箱

别觉得陌生,其实你天天都在用。

特别是苹果手机的用户,iOS 给每个 App 划了一块自己的地盘,只能在自己目录里读写文件。微信看不到淘宝的缓存,淘宝也翻不着微信的聊天记录,系统级的强制隔离。

App Store 敢让几百万陌生开发者往你手机里塞东西,靠的就是这套机制在底下兜着。

Android 一个路子,每个 App 发一个独立的 Linux 用户 ID,内核按用户权限把大家隔开。

比如,你在浏览器中打开一个陌生网站,页面里的 JavaScript 想读你的本地文件、想开个 shell?门都没有。因为 Chrome 这类浏览器,把网页渲染塞进了一个被剥夺了系统权限的进程。它要干任何超出页面的事,只能给浏览器主进程发消息申请。

再比如,当你在使用LeetCode 这类刷题平台时,为什么平台后端敢直接跑你提交的任意代码,凭啥?因为判题机是跑在独立的沙箱环境里。

把这几个例子摆到一块,套路就一个。手机里的 App,浏览器里的网页,刷题平台里你提交的代码,处理办法全是同一套,先圈起来,再让它跑,即便出了事,也只会搞坏圈里那一小块。

沙箱和虚拟机,到底啥区别

这是被问得最多、也是新手最容易搞混淆的,Sandbox与 Docker 和虚拟机到底是什么关系?

特别是现在很多云厂商老是喜欢把它们摆一块。真论起来,这几个压根就不在一个层面上。

虚拟机是一种具体的技术。虚拟出来的是一整套设备,里面装一个完整的操作系统,自带内核。虚拟机解决的是资源问题,一台机器当多台用。

Docker 容器也是一种具体的技术。它不虚拟硬件,所有容器共享宿主机的内核,靠 Namespace 把每个容器能看到的进程、网络、文件系统隔开,容器解决的是环境问题,一次构建,到哪都能跑。

沙箱跟前两个都不太一样,它指的是一个安全目标。要把一段程序能碰的东西摁在一个圈里,文件、进程、网络,圈外的一律够不着。至于用什么实现,没有限定,容器可以,虚拟机可以,操作系统自带的权限机制也可以。沙箱解决的是安全问题,控制程序代码执行的影响范围。

我们可以做一个简单的对比。

虚拟机 Docker 容器 沙箱
是什么 一种虚拟化技术 一种容器技术 一个安全目标
怎么隔离 虚拟整套硬件,自带内核 共享内核,Namespace + cgroups 不限,权限、容器、虚拟机都行
解决什么 资源,一台机器当多台 环境,一次构建到处跑 安全,控制影响 范围
典型开销 GB 级镜像,分钟级启动 MB 级镜像,秒级启动 看实现,从零开销到 GB 级
拦得住恶意代码吗 拦得住,难逃逸 拦一部分 看实现强度

为啥 AI Agent 又带火了 Sandbox?

那问题来了,这词都用几十年了,为啥这两年突然满世界都是?

因为写代码的,从人换成了模型。

以前的玩法,大模型只是个代码辅助工具,能帮你补代码、生成函数,但代码复制到编辑器里,跑不跑、怎么跑,全是你自己来。

现在的主流 Agent,你扔给它一个任务,它自己读文件、写代码、起 shell、跑测试、看报错、接着改,几十条命令,条条都是它自己拍板执行的。接的工具越来越多,文件系统、终端、浏览器、数据库。

更重要的是,Agent 越来越多的是挂着没人看的长程任务。半夜跑回归、自动修 bug、云端并行几十个会话,人根本不在屏幕前。弹窗批准这条路走不通了,一是人不在,二是就算在,一下午批几十次之后,剩下的基本就是无脑点允许,弹窗形同虚设。

沙箱的思路正好反过来。不一条条问你,直接把边界焊死,边界里头随便你折腾。

用一条 docker run,模拟沙箱拦了啥

上面这些概念听着玄乎,拆开看,就是几个开关的事。我拿 Docker 拼了个最小沙箱,只需要一条命令。

docker run --rm \
  --network none \
  --read-only \
  --cap-drop ALL \
  --security-opt no-new-privileges \
  --memory 512m \
  --pids-limit 256 \
  -v "$PWD:/workspace" -w /workspace \
  python:3.12-slim python main.py
  • --network none,容器里压根没有网卡,数据就算被读走也发不出去,泄露这条路,在网络这层就断了。
  • --read-only,根文件系统只读,整个容器只有挂进去的 /workspace 能写。
  • --cap-drop ALL,把 Linux capabilities 全扔了,容器里的 root 就是个名字,特权操作一样都干不了。
  • --memory 512m 和 --pids-limit 256,一个管内存,一个管进程数,死循环和进程炸弹都拖不死宿主机。
  • 最后那个 --rm,用完即焚。

文件、网络、权限、资源。以后谁跟你说他这有个沙箱,你就问这四样各拦到啥程度。答不上来的,八成只是个把依赖隔开的环境,跟安全不沾边。

落到测试工作上,有什么作用?

最后说回老本行。

沙箱对测试人来说,不是背个新概念就完了,它直接多出一类能落地的用例,越权测试。

以前测越权,测的是人写的接口,构造个越权请求,看服务端拦不拦。Agent 一来,被测对象多了一个自己会动手的角色,用例跟着变形。

把 Agent 关进沙箱里跑任务。正向用例,测它该干的能不能干成,装依赖、跑测试、改文件。反向用例,故意诱导它越界,让它读工作区外的文件,让它 curl 一个外网地址,让它去改 .git 目录,看沙箱兜不兜得住。

其实 Claude Code 文档里那两条自测命令,就是这个思路的产品化,一条探文件写入,一条探网络外连。Codex 更细,workspace-write 档位里 .git 目录强制只读,防的就是 Agent 一上头改了你的提交历史。这种设计细节,本身就是现成的测试断言,直接抄作业。

所以下次评测一个 Agent 工具,别光看它弹窗勤不勤快,多问三句,沙箱是不是默认开,网络是不是默认断,环境是不是一次一换。这三个答案,比宣传页上任何一句安全承诺都实在。

咱们这行有句老话,永远不要相信用户的输入。现在得再补一句,永远不要盲目相信大模型写的代码。


我是狂师,公众号长期分享 AI 测试提效实战。最近我做了一个重大决定,将AI测试开发学习路线开源了:https://github.com/zhoujinjian/ai-testing-guide

并且与开源项目同步配套上线了一款免费在线学习网站👉:https://ai.testfather.cn/

放心食用,觉得有用,就帮忙点个Star吧 ⭐

以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见。

目录
相关文章
|
16天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
8425 20
|
15天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
2714 14
|
15天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1976 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
13天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)
|
9天前
|
人工智能 Linux 开发者
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
Codex是OpenAI推出的AI编程智能体,可读取本地项目、理解需求并自动修改代码。支持桌面GUI、命令行(CLI)及VS Code/Cursor插件三种形态,覆盖可视化操作、终端高效开发与编辑器无缝集成场景,助开发者用自然语言驱动编码全流程。(239字)
【2026国内使用】Codex安装过程一篇讲透(Win/Mac/Linux全支持)
|
4天前
|
人工智能 JSON Linux
【全网最详细】ComfyUI使用教程:下载+本地部署+配置+工作流搭建一篇搞定(2026最新版)
ComfyUI是一款免费开源的本地AI绘图工具,采用节点式工作流设计,支持文生图、图生图、局部重绘、放大、换脸等多种功能。可离线运行,依赖显卡加速,无需联网。支持自定义流程保存与分享,插件生态丰富,适合进阶用户。(239字)
|
9天前
|
人工智能 JSON 编解码
【2026最新版】ComfyUI本地部署教程,新手也能看懂!
ComfyUI是本地运行的AI绘画工具,采用节点式工作流设计:通过拖拽连接“加载模型”“提示词编码”“采样”“解码”等模块,实现高度可控的文生图。新手推荐使用秋叶整合包,一键启动、内置模型管理与插件安装器,轻松上手。(239字)