AI工具Simon Willison07:16
smolmachines / smolvm 作为不受信任 Python 与 JavaScript 的沙箱
smolmachines / smolvm as a sandbox for untrusted Python & JavaScript
沙箱跑不可信代码,性能与隔离取舍需实测,别当安全承诺。
判断
给要跑用户提交 Python/JS 的人,取舍不在「能不能隔离」而在延迟预算:交互式任务得先接受冷启动 0.6–1.5 秒,再决定是否用硬件隔离虚拟机换掉共享内核容器。
依据
Simon Willison 实测 smolvm 1.8.3:它用硬件隔离虚拟机(hardware-isolated VM,每个沙箱跑在独立内核的虚拟机里)而非共享内核容器(shared-kernel container,进程共用宿主内核)来隔离不可信代码。离线本地镜像、禁网执行、CPU/RAM 上限、guest 内超时、存储配额、只读输入挂载、可写输出挂载和 --unprivileged 都按预期工作,代价是冷启动 0.6–1.5 秒、热执行约 50 ms。他让 Claude Fable 5 在 Claude Code for web 里做这项研究,该容器自身是 Firecracker guest(Linux 6.18.5-fc-v20,4 vCPU,15GB RAM),没有 /dev/kvm,也没有 vmx/svm 标志,嵌套虚拟化不可用,smolvm machine run 直接报「kvm not available」;于是改在暴露 /dev/kvm 的 GitHub Actions ubuntu runner 上跑测试。
- 冷启动0.6–1.5 秒
- 热执行约 50 ms
- 测试容器 CPU4 vCPU
- 测试容器内存15GB RAM
没写清 材料只记录了各功能按预期工作,没有对抗性负载或逃逸尝试的实测结果,因此不能替它补上安全强度的结论。
下一步 在暴露 /dev/kvm 的 GitHub Actions runner 上重跑同一批测试,核对 0.6–1.5 秒冷启动与约 50 ms 热执行是否复现。