Capsicum は、 UNIXおよび類似のシステム向けの機能ベースセキュリティの実装です。2010 年のUSENIX Security Symposiumで発表されたこのシステムは、 FreeBSD の 9.0 リリース以降、 FreeBSDの一部となっています。また、カーネルパッチの形でDragonflyBSDにも適用されています。[ 1 ]詳細な技術情報は、 Robert Watsonの博士論文[ 2 ]に記載されています。
このシステムは、通常のパーミッションを非常に小さなチャンクに分割することで機能します。プロセスがcapsicumモードに入ると、ファイルディスクリプタの形で既に持っている「ケーパビリティ」を除いて、制御ユーザーに関連付けられているすべてのパーミッションを失います。プロセスはUnixソケットを介してケーパビリティを受け取ることもできます。これらのファイルディスクリプタは、ファイルシステムへのアクセスだけでなく、ネットワークソケットなどの他のデバイスへのアクセスも制御します。フラグは、読み取りや書き込みなどのよりきめ細かいアクセスを制御するためにも使用されます。[ 3 ]
CloudABIは、capsicumをベースとしたアプリケーションバイナリインターフェースです。capsicumの全体的なパーミッションモデルはそのままに、プロセス(システムコール、Cライブラリなど)が実行される環境を簡素化するために再設計されており、同じ命令セットアーキテクチャでABIをサポートするあらゆるプラットフォームにプログラムを移植可能にします。提供されるインターフェースは、機能ベースのセキュリティと連携しない部分を除いたPOSIXとほぼ同じです。 2020年3月現在 CloudABI はFreeBSDにネイティブに組み込まれており、Capsicum ベースのパッチを使用するか、非セキュアなシステムコールエミュレータを使用することで他のシステムでも実行できます。[ 4 ] [ 5 ]
2020年10月現在、CloudABIは関心の低さからWebAssembly System Interfaceに置き換えられ、非推奨となっています。[ 4 ]