Solaris Trusted Extensions 開発ガイド

ラベル対応アプリケーションの設計

ほとんどのアプリケーションはラベル対応である必要はありません。したがって、大部分の Solaris ソフトウェアアプリケーションは、変更せずに Trusted Extensions で実行されます。Trusted Extensions のラベルベースアクセス制限は、Solaris OS 標準と整合して機能するように設計されています。マルチレベルポートにバインドするプロセスは、複数のラベルでデータを受信し、信頼されてセキュリティーポリシーが強制されるので、一般に、ラベル対応である必要があります。

たとえば、アプリケーションが必要なリソースより低位のラベルで実行されているために、アプリケーションがリソースにアクセスできないことがあります。ただし、そのリソースへアクセスしようとすることは特別なエラー条件にはなりません。代わりに、アプリケーションによって「ファイルが見つかりませんでした (File not found)」エラーが表示されます。あるいは、アクセスが許可されない高位のラベルを持つ情報にアプリケーションがアクセスしようとすることがあります。それに対し、セキュリティーポリシーでは、十分な特権がないアプリケーションはより高位のラベルを持つリソースの存在を認識できないとされています。そのため、アプリケーションのラベルより高位のラベルを持つリソースにアプリケーションがアクセスしようとした場合、そこで発生するエラー条件はラベルに固有ではありません。そのエラーメッセージは、存在しないリソースにアクセスしようとするアプリケーションに返されるエラーメッセージと同じです。「特別なエラー条件」がないことが、セキュリティーの原則の強制に役立ちます。

Trusted Extensions では、アプリケーションではなく、オペレーティングシステムがセキュリティーポリシーを強制します。このセキュリティーポリシーは「必須アクセス制御 (MAC) ポリシー」と呼ばれます。たとえば、アプリケーションは、保護されているリソースにアクセス可能であるか否かを判別しません。最終的にオペレーティングシステムが MAC ポリシーを強制します。リソースにアクセスするのに十分な特権をアプリケーションが持たない場合、そのリソースはアプリケーションで使用できません。そのため、アプリケーションは、ラベル付けされたリソースにアクセスするためにラベルに関して何も知る必要はありません。

同様に、ほとんどのラベル対応アプリケーションは、ラベル対応でないアプリケーションと一貫して動作するように設計する必要があります。ラベル対応のアプリケーションは、単一ラベルのみを含む環境、ラベル付けされていない環境、および複数のラベルを含む環境で基本的に同じ動作をする必要があります。単一ラベル環境の例は、特定ラベルのユーザーセッションが同じラベルでデバイスをマウントする場合です。「ラベル付けされていない環境」では、ラベルは明示的に設定されず、デフォルトラベルが tnrhdb データベースで指定されます。smtnrhdb(1M) のマニュアルページを参照してください。