Oracle Solaris Trusted Extensions 管理の手順

Trusted Extensions ソフトウェアのラベル

ラベルと認可上限は、Trusted Extensions の必須アクセス制御 (MAC) で中心的な機能を果たします。これらは、各ユーザーがアクセスできるプログラム、ファイル、およびディレクトリを決定します。ラベルと認可上限は、1 つの「格付け」構成要素と任意の数の「コンパートメント」構成要素から構成されます。格付けコンポーネントは、TOP SECRETCONFIDENTIAL などの、セキュリティーの階層レベルを表します。コンパートメントコンポーネントは、共通な情報へのアクセスを必要とするユーザーのグループを表します。コンパートメントの一般的な例として、プロジェクト、部署、物理的な場所などがあります。承認されたユーザーには、ラベルは読みやすい形式で表示されますが、内部的にはラベルは数値として処理されます。数値によるラベルと人が読みやすい形式のラベルは、label_encodings ファイルで定義されます。

Trusted Extensions は、試行されるセキュリティー関連トランザクションのすべてを仲介します。このソフトウェアは、アクセス元のエンティティー (一般的にはプロセス) のラベルと、アクセス先のエンティティー (通常はファイルシステムオブジェクト) のラベルを比較します。このソフトウェアは、どちらのラベルが「優位」であるかに応じて、トランザクションを許可または拒否します。ラベルは、割り当て可能なデバイス、ネットワーク、フレームバッファー、別のホストなど、ほかのシステムリソースへのアクセスを決定する場合にも使用されます。

ラベル間の優位関係

次の 2 つの条件を満たす場合、一方のエンティティーのラベルが、他方のエンティティーのラベルよりも優位であると言います。

2 つのラベルの格付けが同じで、コンパートメントのセットも同じである場合、これらのラベルは「同等」であるとされます。ラベルが同等であれば、相互に優位となり、アクセスは許可されます。

一方のラベルのコンパートメントに他方のラベルのコンパートメントがすべて含まれ、このラベルの格付けが他方よりも高いか、両方のラベルの格付けが同等である場合、最初のラベルは他方のラベルより「完全に優位」であると言います。

どちらのラベルにも優位が付けられない場合、これらのラベルは「無関係」または「比較不可能」とみなされます。

次の表に、ラベルの優位の比較例を示します。この例では、NEED_TO_KNOW の格付けは INTERNAL よりも上位にあります。3 つのコンパートメントとして Eng、Mkt、および Fin があります。

表 1–1 ラベル関係の例

ラベル 1 

関係 

ラベル 2 

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

INTERNAL Eng Mkt

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

NEED_TO_KNOW Eng

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

INTERNAL Eng

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より優位 (または同等) 

NEED_TO_KNOW Eng Mkt

NEED_TO_KNOW Eng Mkt

無関係 

NEED_TO_KNOW Eng Fin

NEED_TO_KNOW Eng Mkt

無関係 

NEED_TO_KNOW Fin

NEED_TO_KNOW Eng Mkt

無関係 

INTERNAL Eng Mkt Fin

管理ラベル

Trusted Extensions には、 ADMIN_HIGHADMIN_LOW の 2 つの特殊な管理ラベルがあり、ラベルまたは認可上限として使用されます。これらのラベルは、システムリソースを保護するために使用され、一般ユーザーではなく管理者用のラベルです。

ADMIN_HIGH は最大のラベルです。ADMIN_HIGH は、システム中のすべてのラベルに対して優位であり、管理データベースや監査証跡などのシステムデータが読み取られるのを防ぎます。ADMIN_HIGH ラベルが付いたデータを読み取るには、大域 ゾーンで操作する必要があります。

ADMIN_LOW は最小のラベルです。一般ユーザーのラベルも含め、システム内のその他すべてのラベルは、ADMIN_LOW に対して優位になります。必須アクセス制御では、ユーザーはユーザーのラベルよりも低いラベルのファイルにデータを書き込むことができません。したがって、一般ユーザーは ADMIN_LOW ラベルのファイルを読み取ることはできますが、修正することはできません。一般的に ADMIN_LOW は、/usr/bin のファイルなど、共有されている誰でも実行可能なファイルを保護するために使用されます。

ラベルエンコーディングファイル

システムのラベルコンポーネント (格付け、コンパートメント、および関連規則) はすべて、ADMIN_HIGH ファイルの label_encodings ファイルに保存されます。このファイルは、/etc/security/tsol ディレクトリに保存されます。セキュリティー管理者は、サイトの label_encodings ファイルを設定します。ラベルエンコーディングファイルには、次の内容が含まれます。

詳細は、label_encodings(4) のマニュアルページを参照してください。詳しい情報は、『Solaris Trusted Extensions ラベルの管理』『コンパートメントモードワークステーションのラベル作成: エンコード形式』も参照してください。

ラベル範囲

ラベル範囲」は、ユーザーが操作を実行できる使用可能なラベルのセットです。ユーザーとリソースは、どちらにもラベル範囲があります。ラベル範囲で保護可能なリソースには、割り当て可能なデバイス、ネットワーク、インタフェース、フレームバッファー、コマンドやアクションなどが含まれます。ラベル範囲は、上限が認可上限によって、下限が最小ラベルによって定められます。

範囲は必ずしも、最大ラベルと最小ラベル間のすべてのラベルの組み合わせを含む必要はありません。label_encodings ファイルの規則で、特定の組み合わせを無効にできます。ラベルが範囲に含まれるためには、ラベルエンコーディングファイルの適用可能なすべての規則で許可される、「適格な形式」である必要があります。

ただし、認可上限は適格な形式である必要はありません。たとえば、label_encodings ファイルで、ラベルでコンパートメント EngMkt、および Fin の組み合わせが禁止されている場合を考えます。 INTERNAL Eng Mkt Fin は、有効な認可上限ですが、有効なラベルではありません。認可上限として、この組み合わせはユーザーが INTERNAL EngINTERNAL Mkt、および INTERNAL Fin のラベルのファイルにアクセスすることを許可します。

アカウントラベル範囲

ユーザーに認可上限と最小ラベルを割り当てると、ユーザーが操作の実行を許可される「アカウントラベル範囲」の上限と下限が決まります。次の式は、アカウントラベル範囲を表しています。≤ は、「前者より後者が優位であるか、両者が同等」であることを表します。

最小ラベル ≤ 許可されたラベル ≤ 認可上限

ユーザーは、認可上限を超えず、最小ラベルよりも優位なラベルで操作が許可されます。ユーザーの認可上限または最小ラベルが明示的に設定されていない場合は、label_encodings ファイルで定義されたデフォルトが有効になります。

ユーザーが複数ラベルまたは単一ラベルで操作を実行できるよう、認可上限と最小ラベルを割り当てることができます。ユーザーの許可上限と最小ラベルが等しい場合、このユーザーは 1 つのラベルだけで操作できます。

セッション範囲

「セッション範囲」は、Trusted Extensions のセッション中にユーザーが利用可能なラベルのセットです。セッション範囲は、ユーザーのアカウントラベル範囲内であり、かつシステムに設定されたラベル範囲内である必要があります。ログイン時にユーザーがシングルラベルのセッションモードを選択する場合、セッション範囲はそのラベルに制限されます。ユーザーが複数ラベルのセッションモードを選択する場合、ユーザーによって選択されたラベルがセッションの認可上限になります。セッションの認可上限は、セッション範囲の上限を定義します。ユーザーの最小ラベルは、下限を定義します。ユーザーは、最小ラベルのワークスペースでセッションを開始します。ユーザーはセッション中に、セッション範囲内の別のラベルのワークスペースに切り替えることができます。

ラベルの保護対象とラベルの表示場所

ラベルは、デスクトップに表示されるほか、プリンタ出力など、デスクトップで実行される出力にも表示されます。