gVisorとは
コンテナランタイムです。 以下はGitHubのREADMEを参照しています。
コンテナはサンドボックス化されていない
Dockerとかのコンテナはサンドボックス化されていないようです。 確かにrootで動かすのが前提ですからね。。。
仕組み
- KVMやXen: 仮想ハードウェアのレベルで隔離している(Strong isolation)。
- SELinuxなど: アプリごとにルールやポリシーを決めて、それだけで隔離している。
- gVisor: LinuxカーネルをLinuxカーネルのシステムコールを使って実装。
- ルールベースの防御もあるよと書かれています。
公式サイト
- google/gvisor: Sandboxed Container Runtime
- Google Cloud Platform Blog: Open-sourcing gVisor, a sandboxed container runtime