From fork() to Fleet: Designing an Agent Sandbox Cloud — Abhishek Bhardwaj, OpenAI
三句話摘要
Agent沙箱雲的設計方案:從單節點安全執行到大規模分布式編排,通過微虛擬機實現硬件級隔離並用持久化存儲支持長期任務。 安全無法用系統技巧補償,只有硬件級隔離(微虛擬機)是可信防線;配合增量快照和智能編排,才能在大規模Agent沙箱雲中兼顧安全、可靠和低延遲。 沙箱技術的演進取決於安全邊界:Fork/exec沒有隔離容易崩潰;容器共用主機內核仍可逃逸;GVisor在用戶空間實現系統調用但允許兩步式漏洞鏈;只有微虛擬機通過硬件級隔離(VMX non-root vs VMX root)保證主機完全受保護。
重點整理
重點- 1
沙箱技術的演進取決於安全邊界:Fork/exec沒有隔離容易崩潰;容器共用主機內核仍可逃逸;GVisor在用戶空間實現系統調用但允許兩步式漏洞鏈;只有微虛擬機通過硬件級隔離(VMX non-root vs VMX root)保證主機完全受保護。
- 2
微虛擬機的實踐演進:Rust寫的輕量VMM(Firecracker、Cloud Hypervisor)相比傳統QEMU更安全、更快、設備權限更細粒度;Para-virtualization通過VertIO高效通信實現接近原生性能的虛擬化。
- 3
持久化存儲解鎖新能力:增量快照和copy-on-write實現零複製開銷;快照可即刻返回ID,後台非同步上傳;恢復時根據快照譜系智能下載,使模型能跨故障恢復、進行長期任務和狀態探索。
- 4
編排層通過快照和記憶體快照優化延遲:調度器根據節點快照本地化程度評分路由;記憶體快照毫秒級啟動;混合預熱池和快照恢復平衡資源消耗與延遲,確保大規模並發下的可靠性。
實用技巧與重點
乾貨- 沙箱演進方案對比:
- Fork/exec:性能最快,0隔離,易成噪聲鄰居,可直接攻擊內核
- Containers:命名空間+cgroups隔離資源,仍共用主機內核;可用SecComp限制系統調用
- GVisor:用戶空間內核(sentry+gopher),攔截系統調用,但允許二步漏洞鏈
- MicroVMs:硬件級隔離,Guest在VMX non-root,Host在VMX root,主機完全隔離
- MicroVM技術棧:
- 核心API:/dev/kvm(Linux KVM超級監視程序介面)
- VMM實現:Firecracker(Amazon Lambda)、Cloud Hypervisor、CrossVM(Google)
- Para-virtualization協議:VertIO
- 設備架構:可單獨監禁和限制(SecComp)每個設備
- 性能權衡:有VM exit/enter開銷;記憶體共享需balloon driver;GPU支持有限(VertIO GPU僅高層圖形、VFIO不支多租戶)
- 磁盤持久化方案:
- 增量快照:FIEMAP偵測變更塊範圍,只保存diff
- Copy-on-write(XFS):零成本副本,寫入時付出成本
- 快照API流程:呼叫save() → 檢測diff → 打包artifact → 返回snapshot ID → 快照有lineage(譜系)
- 還原流程:給snapshot ID → 解析lineage層次 → 逐層下載 → 應用回base image → 啟動VM
- Always-on persistence:用NBD掛載GCS/S3為VM內塊設備,分層緩存(VM內緩存 → 節點內緩存 → 遠端存儲)
- 編排架構:
- 多層調度:頂層控制平面(選區域+集群) → 集群調度器(選節點)
- 低延遲方案三選:
- 預熱沙箱池(資源消耗大)
- 記憶體快照及時啟動(毫秒級,複雜)
- 混合方案(邊界池+快照恢復)
- 快照路由優化:調度器計算各節點缺少哪些快照層,優先選已有最多層的節點
- 關鍵設計決策:增量非完整快照、可配置快照範圍(全根FS或特定文件夾)、塊級優於文件級
結論
結論“安全無法用系統技巧補償,只有硬件級隔離(微虛擬機)是可信防線;配合增量快照和智能編排,才能在大規模Agent沙箱雲中兼顧安全、可靠和低延遲。”
完整解析
詳細OpenAI面臨的核心挑戰是:大型語言模型(GPT系列)在生成代碼時表現優異,但這些模型生成的代碼需要在真實系統上執行才能驗證正確性。然而,代碼執行涉及安全風險。模型可能(無意或有意地)生成試圖進行權限提升、讀取敏感文件或在雲環境中洩露其他用戶數據的代碼。因此,沙箱成為必需品—既要允許代碼安全執行,又要防止越權。
講者從第一原理展開沙箱的演進。最簡單的方案是fork/exec模型:harness(訓練或推理框架)直接分叉進程執行模型生成的代碼。優點是原生性能,缺點是完全沒有隔離。惡意代碼可直接呼叫系統調用攻擊主機內核,或造成資源濫用(如無限fork導致節點癱瘓)。Linux容器(基於命名空間和cgroups)改進了這一點:PID命名空間讓容器內看到獨立的進程樹;掛載命名空間隔離文件系統;cgroups限制CPU和記憶體消耗。但根本問題未解決—容器進程仍直接與主機內核互動,內核成為共同的攻擊面。SecComp過濾系統調用可減少攻擊表面,但容易造成功能受限的反饋迴圈。GVisor試圖進一步隔離:它用Go實現了一個用戶空間內核(sentry),攔截Guest的系統調用,而非直接傳遞。這樣即使Guest進程被破壞,執行代碼也停留在用戶空間(ring 3)而非內核空間(ring 0)。但仍有漏洞:若sentry本身被利用,攻擊者可進行兩步式漏洞鏈利用逃逸。
真正的突破是硬件虛擬化。Linux KVM使用CPU的VMX模式提供硬件級隔離。Guest OS運行在VMX non-root模式,具有ring 0權限但在獨立的處理器上下文中;Host OS和超級監視程序運行在VMX root模式。這在物理硬件層面保證了隔離—即使Guest內核被全面控制,Host仍絕對安全。為實現高效虛擬化,業界過去依賴QEMU(通用虛擬機監視程序)。但QEMU代碼臃腫、用C寫成、支援眾多設備(歷史上許多逃逸都是通過設備模擬漏洞)。最近五年出現了"微VM"浪潮—用Rust重寫的精簡VMM,如Google的CrossVM、Amazon的Firecracker和社區的Cloud Hypervisor。它們"微"的含義不是Guest小,而是VMM本身更輕—只支持必要設備、啟動更快(秒級變毫秒級)、記憶體佔用更少。Para-virtualization進一步優化了性能:Guest驅動通過VertIO協議與Host通信,比全模擬設備高效得多,使虛擬機在實用性上接近原生性能。
但安全本身不夠—模型需要持久化存儲。想象一個Agent在沙箱裡耗時數小時建構代碼倉庫和演示文檔。若節點故障,所有工作丟失—既浪費了寶貴的GPU算力,也毀滅了用戶體驗。OpenAI引入了增量快照機制。每次快照不是保存整個根文件系統,而是利用FIEMAP檢測哪些磁盤塊發生變更,只保存diff。基於copy-on-write(XFS支持),新建快照的成本是零(不複製任何塊),寫入時才付出成本。更巧妙的是,快照操作本身立即返回快照ID,系統在後台異步上傳到雲存儲,modelharnessHarness無須等待。恢復也很快:給定快照ID,系統解析其lineage(前置快照鏈),逐層下載,應用回base image,秒內啟動新虛擬機。這解鎖了驚人能力:模型可進行蒙特卡洛式搜索,在狀態樹中往返探索(checkpoint、分支、回溯),有望在藥物發現、量子化學等領域加速科研。另一種模式是"always-on persistence"—利用NBD將GCS或S3掛載為虛擬機內的虛擬塊設備,用分層緩存(VM內→節點內→遠端)實現自動持久化,無需顯式快照呼叫。
最後是編排層。沙箱需跨多節點和地理區域執行,以支持ChatGPT規模的並發。頂層控制平面根據區域負載和延遲選擇集群;集群內調度器根據節點負載和快照本地化程度選擇節點。為實現低延遲(產品成功的必要條件),系統採用多策略:預熱沙箱池(但空閒時消耗資源)、記憶體快照及時啟動(毫秒級但複雜)或混合方案。快照與編排的協作尤其聰明—調度器評估各節點已持有的快照層,優先選需下載最少數據的節點,進一步降低建立延遲和提升可靠性。
關鍵時刻
Pipeline v2帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。
事實查核
Pipeline v2說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。


