Digital Appendix
『AIエージェントが見つけたサーバーレス』のデジタル付録
隔離ランタイムの対応表
隔離ランタイムの対応表
対象本文
第4章のprocess、container、bubblewrap、gVisor、microVM、Kata Containers、isolate、confidential executionを補います。図4-1の概念軸へ製品名と代表値を固定しないための更新先です。
収集方法
2026年7月10日に各runtimeの公式architecture、利用例、論文を確認し、7月11日にWALLET/Hacher論文の版と評価値を再確認しました。2026年8月6日にbubblewrap、Claude Code、Codexの公式資料を確認しました。性能値は原典が測った条件だけに限定し、managed serviceのSLOへ外挿しません。
現在の答え
| 系譜 | 境界の置き方 | 強み | 主な代償・確認点 | 現行の代表例 |
|---|---|---|---|---|
| OS process/container | host kernelを共有しnamespace/cgroup等で分離 | 起動と密度、Linux tooling | kernel共有、capability、seccomp、runtime設定 | 一般的なcontainer runtime、Cloudflare Containers |
| userspace application kernel | syscallをuserspace kernelで受け、host kernelへの面を狭める | container互換性とattack surface縮小の折衷 | syscall互換性、I/O性能、platform設定 | gVisor、GKE Sandbox、Cloud Run、GKE Agent Sandbox |
| microVM | KVM/hypervisorでguest kernelごと分離し、device modelを削る | VM境界と高速起動の両立 | guest memory、boot、snapshot整合、host/hypervisor | Firecracker、Lambda、AgentCore、Lambda MicroVMs |
| VM-backed container | container interfaceを保ち、各pod/containerを軽量VMへ入れる | OCI/Kubernetes体験とVM境界 | 構成部品、起動、device、network | Kata Containers |
| language isolate/Wasm | engine内のmemory/contextを分け、capabilityを絞る | 極小単位、高密度、高速起動 | OS互換性、native code、engine/host境界 | Cloudflare Workers isolates、Wasm runtime |
| confidential VM内の入れ子 | hardware-backed confidential VM内にさらにprocess/LibOS境界 | cloud operatorを含む脅威へのTCB縮小を狙う | attestation、I/O、鍵、研究段階の保証 | WALLET(初版名Hacher)等の研究 |
共通方向は、利用者codeが直接触れる共有面を減らしながら、割当単位を小さくして密度と起動を保つことです。差は、Linux互換性をどこまで残すか、kernelを共有するか、hardware virtualizationを使うか、信頼するTCBをどこへ置くかにあります。
Firecracker公式は、user space開始125ms未満、memory overhead 5MiB未満、hostあたり毎秒最大150 microVMという設計値を示します。これはFirecrackerの特定測定であり、Lambda、AgentCore、他社serviceの起動SLOではありません。
gVisorはLinux interfaceをuserspaceのSentryで実装し、host kernelとの直接面を減らします。公式はCloud Run、GKE Sandbox等の採用を示す一方、未実装syscallとI/O overheadを明記します。互換性はimage名から決めず、対象workloadで試験します。
ローカルのコードエージェントで使うbubblewrap
bubblewrapは、共有カーネル型の独立した隔離方式ではなく、Linuxのnamespaceとmountを組み合わせて、プロセスへ見せる世界を構成する低レベルの道具です。必ず新しいmount namespaceを作り、見せるpathと読み書きの可否を呼び出し側が与えます。必要に応じてuser、PID、network、IPC、UTS namespaceやseccompを組み合わせられます。
2026年8月時点のLinux版Claude Codeは、bubblewrapでfilesystemの境界を適用し、sandbox外のproxyで通信先を制御します。CodexのLinux sandboxは、読み取り専用を既定としたfilesystemをbubblewrapで構成し、書き込み可能なrootを重ね、seccompとPR_SET_NO_NEW_PRIVSを併用します。
bubblewrap自身は完成済みのsecurity policyではありません。どのpathを見せ、どこを書かせ、process空間やnetworkを分けるかは、呼び出すframeworkの責任です。microVM相当の独立kernel境界として扱わず、共有kernel型の実装例として読みます。
WALLET(2025年4月30日公開のv1ではHacher)は、AMD SEV-SNP上のconfidential VM内へ軽量なtrustletを入れ子にする研究です。論文は、比較対象に対するend-to-end latencyの15〜93%削減と、function densityの最大907倍を著者評価として報告しています。測定条件に依存する研究値であり、商用serviceの保証ではありません。ここで重要なのは数値だけでなく、VM境界の内側でもTCBとfunction間通信を再設計できるという研究方向です。
一次資料
- Firecracker: https://firecracker-microvm.github.io/
- Firecracker NSDI 2020: https://www.usenix.org/conference/nsdi20/presentation/agache
- gVisor overview: https://gvisor.dev/docs/
- gVisor applications and users: https://gvisor.dev/docs/user_guide/compatibility/ and https://gvisor.dev/users/
- gVisor production trade-offs: https://gvisor.dev/docs/user_guide/production/
- Kata Containers documentation: https://katacontainers.io/docs/
- WebAssembly System Interface: https://wasi.dev/
- bubblewrap README: https://github.com/containers/bubblewrap
- Claude Code sandboxing: https://code.claude.com/docs/en/sandboxing
- Codex bubblewrap implementation: https://github.com/openai/codex/blob/main/codex-rs/linux-sandbox/src/bwrap.rs
- bubblewrapの解説記事: https://www.m3tech.blog/entry/2026/07/21/100000
- WALLET / Hacher paper: https://arxiv.org/abs/2504.21518
記入用の雛形——脅威モデル(空欄版)
書籍第4章4.8の脅威モデルを自分のワークフローで書き出すための空欄版です。
対象ワークフロー:
守る資産:
信頼しない入力:
攻撃面 到達し得る資産 予防制御 検知・失効・破棄 証拠
入力:
生成コード:
ツール:
依存取得:
ネットワーク:
ホスト:
制御面:
サンドボックス内に置く資格:
許可する外向き通信:
壁が破られたときの停止・失効手順:
既知の未知
- managed serviceが内部runtimeを変更しても、公開仕様に現れない場合があります。
- 「VM-level」「kernel isolation」等のmarketing語だけではthreat modelやoperator accessを比較できません。
- Claude CodeとCodexのsandbox構成や既定policyは更新され得ます。bubblewrapの採否だけでなく、filesystem、network、seccompの構成を再確認します。
- side channel、GPU/device passthrough、confidential computingの保証は構成とhardware世代で変わります。
- 概念図の座標は定性的です。採用時は対象image、地域、負荷で起動、memory、I/Oを測定します。
変更履歴
- 0.10.2 (2026-08-06): 第4章4.7のbubblewrap差し込みに合わせ、共有kernel型の実装例、Claude Code/Codexの利用方式、policy所有者、一次資料を追加。
- 0.10.1 (2026-08-06): 第4章の章順変更に合わせ、脅威モデルの参照先を4.9から4.8へ更新。
- 0.10.0 (2026-07-28): 書籍のJIS B5・本文112ページ対応にともない、第4章4.9の記入用雛形(空欄版)を本文から移設。
- 0.9.1 (2026-07-11): 論文の現行名WALLETと初版名Hacherの関係を明記し、著者評価の15〜93% latency削減・最大907倍densityを測定条件依存の研究値として集約。本文側は定性的な要約へ変更。
- 0.9.0 (2026-07-10): 第4章の対応表、Firecracker代表値、gVisor採用、Hacher研究を境界別に初版ドラフト化。