FreeBSD Daily Topics

2010年8月31日Capsicumを知る - 実装がとてもシンプル、普及が容易

9月末または10月のリリースが予定されているFreeBSD 9.0-RELEASEには新しいセキュリティ機能「Capsicum」が登場します。これでFreeBSDにおける主なファイル保護機構は3種類ということになります。Capsicumはケーパビリティの実装系のひとつと分類できるもので、既存の実装と相性が良く、少量のコードでアプリケーションやツールでケーパビリティを実現できるという特徴があります。

保護ドメインやアクセス制御リストなどの保護機構に慣れていると、この「ケーパビリティ」は理解しにくいところがあります。FDTではしばらく、Capsicumを理解するための概念的な説明や、実際の実装例などを紹介して「Capsicum」の機能を紹介していきます。

What's the great point of Capsicum?

FreeBSD 9.0-RELEASEに登場することになる「Capsicum」ですが、Capsicumのようなサンドボックス技術/コンパートメント技術はすでに多くのOSが有しています。こうした技術としては、⁠Capsicum」はかなり後発の技術ということになります。

ほかのサンドボックス技術/コンパートメント技術と比較した場合の「Capsicum」の最大の特徴は、既存の実装との相性が高く、コーディングの量が最小限で済む、という点にあります。既存のアプリケーションやツールでサンドボックス/コンパートメントを実現しようとした場合、ほかの類似技術ではそれなりのコーディングが必要になります。これが「Capsicum」ではきわめて短いソースコードを追加するだけで処理が完了します。この良く整理されたモデルは、既存のソースコードとの親和性が極めて高いのです。後発の技術でありよく研究されたからこそ実現されたモデルといえます。

「Capsicum」に対応していないカーネルでも動作するようにソースコードを追加することも簡単です。どういったコーディングを追加することになるのかは、これからソースコードを例に上げていくなかで紹介していきます。

実装がシンプルというのはこうした機能を活用する上でとても重要です。実装が複雑になるようでは、そもそも機能が使われない可能性が高くなります。実装がシンプルで追加が容易、既存のソースコードにロジックの変更を求めないというのは、普及を促進する上でも重要です。⁠Capsicum」の開発者がFreeBSDのコアデベロッパであり、かつ、研究者でもあるという状況が、こうしたモデルの構築を可能にしたといえます。

おすすめ記事

記事・ニュース一覧