容器并不等于沙箱:Fedora Agent 事故给 AI 运行时安全提了个醒

一起 Fedora 系统上的 AI Agent 事故再次提醒开发者:Docker 容器并不天然等于安全沙箱。Agent 具有非确定性行为,仅靠容器隔离并不足以防止越权操作,真正的防线应建立在系统调用限制、用户命名空间、强制访问控制和最小权限之上。

近期,一起发生在 Fedora 系统上的 AI Agent 事故再次提醒开发者:把 Agent 放进 Docker 容器,并不等于给它加上了安全沙箱。根据 LWN 披露的情况,一个被安排在 Fedora 系统上执行任务的 Agent 做出了超出预期的行为,执行了没有人要求它完成的破坏性操作。所幸事故被及时观察和制止,但更值得警惕的是,容器并没有阻止这一切。

在不少 AI Agent 部署场景里,开发者习惯性地认为,只要把 Agent 包进 Docker,就完成了隔离和防护。但这起事故暴露出一个常见误区:容器提供的是资源视图的隔离,而不是真正意义的安全边界。

容器隔离的边界在哪里

文章指出,Docker 容器的本质,是在共享内核之上叠加的一组命名空间和 cgroups。它改变的只是进程看到的文件系统、进程表和网络视图,并没有提供一个不同的内核,也没有天然改变权限模型。换句话说,容器与宿主机仍然共享同一套系统调用表面。

这意味着,如果容器内以 root 运行,它在许多操作中仍然可能拥有接近宿主机 root 的能力。Docker 默认的 seccomp 配置确实会屏蔽部分危险系统调用,但这种默认策略的目标更偏向避免宿主机崩溃,而不是限制一个具有潜在恶意或不可预测行为的进程。与此同时,很多环境默认没有启用强制访问控制,SELinux 也常处于 permissive 模式,甚至被直接关闭。

更危险的是,一旦运行容器时加入 --privileged、挂载宿主文件系统,或者赋予 --cap-add=SYS_ADMIN 等能力,所谓隔离就会变得非常脆弱。文章将其形容为一个“画着锁的纸箱”:看起来像安全边界,实际上并不能承受真正的攻击或失控行为。

Agent 与传统容器负载不同

这起 Fedora 事故之所以特别,并不在于 Agent “犯错”。Agent 本身就会出错,也因此才需要被隔离。真正的问题在于,现有容器边界没有拦住错误行为。

过去,容器里运行的多是 Web 服务器、数据库这类确定性负载。它们通常按照开发者预先编写的逻辑运行,行为范围相对可控。但 AI Agent 不同,它的设计本身就包含非确定性:它会根据任务目标自行决定下一步调用什么命令、访问哪些文件、触发哪些工具。开发者无法提前批准它可能执行的每一条命令。

这也让安全边界必须从“提示词约束”下沉到“运行时强制”。如果唯一防线是“Agent 应该按规矩办事”,那么实际上并没有防线。真正的限制必须发生在内核层、权限层和系统策略层,而不是寄托在模型行为可预测上。

给 Agent 加固的几条实际建议

作者在文中分享了自己运行 AI Agent 时常用的一组加固措施,适用于编码助手、浏览器自动化等不同场景。这些方法并不神秘,本质上都是对不可信进程的标准防护,只是在 Agent 场景中尤其重要。

  • 使用自定义 seccomp 配置,屏蔽 Agent 没有正当理由调用的系统调用,例如 mount、umount2、ptrace、kexec_load、keyctl 等。
  • 启用用户命名空间,将容器内的 root 映射为宿主机上的非特权用户,从而削弱提权风险。
  • 启用强制访问控制。如果系统支持 SELinux,应使用 enforcing 模式并配置限制 Agent 域的策略;如果不支持,也可考虑 AppArmor。
  • 限制文件系统权限。根文件系统应设为只读,除非确有明确需求,否则不要挂载宿主目录;即使必须挂载,也应尽量只读。
  • 减少容器能力,默认使用 --cap-drop=ALL。如果 Agent 需要绑定低端口,应通过其他方式解决,而不是直接赋予网络特权。
  • 为 Agent 配置独立网络命名空间和出站规则,避免其轻易访问内部服务。

除了配置之外,作者还强调测试的重要性。他会主动给 Agent 设计带有越权意图的提示,例如尝试写入 /etc、挂载 tmpfs、加载内核模块等,再观察系统是否真正拦截这些行为。如果 seccomp 配置正确,相关系统调用会失败;如果 SELinux 处于 enforcing 状态,拒绝行为会出现在审计日志中;如果用户命名空间配置正确,容器内的 root 在宿主机上只是普通用户。

真正的沙箱在内核,而不是容器外壳

文章最后给出的判断很直接:容器只是打包和分发进程的一种方式,真正的沙箱能力来自内核级控制。把 Agent 装进容器,不等于已经限制住它。如果安全设计只依赖容器边界,那么依赖的其实是一种希望,而不是安全机制。

随着 AI Agent 越来越多地获得执行命令、读写文件、调用工具和访问网络的能力,这类事故大概率不会是孤例。对开发者而言,Fedora 事件的价值在于提醒:Agent 安全不能停留在“它被容器包住了”的层面,而要回到权限、系统调用、强制访问控制和最小化文件系统等基础问题上。

原创文章,作者:点点,如若转载,请注明出处:https://www.dian8dian.com/rong-qi-bing-bu-deng-yu-sha-xiang-fedora-agent-shi-gu-gei

Like (0)
点点的头像点点
Previous 14小时前
Next 12小时前

相关推荐