Solaris Trusted Extensions 開発ガイド

ラベルについて

Solaris Trusted Extensions ソフトウェアは、Solaris OS のセキュリティー機能を拡張する一連のポリシーおよびサービスを提供します。この拡張機能によって、ラベルの関係に基づくアクセス制御が可能になります。

ラベルは、データへのアクセスを制御し、データの格付けを管理します。ラベルは、システムセキュリティーポリシーによって解釈される属性です。「システムセキュリティーポリシー」は、システムで処理される情報を保護するために、システムソフトウェアによって強制される一連の規則です。「セキュリティーポリシー」という用語は、ポリシーそのものを指す場合と、ポリシーの実装を指す場合があります。詳細は、「Trusted Extensions セキュリティーポリシー」を参照してください。

この節では、ラベルの型、範囲、構成要素、および関係の概要を説明します。

ラベルの型

Trusted Extensions ソフトウェアは、機密ラベルと認可上限ラベルの 2 つの型のラベルを定義します。「機密ラベル」 は、エンティティーのセキュリティーレベルを示し、一般に「ラベル」と呼ばれます。「認可上限ラベル」は、ラベル範囲の上限を定義し、一般に「認可上限」と呼ばれます。

機密ラベル

Trusted Extensions ソフトウェアは、ゾーンを使用して、格付けされた情報をさまざまなレベルに収容します。各レベルは専用のゾーンに関連付けられ、ゾーンには機密ラベルが付けられます。機密ラベルは、ゾーンにおける情報の機密度を示し、ゾーン内のすべてのサブジェクトおよびオブジェクトに適用されます。ラベルには CONFIDENTIALSECRETTOP SECRET などがあります。「サブジェクト」は、プロセスなどの能動的なエンティティーであり、 情報をオブジェクト間で移動させたり、システムの状態を変化させます。「オブジェクト」はファイルやデバイスなどの受動的なエンティティーであり、データを収容したり、データを受け取ったりします。ゾーンで実行されるすべてのプロセス、またゾーンに含まれるすべてのファイルなどは、そのゾーンと同じ機密ラベルを持っています。すべてのプロセスおよびオブジェクトは、必須アクセス制御 (MAC) の決定に使用される機密ラベルを持ちます。デフォルトでは、機密ラベルはウィンドウシステムで表示されます。

認可上限ラベル

セキュリティー管理者は、各ユーザーに認可上限を割り当てます。認可上限は、ラベル範囲の上限を定義するラベルです。たとえば、ユーザーの認可上限が SECRET である場合、そのレベル以下に格付けされる情報にはアクセスできますが、それより上のレベルに格付けされる情報にはアクセスできません。「ユーザー認可上限」は、セキュリティー管理者によって割り当てられます。これは、ユーザーがセッション中にファイルにアクセスでき、プロセスを開始できる、最高位のラベルです。すなわち、ユーザー認可上限は、ユーザーのアカウントラベル範囲の上限です。ログイン時に、ユーザーはセッション認可上限を選択します。「セッション認可上限」によって、ユーザーがアクセスできるラベルが決まります。セッション認可上限は、ユーザーがそのログインセッション中にファイルにアクセスでき、プロセスを開始できる「最小上限」を定めます。セッション認可上限は、ユーザー認可上限によって決定されます。

ラベル範囲

セキュリティー管理者は、「必須アクセス制御」(MAC) ポリシを強制するためにラベル範囲およびラベルセットを定義します。「ラベル範囲」は、認可上限によって上端が区切られ、最小ラベルによって下端が区切られるラベルのセットです。「ラベルリミット」は、ラベル範囲の上限です。「ラベルセット」には、互いに共通要素がない場合もある 1 つ以上の別個のラベルが含まれます。ラベルセットの中のラベルには、どちらが優位であるかという関係はありません。

ラベルの構成要素

ラベルには、階層的な格付け、およびゼロ個以上の階層的でないコンパートメントのセットが含まれます。格付けは「レベル」または機密レベルとも呼ばれます。「格付け」は、TOP SECRETUNCLASSIFIED など、ラベルの階層内の 1 つのレベルを表します。「コンパートメント」は、格付けと関連付けられ、人事 (HR) 部や営業部の個人情報など、システム内の別個の階層的でない領域の情報を表します。コンパートメントは、特定領域の情報を知る必要があるユーザーにのみアクセスを制限します。たとえば、SECRET 格付けのユーザーのみが、コンパートメントの関連リストによって指定される機密情報にアクセスできますが、その他の機密情報にはアクセスできません。格付けとコンパートメントはともに、ゾーンのラベルとゾーン内のリソースを表します。

label_encodings ファイルに指定されるテキスト形式の格付けは、次のとおりです。


CLASSIFICATIONS:
name= CONFIDENTIAL; sname= C; value= 4; initial compartments= 4-5 190-239;
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;

label_encodings ファイルに指定されるテキスト形式のコンパートメントは、次のとおりです。


WORDS:
name= HR; minclass= C; compartments= 0;

ラベルの定義および形式についての詳細は、『Solaris Trusted Extensions ラベルの管理』および『コンパートメントモードワークステーションのラベル作成: エンコード形式』を参照してください。ラベル API については、第 2 章「ラベルと認可上限」を参照してください。

ラベル関係

ラベルを比較することは、プロセスのラベルをターゲットのラベルと比較することであり、ターゲットは機密ラベルの場合も認可上限ラベルの場合もあります。比較の結果に基づいて、プロセスはオブジェクトへのアクセスを許可または拒否されます。プロセスのラベルがターゲットのラベルより優位である場合にのみ、アクセスが許可されます。ラベル関係と優位性については、この節で説明します。例は、「2 つのラベル間の関係の判別」を参照してください。

機密レベル」は数値による格付けです。ラベルは、エンティティーの機密レベルを示し、ゼロ個以上のコンパートメントを含むことがあります。エンティティーとは、プロセス、ゾーン、ファイル、デバイスなどのことであり、ラベルを付けることができます。

ラベルには次のような型があって、相互に一定の関係があります。

ラベルの格付けおよびコンパートメントの指定には、label_encodings ファイルが使用されます。label_encodings(4) のマニュアルページを参照してください。

いずれかの型のラベルに別のラベル以上の機密レベルがある場合、そのラベルは別のラベルより優位であると言います。セキュリティーレベルに関するこの比較は、ラベルの格付けとコンパートメントに基づきます。優位ラベルの格付けは、別のラベルの格付け以上にする必要があります。さらに、優位ラベルには別のラベルのすべてのコンパートメントが含まれている必要があります。2 つのラベルが同等な場合は、「互いに優位である」と言います。

label_encodings ファイルの次の抜粋例では、REGISTERED (REG) ラベルは CONFIDENTIAL (C) ラベルより優位です。比較は各ラベルの value キーワードの値に基づきます。REG ラベルの value キーワードの値は数値的に C ラベルの value キーワードの値以上です。両方のラベルは PUBLIC (P) ラベルより優位です。

initial compartments キーワードの値は、格付けに最初に関連付けられるコンパートメントのリストを示します。initial compartments キーワードの各数字は「コンパートメントビット」であり、それぞれが特定のコンパートメントを表します。

CLASSIFICATIONS:
name= PUBLIC; sname= P; value= 1;
name= CONFIDENTIAL; sname= C; value= 4; initial compartments= 4-5 190-239;
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;

次の label_encodings の抜粋では、REG HR ラベル (人事) が REG ラベルより優位です。REG HR ラベルには、REGISTERED 格付けと HR コンパートメントがあります。HR コンパートメントの compartments キーワードで 0 コンパートメントビットが設定されるので、REG HR 格付けはコンパートメント 04–5、および 190–239 セットとなり、REG 格付けによって設定されるコンパートメントより値が大きくなります。

CLASSIFICATIONS:
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;
...
WORDS:
name= HR; minclass= C; compartments= 0;

オブジェクトにアクセスするために厳密優位が必要な場合があります。前の例で、REG ラベルは P ラベルより厳密に優位であり、REG HR ラベルは REG ラベルより厳密に優位です。ラベルを比較すると、REG ラベルは別の REG ラベルより優位です。

互いに優位でないラベルは、分離していると言います。「分離」ラベルは、会社内の部門を分けるために使用されることがあります。次の例では、REG HR ラベル (人事) は REG Sales ラベルから分離していると定義されます。これらのラベルは、それぞれのコンパートメントによって異なるコンパートメントビットが設定されるために、分離されます。


CLASSIFICATIONS:
name= REGISTERED; sname= REG; value= 6; initial compartments= 4-5 190-239;
...
WORDS:
name= HR; minclass= C; compartments= 0;
name= Sales; minclass= C; compartments= 1;

ラベル API については、「機密ラベル API」を参照してください。