Trusted Solaris ユーザーズガイド

Trusted Solaris によるアクセス制御ポリシーの適用

Trusted Solarisでは、次の制御機能によって、どのユーザーがどの情報にアクセスできるかを制御します。

任意アクセス制御

「任意アクセス制御 (Discretionary Access Control、DAC)」は、ファイルとディレクトリに対するユーザーのアクセスを制御するためのソフトウェア機構です。ファイルやディレクトリに設定する保護の種類は、所有者自身が決定できます。DAC には、従来の UNIX アクセス権ビットを使用する方法と、アクセス制御リスト (Access Control Lists、ACL) を利用する方法があります。

アクセス権ビット方式では、「所有者」、「グループ」、「その他のユーザー」の単位で、読み取り保護、書き込み保護、実行保護を設定できます。従来の UNIX システムでは、スーパーユーザー (root) が DAC 保護を書き換えることができましたが、Trusted Solaris では、管理者と承認されたユーザーしか DAC を書き換えることはできません。アクセス制御リスト (ACL) 方式では、より細かなアクセス制御を設定できます。所有者は、特定のユーザーやグループに対し、個別のアクセス権を設定できます。

基本的な UNIX でのアクセス権または ACL についてなじみがない場合は、『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』の「ファイル・マネージャによるファイル管理」で、ファイルとフォルダに関する情報を参照してください。

必須アクセス制御

「必須アクセス制御 (Mandatory Access Control、MAC)」は、システムによって実施されるアクセス制御機構で、セキュリティポリシーの実現に、認可上限と機密ラベルを使用します。簡単に説明すると、ユーザーがセッション開始時に選択したセキュリティレベル (認可上限または機密ラベル) と実行するプログラムを対応付け、そのレベルと同等または下位の情報、プログラム、デバイスだけにアクセスを許可する制御です。また、対応付けたレベルよりも下位のファイルに対しては、書き込みも禁止します。MAC は、ユーザーサイトのセキュリティポリシーに応じて実施され、これを書き換えるには、特別な承認または特権が必要となります。

認可上限

ユーザー認可上限」は、ユーザーサイトのセキュリティポリシーの一部として、セキュリティ管理者がサイトのすべてのユーザーに割り当てるものです。ユーザー認可上限は、ユーザーに委ねられたセキュリティの程度を示し、次の 2 つの要素で構成されます。

次の図は、一般的な認可上限を示しています。

図 1-2 一般的な認可上限

Graphic

機密ラベル

Trusted Solaris は、文字列を使用して、ユーザーがアクセスできる情報を特定します。この文字列を「機密ラベル (SL)」と呼びます。機密ラベルにも、認可上限の場合と同様に、格付け部分とコンパートメント部分があります。 機密ラベルは、ウィンドウのタイトルバーの角括弧 ([ ]) の中か、画面の下のトラステッドストライプという特殊な領域の中に表示されます。システム設定によってはまったく表示されない場合もあります。図 1-3 は、機密ラベルが表示されるように設定されたケースで、機密ラベルとトラステッドストライプがそれぞれ示されています。

図 1-3 機密ラベルが表示された一般的な環境

Graphic

システム内のサブジェクトとオブジェクトはすべて機密ラベルを持っています。「サブジェクト」とは、オブジェクト間に情報を流したり、システムの状態を変更したりする能動的な存在であり、通常はプロセス (実行中プログラム) を指します。「オブジェクト」とは、データを保持していたり、受け取ったりする受動的な存在であり、データファイルやディレクトリ、プリンタなどのデバイスを指します。プロセスで kill を使用したときのように、場合によってはプロセスがオブジェクトになることもあります。

トランザクションでの機密ラベルの位置付け

Trusted Solaris は、実行されたセキュリティ関連のトランザクションすべてを仲介します。サブジェクトの機密ラベルはオブジェクトの機密ラベルと比較され、どちらのラベルが「優位である」か (次の表を参照) によって、トランザクションは許可または拒否されます。ある機密ラベルは、次の 2 つの条件が満たされていれば、もう 1 つの機密ラベルよりも「優位」だとみなされます。

2 つのラベルは、同じ格付けと同じコンパートメントのセットを持っていれば、「同等」だとみなされます。ラベルが同等であれば、どちらも優位であると言えるため、アクセスが許可されます。1 つめのラベルが 2 つめのラベルよりも高い格付けを持っていたり、2 つめのラベルと同じコンパートメントを持っている場合、またはその両方に該当する場合は、1 つめのラベルの方が 2 つめのラベルよりも「完全に優位」であると言えます。どちらのラベルにも優位度が付けられない場合は、これらのラベルは「無関係」または「比較不可能」とみなされます。

読み取りトランザクションでは、サブジェクトの機密ラベルの方がオブジェクトの機密ラベルよりも優位でなければなりません。この法則によって、サブジェクトの信頼性は、オブジェクトにアクセスするための条件を確実に満たすことになります。また、サブジェクトの機密ラベルには、オブジェクトへのアクセスが許可されたすべてのコンパートメントグループが含まれることになります。

書き込みトランザクション、すなわち、サブジェクトによってオブジェクトが作成または変更された場合は、結果としてオブジェクトの機密ラベルの方がサブジェクトのラベルよりも優位になる必要があります。この法則によって、サブジェクトがオブジェクトの機密ラベルを降格させるようなことはなくなります。

必須アクセス制御の権限の方向を示すのに、WURD (Write Up Read Down: 「上位書き込み下位読み取り」) という頭文字を使用することがあります。しかし実際には、読み取りの場合も書き込みの場合も、トランザクションのサブジェクトとオブジェクトは通常同じ機密ラベルを持っているので、完全に優位であるかどうかを気にする必要はありません。

表 1-1 ラベル関係の例

ラベル 1 

関係 

ラベル 2 

TOP SECRET A B 

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

SECRET A 

TOP SECRET A B 

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

SECRET A B 

TOP SECRET A B 

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

TOP SECRET A 

TOP SECRET A B 

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

TOP SECRET A B 

TOP SECRET A B 

無関係 

TOP SECRET C 

TOP SECRET A B 

無関係 

SECRET C 

TOP SECRET A B 

無関係 

SECRET A B C 

機密ラベルの異なるファイル間でドラッグ&ドロップまたはコピー&ペーストを行うと、機密ラベルの変更権限がある場合は、確認のダイアログボックスが表示されます。変更権限がない場合は、トランザクションが中断されます。ダイアログボックスでは、宛先のラベルの昇格を受け入れたり (特別な承認がある場合)、宛先の機密ラベルをそのまま保持できるように情報を降格したり、トランザクションをすべてキャンセルすることができます。

データ保護のためのユーザー責任

ユーザーは、任意アクセス制御の一環として、アクセス権を設定してファイルとディレクトリを保護する責任を負っています。ファイルとディレクトリのアクセス権は、 ls(1) コマンドに -l オプションを付けて実行するか、ファイルマネージャを使って確認します (「アクセス権と ACL エントリの表示または変更」を参照)。

必須アクセス制御はシステムによって自動的に実施されます。機密ラベルで保護されている情報を昇格、降格させる権限を持つユーザーは、正当な理由なしにラベルを変更しない、という特別な責任を持ちます。

このほか、管理者から電子メールで指示が送られてきた場合、このメールを送ったのが本当に管理者であると確証がとれない限り、指示に従ってはいけません。たとえば、電子メールで送られてきた指示に従ってパスワードを特別な値へと変更すると、その電子メールの送り手はあなたのアカウントにログインできることになってしまいます。