「必須アクセス制御 (Mandatory Access Control、MAC)」 は、ラベル関係に基づいた、システムによって実施されるアクセス制御機構です。システムにより、プログラムを実行するために作成されたすべてのプロセスに機密ラベルが対応付けられます。このラベルが、MAC ポリシーでのアクセス制御の決定に使用されます。通常、各プロセスでは、相手側のラベルが自身のラベルと同等でないかぎり、情報を格納することも、ほかのプロセスと通信することもできません。MAC ポリシーでは、ラベルが同等または自身よりも低いオブジェクトからのデータ読み取りが、プロセスに対して許可されます。ただし、管理者は、レベルの低いオブジェクトがほとんどまたはまったく存在しないような、ラベル付き環境を作成することもできます。
デフォルトでは、MAC ポリシーはユーザーには表示されません。通常のユーザーは、オブジェクトに対する MAC アクセスを持っていないかぎり、そのオブジェクトを表示できません。あらゆる場合において、ユーザーが MAC ポリシーに反する行為を行うことはできません。
格付け (「レベル」とも呼ばれる)
セキュリティーの階層レベルを示す構成要素です。人に適用した場合、格付けは信用の程度を表します。データに適用した場合、格付けは必要な保護の度合いを表します。
米国政府で使用されている格付けは、TOP SECRET、 SECRET、CONFIDENTIAL、および UNCLASSIFIED です。産業界の格付けには、標準化されたものはありません。個々の企業が独自の格付けを設定できます。例については、図 1–3 を参照してください。左側の項目が格付けです。右側の項目がコンパートメントです。
コンパートメントは、作業グループ、部門、プロジェクト、トピックなどのグループ化を表します。格付けに必ずしもコンパートメントがあるとはかぎりません。図 1–3 では、Confidential という格付けに 3 つの排他的なコンパートメントがあります。Public と Max Label にはコンパートメントがありません。図が示すように、この組織では 5 つのラベルが定義されています。
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–5 は、Trusted JDS システムでの一般的なマルチレベル Trusted Extensions セッションを示しています。トラステッドストライプが上部にあります。トラステッドパスメニューはトラステッドストライプから起動します。ある役割になるには、ユーザー名をクリックして役割メニューを起動します。下部パネルのワークスペーススイッチには、ワークスペースラベルの色が表示されます。下部パネルのウィンドウリストには、ウィンドウのラベルの色が表示されます。
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 ゾーンに置かれた方のファイルには、社内のみで共有できる情報が格納されます。
Trusted Extensions ソフトウェアは、試みられたすべてのセキュリティー関連のトランザクションを管理します。サブジェクトのラベルがオブジェクトのラベルと比較され、どちらのラベルが「優位」であるかに応じてトランザクションが許可または拒否されます。ある実体のラベルは、次の 2 つの条件が満たされている場合に、もう一方の実体のラベルよりも「優位」だとみなされます。
1 つ目の実体のラベルの格付け要素が、もう一方の実体の格付けと同等またはそれよりも上である。
もう一方の実体のラベルのすべてのコンパートメントが 1 つ目の実体のラベルに含まれている。
2 つのラベルは、同じ格付けと同じコンパートメントのセットを持つ場合に、「同等」 だとみなされます。ラベルが同等であれば、これらは互いに優位です。よって、アクセスが許可されます。
次の条件のいずれかを満たす場合、1 つ目のラベルは 2 つ目のラベルよりも「完全に優位」であると言えます。
1 つ目のラベルが 2 つ目のラベルよりも高い格付けを持っている
1 つ目のラベルの格付けが 2 つ目のラベルの格付けと同等であり、1 つ目のラベルに 2 つ目のラベルのコンパートメントがすべて含まれ、1 つ目のラベルに追加のコンパートメントがある
2 つ目のラベルよりも完全に優位なラベルには、2 つ目のラベルへのアクセスが許可されます。
どちらのラベルももう一方のラベルより優位ではない場合、これらのラベルは「無関係」とみなされます。無関係なラベル間ではアクセスは許可されません。
これらの構成要素から、次の 4 つのラベルを作成できます。
TOP SECRET
TOP SECRET A
TOP SECRET B
TOP SECRET AB
TOP SECRET AB は自身に対して優位であり、ほかのラベルよりも完全に優位です。TOP SECRET A は自身に対して優位であり、TOP SECRET よりも完全に優位です。TOP SECRET B は自身に対して優位であり、TOP SECRET よりも完全に優位です。TOP SECRET A と TOP SECRET B は無関係です。
読み取りトランザクションでは、サブジェクトのラベルがオブジェクトのラベルよりも優位である必要があります。この規則により、サブジェクトの信頼レベルは、オブジェクトにアクセスするための条件を完全に満たすことになります。つまり、サブジェクトのラベルには、オブジェクトへのアクセスが許可されたすべてのコンパートメントが含まれます。TOP SECRET A は、TOP SECRET A と TOP SECRET のデータを読み取ることができます。同様に、TOP SECRET B は TOP SECRET B と TOP SECRET のデータを読み取ることができます。TOP SECRET A が TOP SECRET B のデータを読み取ることはできません。同様に、TOP SECRET B も TOP 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 はトランザクションを許可しません。情報の昇格または降格をユーザーに承認できるのはセキュリティー管理者です。詳細は、「トラステッドアクションの実行」を参照してください。