ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
Trusted Extensions セキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
Trusted Extensions ソフトウェアでは、Oracle Solaris OS のセキュリティー機能を拡張するポリシーおよびサービスのセットが提供されています。これらの拡張は、ラベルの関係に基づくアクセス制御を提供します。
ラベルはデータへのアクセスを制御し、データの格付けを保持します。ラベルはシステムセキュリティーポリシーによって解釈される属性です。「システムセキュリティーポリシー」とは、システムで処理される情報を保護するために、システムソフトウェアによって適用される規則のセットです。「セキュリティーポリシー」という用語は、ポリシー自体またはポリシーの実装を指す場合があります。詳細は、「Trusted Extensions セキュリティーポリシー」を参照してください。
このセクションには、ラベルのタイプ、範囲、コンポーネント、および関係についての概要が記載されています。
Trusted Extensions ソフトウェアでは、機密ラベルと認可上限ラベルという 2 つのタイプのラベルが定義されています。「機密ラベル」はエンティティーのセキュリティーレベルを示し、通常は「ラベル」と呼ばれます。「認可上限ラベル」はラベル範囲の上限を定義し、通常は「認可上限」と呼ばれます。
Trusted Extensions ソフトウェアではゾーンを使用して、格付けされた情報をさまざまなレベルで格納します。それぞれのレベルは、ある機密ラベルを持つ固有のゾーンに関連付けられます。機密ラベルは、そのゾーン内の情報の機密性を指定し、そのゾーン内のすべてのサブジェクトおよびオブジェクトに適用されます。ラベルは CONFIDENTIAL、SECRET、あるいは TOP SECRET のようになります。「サブジェクト」とは、プロセスなどのアクティブなエンティティーで、オブジェクト間で情報を移動させたり、システムの状態を変更したりします。「オブジェクト」とは、ファイルやデバイスなど、データを保持したり受け取ったりする受動的なエンティティーです。あるゾーンで実行するすべてのプロセスや、ゾーンに格納されているすべてのファイルなどは、それらのゾーンと同じ機密ラベルを持っています。すべてのプロセスおよびオブジェクトは、必須アクセス制御 (MAC) による決定で使用される機密ラベルを持ちます。デフォルトでは、機密ラベルはウィンドウシステムに表示されます。
セキュリティー管理者は、各ユーザーに認可上限を割り当てます。認可上限とは、ラベル範囲の上限を定義するラベルです。たとえば、認可上限が SECRET の場合、このレベル以下に格付けされる情報にはアクセスできますが、これより高いレベルに格付けされる情報にはアクセスできません。「ユーザー認可上限」はセキュリティー管理者によって割り当てられます。これは、ユーザーがセッション中にファイルにアクセスしてプロセスを開始できる、最上位のラベルです。言い換えると、ユーザー認可上限とは、ユーザーのアカウントラベル範囲の上限です。ユーザーはログインすると、自分のセッション認可上限を選択します。「セッション認可上限」は、ユーザーがアクセスできるラベルを決定します。セッション認可上限は、ユーザーがログインセッション中にファイルにアクセスしてプロセスを開始できる、「最低の上限」を設定します。セッション認可上限よりもユーザー認可上限の方が優位になります。
セキュリティー管理者は、ラベルの範囲とラベルセットを定義して、「必須アクセス制御」 (MAC) ポリシーを適用します。「ラベル範囲」は、認可上限または制限値による上端と、最小ラベルによる下端によって境界を設定されたラベルのセットです。「ラベル制限」は、ラベル範囲の上限です。「ラベルセット」には、1 つ以上の個別ラベルが含まれ、これらは互いに無関係であることもあります。ラベルセット内のラベル間に優位性はありません。
ラベルには、階層化された格付けと、階層化されていないゼロ個以上のコンパートメントのセットが含まれています。格付けは「レベル」あるいはセキュリティーレベルとも呼ばれます。「格付け」はラベル階層内の単一レベルを表し、TOP SECRET や UNCLASSIFIED などがあります。「コンパートメント」は格付けに関連付けられ、人事 (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 ラベルの管理』および『Compartmented Mode Workstation Labeling: Encodings Format 』を参照してください。ラベルの API については、第 2 章ラベルと認可上限を参照してください。
ラベルの比較は、プロセスのラベルをターゲットのラベルと比較することを意味し、ターゲットのラベルは機密ラベルあるいは認可上限ラベルである場合があります。比較の結果に基づいて、プロセスに対してオブジェクトへのアクセス権が付与されるか、アクセスが拒否されます。アクセス権が付与されるのは、プロセスのラベルがターゲットのラベルよりも優位な場合に限られます。ラベルの関係と優位性については、このセクションで後述します。この例については、「2 つのラベル間の関係の特定」を参照してください。
「セキュリティーレベル」は数値による格付けです。ラベルはエンティティーのセキュリティーレベルを示し、ゼロ以上のコンパートメントが含まれている場合があります。エンティティーは、プロセス、ゾーン、ファイル、デバイスなどのラベル付け可能な対象です。
ラベルには次のタイプがあり、次のように相互に関連しています。
同等 – 1 つのラベルが別のラベルと同等のとき、次の両方の文が真になります。
ラベルの格付けが別のラベルの格付けと数値的に同等である。
ラベルは別のラベルとまったく同じコンパートメントを持つ。
優位 – 1 つのラベルが別のラベルよりも優位のとき、次の両方の文が真になります。
ラベルの格付けが別のラベルの格付けよりも数値的に大きいか同等である。
ラベルは別のラベルとまったく同じコンパートメントを持つ。
完全に優位 – 1 つのラベルが別のラベルよりも完全に優位のとき、次の両方の文が真になります。
ラベルの格付けが別のラベルの格付けよりも数値的に大きいか同等である。
ラベルは別のラベルが持つすべてのコンパートメントを持ち、それ以外のコンパートメントを少なくとも 1 つ持つ。
無関係 – 1 つのラベルと別のラベルが無関係であるとき、次の両方の文が真になります。
ラベルが同等でない。
いずれのラベルも他方のラベルより優位ではない。
ラベルの格付けとコンパートメントを指定するには label_encodings ファイルを使用します。label_encodings(4) のマニュアルページを参照してください。
いずれかのタイプのラベルが持つセキュリティーレベルが、別のラベルのセキュリティーレベルと同等かそれより高い場合、最初のラベルは 2 番目のラベルよりも「優位」であると言います。このセキュリティーレベルの比較は、ラベルの格付けおよびコンパートメントに基づきます。優位なラベルの格付けは、2 番目のラベルの格付けと等しいか、それより高いことが必要です。また、優位なラベルには、2 番目のラベルのすべてのコンパートメントが含まれている必要があります。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 の格付けには、REG の格付けによって設定されるコンパートメントよりも多い、コンパートメント 0、4–5、および 190–239 が設定されます。
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」を参照してください。