# Container Transplantation ## 定義 Container Transplantation(コンテナ移植)とは、ある OS 向けに構築されたコンテナを、異なる OS カーネル上で互換実行させることで、元の OS に依存した脆弱性攻撃を回避する軽量サンドボックス化手法である。本論文では、Linux コンテナを FreeBSD カーネル上で実行し、Linux カーネル固有の脆弱性を悪用した攻撃を自然に失敗させる。さらに、FreeBSD の capability-based サンドボックス機構 Capsicum を透過的に適用することで、隔離強度を高める。(Source: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §1, §3.2) ## 横断的知見 - **完全統合型サンドボックスを避ける 2 つの設計思想**: Subaco は Sandbox Tailoring によりリソースごとに最適な隔離強度を選択し、完全統合型(gVisor/Kata/Firecracker)の性能低下を回避する。Container Transplantation は異種 OS カーネルへの移植で Linux 固有の脆弱性を無力化し、VM やユーザ空間カーネル方式のオーバーヘッドを回避する。両者は「隔離を強化するがコンテナの軽量性を損なわない」という同じ動機から、異なる抽象階層(リソース vs OS カーネル)でアプローチを展開している。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]], [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]]) - **FreeBSD 系機構の活用**: Sandbox Tailoring の Subaco は BitVisor ベースの para-passthrough ハイパーバイザを用いるのに対し、Container Transplantation は FreeBSD の Linuxulator・Jail・Capsicum・Casper を組み合わせる。いずれも Linux 標準ではない FreeBSD 独自の仕組みを活用して、Linux コンテナの攻撃面を削減しようとする点で共通する。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]], [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]]) - **性能比較の文脈**: Subaco は Nginx 200 接続で runC 比約 40% 低下、gVisor は約 87% 低下、Kata-QEMU は約 59% 低下、Kata-FC は約 79% 低下と報告されている。Container Transplantation は UnixBench で gVisor の 96% 悪化に対し Linuxulator with Jail は 22% 悪化に抑えた。両結果を合わせると、「VM/ユーザ空間カーネル方式に比べて中間的な隔離手法は、はるかに小さい性能コストで実現しうる」ことが示唆される。(Source: [[@2021__UCC__Concentrated Isolation for Container Networks Toward Application-aware Sandbox Tailoring]] §6.2, [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §5.2) ## 未解決の問い - 異種 OS エミュレーション下で、実行環境の振る舞いからホスト OS を特定できないようにするためには、どの程度まで Linux と FreeBSD のリソース隔離の差異を吸収すべきか。 - Container Transplantation と Sandbox Tailoring を組み合わせ、OS カーネル移植とリソースごとの隔離強化を両立させた場合、全体の攻撃面をどのように評価・保証するか。 - Linuxulator の未対応システムコール(madvise, io_uring, reboot, swapoff など)を抱える状態で、どの程度の実用アプリケーション(nginx, Memcached など)が正常に動作するか。 - 攻撃者が FreeBSD や Linuxulator 自体の脆弱性を狙う場合、どのような追加的な防御(マイクロアーキテクチャや Capsicum など)が有効か。 ## 関連 - ソース: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] - エンティティ: [[FreeBSD]] / [[Linux]] / [[Linuxulator]] / [[Capsicum]] / [[gVisor]] / [[Kata Containers]] / [[Docker]] - 概念: [[Sandbox Tailoring]] / [[Capability-based Security]] / [[Lightweight Sandboxing]] / [[コンテナ仮想化]] - 関連 MOC: [[Cloud Container Orchestration]] ## 出典 - [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]](§1, §3, §4, §5)