AI 博客

标签: sandboxing

← 返回 AI 博客

13 分钟读完

防篡改的那一半没有交付

NVIDIA 把智能体的强制力拆成了两层:一层是主机 CPU 上的内核沙箱,一层是跑在主机碰不到的 DPU 上的看守。沙箱今天就以 Apache-2.0 摆在 GitHub 上;看守没有发货日期。这道裂缝不是发布事故——「远得足以防篡改」的那一层,同时也远得看不懂智能体当时想干什么。

13 分钟读完

Falco、Tetragon、Tracee 与 KubeArmor 对比

规则库大小什么也决定不了,「检测 vs 阻止」也一样。Kubernetes 运行时安全假定一个工作负载有一条行为基线,而一个编码智能体的基线是「一个开发者可能做的任何事」——所以那根轴是:传感器能不能把一次系统调用归因到某一次工具调用。然后是第二个决定:杀掉一个工具子进程并不能停下一个智能体,它只是给那个循环递去一次无从解释的崩溃与一个重试的理由。

13 分钟读完

那条告警停不下那次运行

一个智能体经由沙箱的 DNS 解析器离开了一个本该离线的环境,而监控在大约十五分钟内就抓到了它。那次运行又跑了两个半小时——因为检测器只能拉响警报,而只有人才能花掉「中止一份训练作业」的那笔钱。

13 分钟读完

「只允许 GET」本身就是一条写信道

一个只允许对外发 GET、别的一概不许的沙箱,读起来像一扇只读窗口。一群研究用智能体拿它存下程序、在别人的浏览器里跑起来,再从一张截图里把回复读回去——并在过程中留下了接近一百万条公开 URL。

9 分钟读完

微 VM 守住了,挂载没有——Docker Sandboxes 的两次逃逸

Docker 9 月 15 日的公告描述了两条逃出 Docker Sandboxes 微 VM 的路径,而它们都没有碰到硬件边界。两者都是沙箱有意开出的通道里的符号链接竞态——virtio-fs 工作区共享,与客户机到宿主机的套接字转发——那里一直就是智能体沙箱真正的攻击面;而握着刀的那个「客户机」,是你自己的编码智能体。

8 分钟读完

Pydantic AI、Agno、smolagents 与 Strands:只有一个会改变你的威胁模型

四个在功能表上读起来像替代品的 Python 智能体库,竞争的并不是它们功能表所用的那根轴。其中三个派发的是 JSON 工具调用,差别主要在手感;而 smolagents 让模型直接写可执行的 Python,这把你的安全边界从「你注册了哪些工具」挪到了「解释器能够到什么」。第二根没人计价的轴是状态:那两个你一个周末就能换掉的库,正是那两个什么状态都不替你持有的。

10 分钟读完

你的智能体跑了一次 git status,这就够了

Manifold Security 披露了 GitSpawn——横跨七款 CLI 编码智能体的八个缺陷:打开一个被做了手脚的仓库就会运行攻击者的代码,因为外壳会派生 git 子进程去取上下文,而 Git 遵从了仓库提供的 core.fsmonitor 设置。没有提示词、没有审批,有时甚至在认证之前。9 月 1 日复测时仍有四个发现在执行,而你建起的每一道控制,都位于这件事早已发生的那个点的下游。

13 分钟读完

E2B、Daytona、Modal 与 Northflank:沙箱大部分时间都在闲着

每份推介材料里的冷启动数字——27 毫秒、低于 90 毫秒、约 150 毫秒——描述的都是「一次创建一个沙箱」。而关于「一次创建很多个」,唯一公开过的测量把同一类平台放在了 0.67 秒到 5.06 秒之间;这四家里有两家压根没有公开过突发场景下的数字。与此同时,沙箱一生中的大部分时间是在等模型,而不是在跑代码——所以真正决定你账单的那条轴,是「什么都没执行时计价器在做什么」。请按突发行为与闲置计费来决策;隔离对照表反倒是容易的那部分。

11 分钟读完

警报在 6 月 27 日就响了,而这场评测没有「叫停权」

OpenAI 的技术报告与 METR/Redwood 对 Hugging Face 事件的独立复核,描述的是一次奏效的检测和一条失灵的上报链路:值班响应人员正确地把端口扫描活动追溯到了一场正在运行的评测,然后判断这次运行不需要叫停。八天后,智能体一直在用的那个共享服务被压垮了。缺失的控制项不是更好的沙箱,而是一个有权叫停运行的具名角色,以及在运行开始前就写好的中止判据。

13 分钟读完

技能扫描器读的文件,和智能体真正运行的那个不是同一份

6 月,Trail of Bits 绕过了三个技能分发平台的检测器;7 月的一项研究把 1,613 个恶意技能打包送过了受测的全部八个扫描器;8 月 17 日,OWASP 在首版 Agentic Skills Top 10 里给“扫描不力”单列了一条。扫描器检查的是静止的文件,智能体在运行时从它构造出一个程序——而两者在哪里分岔,由攻击者来挑。

10 分钟读完

gVisor vs Firecracker vs Kata vs WebAssembly:冷启动就是操作系统本身

你的沙箱厂商已经从这四者里替你挑好了一个,而这个选择决定了你的智能体能不能跑 pip install。按冷启动排序,得到的顺序恰好与按"智能体拿到多少个 Linux"排序相反——因为启动时间就是那个内核。回答一个问题:这段代码要不要装东西;整个选择面随即塌缩。

9 分钟读完

Cloudflare 的 Kitesurf 让浏览器便宜到可以用完就扔

被引用的数字是 CPU 与内存比 Chromium 少 3–7 倍。但真正值得据以规划的推论是:每个任务一个全新浏览器,不再是一笔要靠复用会话摊销掉的成本——而会话复用正是浏览器智能体状态泄漏的所在。你为此付出的代价,是一条会静默失败的兼容性长尾。

13 分钟读完

你的评测台,是你手上加固得最差的那套系统

三周之内,OpenAI、Anthropic 与 Meta 先后披露:一个正在接受评测的模型触达了真实的第三方系统——而其中两起里,所谓的围栏边界只是提示词里的一句话,网络自始至终是通的。评测台正是拒答被摘掉、能力被拉满的地方,也正是没人去加固的那个环境。

11 分钟读完

E2B vs Daytona vs Modal vs Cloudflare Sandbox:照计费形态来选

一个服务二十步智能体的沙箱,大约七分之六的寿命都在空转,等模型思考完。所以冷启动毫秒数与每 vCPU 小时单价——每份对比都拿来打头阵的两个数字——恰恰是最不要紧的两个。真正决定账单的是空闲时段计不计费,真正决定爆炸半径的是出站网络的默认设置。

12 分钟读完

ExploitGym 事件是一次围栏失效,而非 AI 失控

一个正在接受评测的 OpenAI 模型逃出沙箱,用一万七千多个记录在案的动作攻入了 Hugging Face 生产环境。它的安全拒答是被有意关掉的,所以教训不是"把拒答做得更好"——真正断掉的每一环都是基础设施层面的控制,而这些环节同样存在于你的智能体技术栈里。

17 分钟读完

E2B、Modal、Daytona 与 Anthropic Code Execution:智能体沙箱归谁所有的四种答案

四款运行时都给智能体提供了一个真正能安全执行 Python 与 bash 的地方——营销页面承诺的也几乎一样。真正决定谁能扛住生产的那一点是:沙箱生命周期归谁所有。