## 概要 gVisor はコンテナサンドボックスランタイムである。アプリケーション発行のシステムコールをユーザ空間カーネル(Sentry)でインターセプトし、ホスト Linux カーネルへの攻撃面を削減する。Go 言語で実装された Sentry が大部分のカーネル機能を再実装し、許可されたホストシステムコールのみを発行する。(Source: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §1, §6) ## APSys ’23 での評価 APSys ’23 の Container Transplantation 論文では、比較対象として gVisor(release-20230417.0)が用いられた。UnixBench のシステムコールオーバーヘッドでは、gVisor は runC に対して **96% 悪化**した。これはユーザ空間カーネル方式がシステムコールのインターセプトとリダイレクトのたびにカーネル・ユーザ空間間のコンテキストスイッチを生じるためである。同論文では、FreeBSD の Linuxulator を用いたカーネル内変換方式が gVisor より小さいオーバーヘッド(22% 悪化)で軽量サンドボックス化できる可能性を示した。(Source: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §5.2, §6) ## 関連 - ソース: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] - エンティティ: [[Kata Containers]] / [[Linuxulator]] / [[Docker]] / [[Google]] - 概念: [[コンテナ仮想化]] / [[Capability-based Security]] / [[Lightweight Sandboxing]]