EN JA
CAPSICUM(4)
CAPSICUM(4) FreeBSD Kernel Interfaces Manual CAPSICUM(4)

名称

Capsicum軽量の OS ケーパビリティとサンドボックス (sandbox) フレームワーク

書式

options CAPABILITY_MODE
options CAPABILITIES
options PROCDESC

解説

Capsicum は、ハイブリッドケーパビリティシステムモデルを実装する軽量の (lightweight) OS ケーパビリティとサンドボックス (sandbox) フレームワークです。アプリケーションとライブラリの細分化のために、セキュリティポリシを実装するために分離された (サンドボックス化された) 構成要素の中にソフトウェアのより大きな本体の分解のために、そしてソフトウェア脆弱性のインパクトを制限するために Capsicum を使用することができます。

Capsicum は、次の 2 つの中心となるカーネルのプリミティブ (基本的なもの) を提供しています:

capability mode (ケーパビリティモード)
(ファイルシステムと PID 名前空間のような) グローバルな OS の名前空間にアクセスする、 cap_enter(2) を呼び出すことのよって入る、プロセスモードは、制限されます。メモリマッピングまたはファイル記述子によって参照される単に明示的に委任された権利が使用されます。一旦設定すると、フラグは、将来の子どものプロセスによって継承され、クリアされないかもしれません。
capabilities (ケーパビリティ)
ファイル記述子で呼び出すことができる操作を制限します。例えば、 read(2)write(2) のみを呼び出すことができますが、 fchmod(2) を呼び出すことができない、 open(2) によって返されたファイル記述子は、 cap_rights_limit(2) を使用して改善されます。ケーパビリティの権利の完全なリストは、 rights(4) マニュアルページで見つけることができます。

ある場合には、 Capsicum は、グローバルな名前空間ではなくケーパビリティを使用して、オブジェクトを指定するために従来の POSIX API の代替を要求します:

process descriptors (プロセス記述子)
PID の名前空間へのアクセスを要求せずに、子プロセスを管理するための親プロセスを許可する、プロセスを表わすファイル記述子。 procdesc(4) に、より詳細に説明されています。
anonymous shared memory (匿名共有メモリ)
ファイル記述子と関連する、匿名のスワップオブジェクトをサポートする POSIX 共有メモリ API の拡張。 shm_open(2) に、より詳細に説明されています。

歴史

Capsicum は、 FreeBSD 9.0 ではじめて登場し、University of Cambridge (ケンブリッジ大学) で開発されました。

作者

Capsicum は、 University of Cambridge の Robert Watson <rwatson@FreeBSD.org>と Jonathan Anderson <jonathan@FreeBSD.org>および Google, Inc. の Ben Laurie <benl@FreeBSD.org>と Kris Kennaway <kris@FreeBSD.org>および Pawel Jakub Dawidek <pawel@dawidek.net>によって開発されました。

バグ

Capsicum は、 FreeBSD では実験であると考えられています。
October 19, 2013 FreeBSD