FreeBSD Daily Topics

2013年7月8日dhclient(8)をサンドボックス化

src

dhclient(8) sandboxing

FreeBSD 10-CURRENTのdhclient(8)がCapsicumを使ってサンドボックス化されたものになりました。この開発はPawel Jakub Dawidek氏がFreeBSD Foundationのスポンサードのもとで実施したものです。

FreeBSDはPOSIX APIと親和性の良い形でケーパビリティの機能を実装しました。この機能は「Capsicum」と呼ばれており、ファイルディスクリプタやシステムコールごとに細かく制限をかけることができます。最大の特徴は既存のAPIとの親和性の高さにあり、ほかのOSが実装しているケーパビリティ機能と比較して、コーディング量が圧倒的に少なくて済みます。

ケーパビリティを実装した背景には、最近のアプリケーションで高いセキュリティを実現するには、従来の保護ドメインやアクセス制御リスト、またはMACによる規制などが適さないケースが増えているからです。保護ドメインやアクセス制御リストは、ソフトウェアが単一のリソースにアクセスする場合には効果がありますが、ソフトウェアが複数のリソースにアクセスするようなケースでは設定しにくいところがあります。

こうしたソフトウェアの代表格がChromeまたはそれと同じような構造を持ったブラウザです。Chromeは複数のプロセスに分離し、それぞれが複数のリソースにアクセスします。ChromeではOSが提供しているセキュリティ機能を使って、こうした状態でできるだけ高いセキュリティを実現しようとしていますが、コードはその分複雑で、隔離も完全には実現できていません。

Capsicumを使ってChromeを実装すると、コード量が桁違いに減るほか、求められているセキュリティを実現できます。Capsicumは研究室レベルのセキュリティ機能ではなく、実際に要求されるタイプの実用的なセキュリティ機能です。

Capsicumのカーネル内部における実装はすでに完了しており、今後はCapsicumの機能をユーザランドに適用していく段階にあります。Pawel Jakub Dawidek氏の取り組みはこうしたCapsicum適用のひとつです。FreeBSD 10.0-RELEASEにはこのようにCapsicumを適用したソフトウェアが多く含まれることになる見通しで、セキュリティ的に好ましいバージョンになるものと見られます。

おすすめ記事

記事・ニュース一覧