# Capability-based Security
## 定義
Capability-based Security(ケイパビリティベースセキュリティ)とは、主体がアクセス可能な資源と操作を、改ざん不可能な権限トークン(capability)として表現し、原則として最小権限を強制するアクセス制御の枠組みである。 capability は通常、ファイルディスクリプタや参照によって表現され、主体が capability を持たない資源にはアクセスできない。これにより、権限昇格や不必要な資源へのアクセスを防ぐ。(Source: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §4.3)
## 横断的知見
- **異なる階層での capability の応用**: OSDI'25 の Extension Interface Model([[EIM]])は、アプリケーション拡張に必要なホスト関数・変数・ハードウェアリソースを capability で保護し、拡張マネージャが各拡張入口で許可する最小限のリソースを選択する。APSys ’23 の Container Transplantation は、FreeBSD の Capsicum によりファイルディスクリプタ単位で Linux アプリケーションの資源アクセスを制限する。両者は capability を用いて「必要な資源のみにアクセスさせる」という点で共通するが、EIM はアプリケーション拡張インターフェースの安全性を、Capsicum は OS サンドボックスの細粒度化を目的としている。(Source: [[@2025__OSDI__Extending Applications Safely and Efficiently]], [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]])
- **Linux 標準ではない capability 機構の活用**: Capsicum は FreeBSD に標準実装されているが、Linux には同等の機構が標準ではない。Container Transplantation は Linux コンテナを FreeBSD へ移植することで、この capability 機構を Linux バイナリに透過適用しようとする。これは「Linux エコシステムの資産を活かしつつ、Linux にはないセキュリティ機構を利用する」という設計思想を示す。(Source: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] §4.3)
## 未解決の問い
- 未修正の Linux バイナリに対して、どこまで capability 機構を透過適用できるか。libpreopen と Casper でカバーできない動的アクセスパターンは何か。
- Capability-based Security と Linux の seccomp/AppArmor/eBPF LSM などの既存機構を組み合わせた場合、どのような冗長性やギャップが生じるか。
- Capability の付与・委譲・回収を動的に行う際の性能オーバーヘッドと、本番ワークロードへの影響はどの程度か。
## 関連
- ソース: [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]] / [[@2025__OSDI__Extending Applications Safely and Efficiently]]
- エンティティ: [[Capsicum]] / [[FreeBSD]] / [[Casper]] / [[libpreopen]]
- 概念: [[Container Transplantation]] / [[Extension Interface Model]] / [[コンテナ仮想化]]
## 出典
- [[@2023__APSys__Reducing Attack Surface with Container Transplantation for Lightweight Sandboxing]](§4.3)
- [[@2025__OSDI__Extending Applications Safely and Efficiently]](§2, §3)