Oracle Solaris Trusted Extensions ユーザーズガイド

必須アクセス制御

「必須アクセス制御 (Mandatory Access Control、MAC)」 は、ラベル関係に基づいた、システムによって実施されるアクセス制御機構です。システムにより、プログラムを実行するために作成されたすべてのプロセスに機密ラベルが対応付けられます。このラベルが、MAC ポリシーでのアクセス制御の決定に使用されます。通常、各プロセスでは、相手側のラベルが自身のラベルと同等でないかぎり、情報を格納することも、ほかのプロセスと通信することもできません。MAC ポリシーでは、ラベルが同等または自身よりも低いオブジェクトからのデータ読み取りが、プロセスに対して許可されます。ただし、管理者は、レベルの低いオブジェクトがほとんどまたはまったく存在しないような、ラベル付き環境を作成することもできます。

デフォルトでは、MAC ポリシーはユーザーには表示されません。通常のユーザーは、オブジェクトに対する MAC アクセスを持っていないかぎり、そのオブジェクトを表示できません。あらゆる場合において、ユーザーが MAC ポリシーに反する行為を行うことはできません。

機密ラベルと認可上限

ラベルには、次の 2 つの構成要素があります。

図 1–3 一般的な産業界向け機密ラベル

図は、産業界で定義される一般的なラベルと認可上限を示しています。

Trusted Extensions には 2 種類のラベルがあります。「機密ラベル」と「認可上限」です。作業の認可は 1 つ以上の機密ラベルで得ることができます。「ユーザー認可上限」と呼ばれる特殊なラベルは、そのユーザーが作業することを許されている最高ラベルを決定します。さらに、各ユーザーには最下位の機密ラベルが指定されています。 このラベルは、マルチレベルのデスクトップセッションにログインするときにデフォルトで使用されます。ログイン後は、この範囲内のほかのラベルで作業することを選択できます。最下位の機密ラベルとして Public を、認可上限として Confidential: Need to Know をユーザーに割り当てたとします。最初のログインでは、デスクトップのワークスペースのラベルは Public です。セッション中、ユーザーは Confidential: Internal Use Only および Confidential: Need to Know でワークスペースを作成できます。

Trusted Extensions が設定されたシステムでは、すべてのサブジェクトとオブジェクトにラベルがあります。「サブジェクト」とは能動的な実体であり、通常はプロセスを指します。プロセスによって、情報がオブジェクト間を移動したり、システムの状態が変更されたりします。「オブジェクト」とは、データを保持したり、受け取ったりする受動的な実体であり、データファイルやディレクトリ、プリンタなどのデバイスを指します。プロセスに対して kill コマンドを使用するときのように、プロセスがオブジェクトになる場合もあります。

ラベルは、ウィンドウのタイトルバーと、画面の特殊なストライプである「トラステッドストライプ」に表示することができます。図 1–4 は、Trusted CDE での一般的なマルチレベル Trusted Extensions セッションを示しています。ラベルとトラステッドストライプが表示されています。

図 1–4 一般的な Trusted CDE のセッション

画面は、ウィンドウとアイコン上のラベル、トラステッドシンボルとワークスペースのラベルが表示されたトラステッドストライプ、およびトラステッドパスメニューを示しています。

図 1–5 は、Trusted JDS システムでの一般的なマルチレベル Trusted Extensions セッションを示しています。トラステッドストライプが上部にあります。トラステッドパスメニューはトラステッドストライプから起動します。ある役割になるには、ユーザー名をクリックして役割メニューを起動します。下部パネルのワークスペーススイッチには、ワークスペースラベルの色が表示されます。下部パネルのウィンドウリストには、ウィンドウのラベルの色が表示されます。

図 1–5 一般的な Trusted JDS のセッション

画面は、ウィンドウ上のラベル、トラステッドストライプ、トラステッドシンボル、トラステッドパスメニュー、現在のユーザー、ワークスペースとウィンドウのラベル、および下部ストライプを示しています。

コンテナとラベル

Trusted Extensions では、ラベル付けにコンテナが使用されます。コンテナは「ゾーン」とも呼ばれます。「大域ゾーン」は管理ゾーンであり、ユーザーは使用できません。非大域ゾーンは「ラベル付きゾーン」と呼ばれます。ラベル付きゾーンはユーザーが使用します。大域ゾーンの一部のシステムファイルはユーザーと共有されます。これらのファイルがラベル付きゾーンに表示される場合、ファイルのラベルは ADMIN_LOW になります。

ネットワーク通信はラベルによって制限されます。デフォルトでは、それぞれのラベルが異なるため、ゾーン間の通信はできません。したがって、あるゾーンから別のゾーンへの書き込みはできません。

ただし、管理者が特定のゾーンを設定して、特定のディレクトリをほかのゾーンから読み取れるようにすることができます。ほかのゾーンは、同じホスト上にあるものでも、リモートシステム上のものでもかまいません。たとえば、レベルが低いゾーンにあるユーザーのホームディレクトリを、自動マウントサービスを使ってマウントできるようになります。このようなレベルの低いホームマウントのパス名表記では、ゾーン名を次のように含めます。


/zone/name-of-lower-level-zone/home/username

次の端末ウィンドウは、レベルの低いホームディレクトリの表示/非表示を示しています。ログインラベルが Confidential: Internal Use Only のユーザーは、レベルが低いゾーンを読み取れるように自動マウントサービスが設定されている場合に、Public ゾーンの内容を表示できます。textfileInfo.txt ファイルは 2 種類あります。Public ゾーンに置かれた方のファイルには、全員で共有できる情報が格納されます。Confidential: Internal Use Only ゾーンに置かれた方のファイルには、社内のみで共有できる情報が格納されます。

図 1–6 上位ラベルのゾーンからの Public 情報の表示

図は、Public ゾーンの内容を Internal Use Only ゾーンから表示できることを示しています。

ラベルとトランザクション

Trusted Extensions ソフトウェアは、試みられたすべてのセキュリティー関連のトランザクションを管理します。サブジェクトのラベルがオブジェクトのラベルと比較され、どちらのラベルが「優位」であるかに応じてトランザクションが許可または拒否されます。ある実体のラベルは、次の 2 つの条件が満たされている場合に、もう一方の実体のラベルよりも「優位」だとみなされます。

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

次の条件のいずれかを満たす場合、1 つ目のラベルは 2 つ目のラベルよりも「完全に優位」であると言えます。

2 つ目のラベルよりも完全に優位なラベルには、2 つ目のラベルへのアクセスが許可されます。

どちらのラベルももう一方のラベルより優位ではない場合、これらのラベルは「無関係」とみなされます。無関係なラベル間ではアクセスは許可されません。

たとえば、次のような図を考えます。

図は、2 つのコンパートメント A と B が考えられる Top Secret の格付けを示しています。

これらの構成要素から、次の 4 つのラベルを作成できます。

TOP SECRET AB は自身に対して優位であり、ほかのラベルよりも完全に優位です。TOP SECRET A は自身に対して優位であり、TOP SECRET よりも完全に優位です。TOP SECRET B は自身に対して優位であり、TOP SECRET よりも完全に優位です。TOP SECRET ATOP SECRET B は無関係です。

読み取りトランザクションでは、サブジェクトのラベルがオブジェクトのラベルよりも優位である必要があります。この規則により、サブジェクトの信頼レベルは、オブジェクトにアクセスするための条件を完全に満たすことになります。つまり、サブジェクトのラベルには、オブジェクトへのアクセスが許可されたすべてのコンパートメントが含まれます。TOP SECRET A は、TOP SECRET ATOP SECRET のデータを読み取ることができます。同様に、TOP SECRET BTOP SECRET BTOP SECRET のデータを読み取ることができます。TOP SECRET ATOP SECRET B のデータを読み取ることはできません。同様に、TOP SECRET BTOP SECRET A のデータを読み取ることはできません。TOP SECRET AB は、すべてのラベルのデータを読み取ることができます。

書き込みトランザクション、つまり、サブジェクトによってオブジェクトが作成または変更される場合は、結果として得られるオブジェクトのラベル付きゾーンがサブジェクトのラベル付きゾーンと同等である必要があります。1 つのゾーンから別のゾーンへの書き込みトランザクションは許可されません。

実際には、読み取りや書き込みのトランザクションでのサブジェクトとオブジェクトは通常は同じラベルを持つので、完全に優位であるかどうかを気にする必要はありません。たとえば、TOP SECRET A のサブジェクトは、TOP SECRET A のオブジェクトを作成または変更できます。Trusted Extensions では、TOP SECRET A のオブジェクトは TOP SECRET A というラベルのゾーンにあります。

次の表は、米国政府のラベルおよび産業界のラベルでの優位性の関係を示しています。

表 1–1 Trusted Extensions のラベル関係の例
 

ラベル 1 

関係 

ラベル 2 

米国政府のラベル 

TOP SECRET AB

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

SECRET A

TOP SECRET AB

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

SECRET A B

 

TOP SECRET AB

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

TOP SECRET A

 

TOP SECRET AB

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

TOP SECRET AB

 

TOP SECRET AB

無関係 

TOP SECRET C

 

TOP SECRET AB

無関係 

SECRET C

 

TOP SECRET AB

無関係 

SECRET A B C

産業界のラベル 

Confidential: Restricted

ラベル 1 はラベル 2 より優位 

Confidential: Need to Know

 

Confidential: Restricted

ラベル 1 はラベル 2 より優位 

Confidential: Internal Use Only

 

Confidential: Restricted

ラベル 1 はラベル 2 より優位 

Public

 

Confidential: Need to Know

ラベル 1 はラベル 2 より優位 

Confidential: Internal Use Only

 

Confidential: Need to Know

ラベル 1 はラベル 2 より優位 

Public

 

Confidential: Internal

ラベル 1 はラベル 2 より優位 

Public

 

Sandbox

無関係 

その他すべてのラベル 

異なるラベルを持つファイル間で情報を転送するとき、ファイルのラベル変更がそのユーザーに承認されている場合は、確認ダイアログボックスが Trusted Extensions によって表示されます。ユーザーが承認されていない場合、Trusted Extensions はトランザクションを許可しません。情報の昇格または降格をユーザーに承認できるのはセキュリティー管理者です。詳細は、「トラステッドアクションの実行」を参照してください。