为什么换掉共享内核
在线编程平台 Replit 11 月 4 日在工程博客发布《Inside Replit's New Sandbox Engine, Part 1》,作者为其计算平台团队。Replit 过去近十年在 Google Compute Engine 虚拟机上用 Docker 容器跑用户代码,容器共享宿主内核,一个可利用的内核漏洞就可能让攻击者逃逸到同机其他负载。重写从 2025 年 11 月开始,今年 2 月内部启用,此后几个月完成全量切换。新引擎里每个沙箱是一台 microVM:用 KVM 和 Cloud Hypervisor(与 Firecracker 共用 rust-vmm 组件)隔离,容器只在沙箱内部分隔进程。Replit 称已迁移数亿个项目且无数据丢失,独立内核也让它可以在沙箱里支持 Docker。
精简内核与 CVE 统计
客户机内核从 tinyconfig 起步,去掉蓝牙、无线、USB、显示等驱动,并禁止加载内核模块。Replit 统计了 2026 年 6 月 1 日至 11 月 4 日发布的 6,211 个 Linux 内核 CVE,称避开了其中 5,969 个(96.1%):4,375 个的修复在漏洞公开前已合入,676 个因内核配置排除了相关代码。网络出口规则在客户机外执行,由宿主侧代理按 TLS 握手中的主机名过滤、不解密内容;托管连接器通过凭据代理访问 GitHub 等服务,工作负载拿不到账号密钥;npm、pip 请求经过仓库防火墙拦截已知恶意包。
存储与启动
沙箱文件系统放在自研远程块存储上,按需拉取数据,写时复制让分叉磁盘很便宜。Replit 提到,对接这套存储的 vhost-user virtio-blk 后端是它最早一批完全由 AI 写成的组件之一,迭代五到七版后才定型。借助预热池和内存快照,含挂载用户磁盘在内,取用一个沙箱约 500 毫秒。在 Kubernetes 上同时编排数万台 microVM 的做法留到第二篇。文中性能与安全数字均为 Replit 自述,尚无第三方审计。
via: Replit Frontier:Inside Replit's New Sandbox Engine, Part 1: The Path to MicroVMs