Trusted Solaris 管理の概要

第 1 章 管理入門

この章では、Trusted Solaris のシステム管理について紹介します。まず、『Trusted Solaris ユーザーズガイド』で説明した Trusted Solaris の概念を簡単に確認して、次に、Trusted Solaris 管理者に必要な上級概念について説明します。

基本概念の確認

Trusted Solaris は、Solaris の機能を拡張し、構成可能なセキュリティポリシーを組み込んだシステムです。この項では、ユーザーや管理者が、Trusted Solaris 環境を理解するための基本的な概念について簡単に説明します。詳細については、『Trusted Solaris ユーザーズガイド』を参照してください。

侵入者からの保護

Trusted Solaris では、ユーザー名とパスワードの入力が必要なアカウントを設けることによって、システムへのアクセスを保護します。パスワードは、ユーザーが作成することも、システムから生成することもできます。どちらを選択するかはサイトのポリシーで決定します。このほか、ユーザーに定期的なパスワードの変更を要請したり、ログイン時に機密度に関する情報を入力させるような設定も可能です。この情報によって、ユーザーがアクセスできる情報が確定します。

Trusted Solaris では、ユーザーがシステムのセキュリティに関わる部分を使用している間、画面下部にトラステッドパスシンボルが表示されます。このシンボルは模造することができません。

また、管理者がユーザーに電子メールで指示を送る場合、必ず直接ユーザーに会って、指示内容を確認させなくてはなりません。このことはポリシーに明記しておいてください。また、ユーザー側にも、直接確認をとらずに電子メールの指示に従うことがないよう指導しておく必要があります。このポリシーによって、管理者のふりをした侵入者がユーザーに電子メールを送り、パスワードや機密情報を盗み出してアカウントに入り込む、という危険を回避することができます。

アクセス制御ポリシーの実施

Trusted Solaris の情報や資源は、任意アクセス制御必須アクセス制御によって保護されます。任意アクセス制御は、従来の UNIX アクセス権ビットとアクセス制御リストを使った制御であり、オブジェクトの所有者が任意で設定するものです。一方、必須アクセス制御は、システムが自動的に実施する制御メカニズムです。これにより、トランザクション内のプロセスとファイルの機密ラベルがチェックされ、すべてのトランザクションが制御されます。

機密ラベル (SL) は、ユーザーが作業を許可されている機密度や、作業用に選択する機密度を表します。ユーザーがアクセスできる情報は、この機密ラベルによって決まります。任意アクセス制御、必須アクセス制御を無効にするためには、「特権」という特別なアクセス権が必要です。場合によっては、これに加えて「承認」が必要になることもあります。こうした特権はプログラムに付与され、承認は管理者によってユーザーや役割に付与されます。

ユーザーがサイトのセキュリティポリシーに応じて各自のファイルやディレクトリを保護できるよう、適切なトレーニングを実施してください。さらに、ラベルの昇格や降格を許可されているユーザーには、こうした特権をいつ使用するかについても指導する必要があります。

情報の機密度の通知

Trusted Solaris には、「情報ラベル (IL)」のオプションも用意されています。情報ラベルとは、機密度のほかに、データやプロセス、デバイスなどの処理方法をユーザーに通知するものです。つまり、プロセスやファイルのセキュリティレベルを助言的に通知するだけなので、アクセス制御とは関係がありません。Trusted Solaris 環境のトランザクションでは、異なった情報ラベルのデータやプロセスが関与する場合も、処理後のデータファイルには必ず、適切な情報ラベルが付けられます。

管理の実現

Trusted Solaris では、システムのセキュリティが単独ユーザーの行為によって危険にさらされることを極力防ぐため、システムの管理責任を分散させています。Trusted Solaris には、デフォルトで、管理業務を実行するための 4 つの役割が定義されています。

あらかじめ定義されている管理役割を再構成する場合は、各役割の担当者を全ユーザーに通知してください。

ラベル

機密ラベル (SL) と認可上限は、Trusted Solaris の必須アクセス制御の中核となる要素です。この 2 つにより、どのユーザーがどのファイルやディレクトリにアクセスできるかが確定します。情報ラベル (IL) は、文書に記載されている情報の機密度を把握するのに役立ちます。なお、情報ラベルは任意設定です。


注 -

機密ラベルと情報ラベルは、CMW ラベルという構造にまとめられています。CMW ラベルは、もともとプログラマ用に提供されているものです。一般に使用する場合は、機密ラベルと情報ラベルを別々のものと考えて構いません。


この項では、ラベル間の関係、システムで使用される全ラベルのソースとなる label_encodings ファイル、ユーザーが使用できるラベルを確定するさまざまな要素について説明します。

ラベル間の優位度

Trusted Solaris の制御対象となるトランザクションは、セキュリティ関連のトランザクションすべてです。Trusted Solaris は、まず、アクセスする側とされる側の機密ラベルを比較し、どちらのラベルが「優位」 (下記参照) かによって、そのトランザクションを許可または拒否します。次に、この両者の情報ラベル (任意設定) を比較し、必要に応じて、アクセスされる側の情報ラベルを昇格させます。これについては、『Trusted Solaris ユーザーズガイド』の第 1 章「Trusted Solaris の紹介」を参照してください。

次の 2 つの条件が満たされれば、一方のラベル (機密ラベルまたは情報ラベル) はもう一方よりも優位であるとみなされます。

格付けが同じで、持っているコンパートメントのセット (情報ラベルの場合はマーキングも) が同じである場合、2 つのラベルは「同等」とみなされます。ラベルが同等の場合は、互いに優位であると言えるため、アクセスが許可されます。最初のラベルの格付けが 2 番目のラベルの格付けよりも高い場合や、最初のラベルのコンパートメントに 2 番目のラベルのコンパートメントがすべて含まれる場合、最初のラベルは 2 番目のラベルよりも「完全に優位」であるとみなされます。ラベルに優劣が付けられない場合は、これらのラベルは「無関係」または「比較不能」とみなされます。

次の表は、ラベル間の優位度の比較例を示しています。

表 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 より(完全に) 優位 

「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」 

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

システムのラベル要素とは、格付け、コンパートメント、マーキング、その他関連規則などのことです。これらはすべて、/etc/security/tsol/ ディレクトリにある label_encodings ファイルに格納されています。このラベルエンコーディングファイルの設定は、サイトの必要に応じて、セキュリティ管理者が行います。ラベルエンコーディングファイルには、次の情報が格納されます。

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

ラベル範囲

システムには複数のラベルが存在します。したがって、ラベルを理解するためには、これを範囲で捉えるのが良いでしょう。ラベル範囲とは、ユーザーまたはユーザークラスが操作を行う際に使用する機密ラベルのセットで、最下位ラベル、最上位ラベル、制約などによって定義されています。ただし、最上位ラベルから最下位ラベルまでの全ラベルをラベル範囲と呼ぶわけではありません。ラベルエンコーディングファイルには、特定のラベルの組み合わせをラベル範囲から除外するような規則も含まれており、こうした規則すべてに適合した「正しい形式」のラベルだけが、ラベル範囲内にあると見なされます。一方、認可上限は正しい形式でなくても構いません。たとえば、ラベルエンコーディングファイルの規則で、機密ラベルのコンパートメント A、B、C の組み合わせがすべて禁止されている場合、「TS A B C」は、認可上限としては有効ですが、機密ラベルとしては無効です。この認可上限では、ユーザーは、「TS A」、「TS B」、「TS C」というラベルのファイルに対してアクセスを許可されます。

管理ラベル

Trusted Solaris には、「ADMIN_HIGH」と「ADMIN_LOW」の 2 種類の特別な管理ラベルが提供されており、これらを機密ラベル、情報ラベル、認可上限として使用します (label_encodings ファイルでリネーム可能)。この 2 種類のラベルは管理者用で、通常のユーザーが使用することはできません。

「ADMIN_HIGH」は、システム内の最上位のラベルで、管理データベースや監査トレールなどのシステムデータが読み取られないよう保護するためのものです。現在の機密ラベルで ADMIN_HIGH のラベルのデータを読み取るには、作業を ADMIN_HIGH (一般に管理役割に設定) に切り替えるか、上位読み取り用の特権が必要になります。

「ADMIN_LOW」は、システム内の最下位のラベルです。必須アクセス制御により、ユーザーは、サブジェクトの機密ラベルよりも低い機密ラベルのファイルにはデータを書き込めません。したがって、最下位の機密ラベルである ADMIN_LOW をファイルに適用すれば、一般ユーザーは、そのファイルを読み取ることしかできなくなります。ADMIN_LOW は、通常、公共の実行可能ファイルと構成ファイルが変更されないように保護する目的で使用されます。ADMIN_LOW で作業しているユーザーと下位書き込み用の特権を持ったユーザーだけが、このラベルを持つファイルに書き込むことができます。

認可範囲

認可範囲は、ユーザーのクラスに適用されるラベル範囲です。この範囲は、組織のセキュリティポリシーの一部として、セキュリティ管理者により承認されます。label_encodings ファイルには、次の 2 種類の認可範囲が定義されます。

システム認可範囲

システム認可範囲」は、管理者が使用する全機密ラベルと全情報ラベルのセットです。システム認可範囲には、ADMIN_HIGH と ADMIN_LOW の 2 種類があり、それぞれ label_encodings ファイルの規則で制約されています。システム認可範囲の規則は、システムが許可していないラベルの組み合わせを除外するためのものです。

次の図は、システム認可範囲として許可されているラベルが、規則によって制約される仕組みを示しています。

図 1-1 (a) は、格付け TS (「TOP SECRET (最高機密)」)、S (「SECRET (極秘)」)、C (「CONFIDENTIAL (マル秘)」)と、コンパートメント A、B の組み合わせ全種類を示しています。

図 1-1 (b) は、label_encodings ファイルの「REQUIRED COMBINATIONS」部分の規則の例と、その効果を示したものです。矢印が指しているのは規則によって除外されたラベルで、横線で削除されています。規則を表す構文「B A」は、B というコンパートメントを持つラベルには必ず A も含まれていなければならないことを示しています (ただし、コンパートメント A には、他のコンパートメントを組み合わせる必要はありません)。コンパートメント B には、A と組み合わされている状態だけが許可されているため、ラベル「TS B」、「S B」、「C B」はどれも正しい形式とみなされず、システム認可範囲から除外されます。

図 1-1 規則によるシステム認可範囲の制約

Graphic

ユーザー認可範囲

ユーザー認可範囲」は、システム認可範囲内で 1 人のユーザーが潜在的にアクセスできる最も広範なラベルのセット、つまり、システム認可範囲のサブセットです。ここには、ADMIN_HIGH と ADMIN_LOW は含まれません。ユーザー認可範囲は、label_encodings ファイルの「ACCREDITATION RANGE」部分にある一連の規則によって、さらに細かく制約されます。ユーザー認可範囲の規則では、管理者だけに許可されたラベルの組み合わせは除外されます。次の図の例は、前の図の続きとして、「ACCREDITATION RANGE」部分に記述された 3 種類の規則が、どのようにユーザー認可範囲に反映されるかを示したものです。矢印が示す組み合わせが、この 3 種類の規則によって許可された正しい形式のラベルです。

図 1-2 label_encodings ファイルの「ACCREDITATION RANGE」部分

Graphic

図 1-2 に示すように、ユーザー認可範囲には ADMIN_HIGH と ADMIN_LOW は含まれません。格付け「TS」との組み合わせは、「TS B」を除き、すべて範囲に含まれています。「TS B」は、先のシステム認可範囲で、「REQUIRED COMBINATIONS」部分の「B A」という規則によってすでに除外されています (同様に、「S B」と「C B」も除外済み)。格付け「S」の組み合わせでは、「S A B」が唯一有効なものとして範囲に含まれています。また、格付け「C」の組み合わせは、「C A」を除くすべてが有効となっています (「C B」はシステム認可範囲の規則により除外済み)。

label_encodings ファイルのその他の制約

label_encodings ファイルは、そのほかにも、「最下位認可上限」、「最下位機密ラベル」などの規則によって、ユーザーが使用できるラベルを制約します。「最下位認可上限」では、管理者がユーザーに割り当てることのできるもっとも低い認可上限のデフォルトを定義します。「(認可範囲の) 最下位機密ラベル」では、Trusted Solaris のセッション用に、管理者がユーザーに割り当てることのできるもっとも低い正しい形式の機密ラベルを定義します (この最下位機密ラベルは、システム全体に適用されるものです。個々のアカウントに割り当てられる最下位機密ラベルと混同しないよう注意してください)。一般に、最下位認可上限と最下位機密ラベルは同じ値に設定されますが、これは必須条件ではありません。label_encodings ファイルには、これ以外にも必要なラベルの組み合わせや制約に関する規則が記述されます。

アカウントラベル範囲

アカウントラベル範囲は、個々のユーザーや役割に付与される機密ラベルの有効範囲です。ユーザーが最初にログインしたときに表示されるセッション機密ラベルを設定するダイアログボックスと「認可上限 (Clearance)」ダイアログボックスには、このアカウントラベル範囲に従って、ユーザーが使用できる機密ラベルの候補が表示されます。これについては、『Trusted Solaris ユーザーズガイド』の第 2 章「Trusted Solaris 環境へのアクセスとログアウト」の「セッションレベルの設定」を参照してください。アカウントラベル範囲内として許可されるラベルには、次のような意味があります。

アカウントラベル範囲は、ユーザー認可範囲のサブセットであり、やはり label_encodings ファイルの最下位機密ラベルによって制約を受けます。次の図は、前の認可範囲の例の続きとして、アカウントラベル範囲の例を示しています。

図 1-3 アカウントラベル範囲の制約

Graphic

このユーザーのアカウント範囲は、一番上にあるユーザー認可上限の「TS A B」から、一番下の (アカウントラベル範囲の) 最下位機密ラベルの「C」までとなります。これらの定義により、ユーザーがログインできるラベルは、「TS A B」、「TS A」、「TS」、「S A B」に限定されます。ユーザーの (アカウントラベル範囲の) 最下位機密ラベルは「C」であり、label_encodings ファイルの最下位機密ラベルと偶然一致しています。2 つの最下位機密ラベルが異なる場合は、高い方の機密ラベルがアカウントラベル範囲の下限として設定されます。


注 -

ユーザーの認可上限を (アカウントラベル範囲の) 最下位機密ラベルと同じに設定すると、そのユーザーは、事実上、その機密ラベルのシングルラベルセッションで操作することになります。


セッション範囲

セッション範囲」は、Trusted Solaris セッションでユーザーが使用できる機密ラベルのセットです。これは、次のものを示します。

マルチラベルセッションの場合、「認可上限 (Clearance)」ダイアログボックスに、セッション認可上限の候補が表示されます。セッション認可上限の候補の範囲は、上限がユーザー認可上限、下限は (認可範囲の) 最下位認可上限か (アカウントの) 最下位機密ラベルのどちらか高いほうになります。ただし、このとき label_encodings ファイルにある認可上限の規則で、必要な組み合わせまたは制約が定められていなくてはなりません。シングルラベルセッションの場合もセッション認可上限候補の範囲は変わりませんが、やはり label_encodings ファイルにある機密度の規則で、必要な組み合わせまたは制約が定められていなくてはなりません。


注 -

ログインデバイスに範囲を設定することも可能です。この設定は、 device_allocate ファイルに最上位と最下位の機密ラベルを指定することによって行います。詳細は、「Trusted Solaris によるデバイスアクセスの制御」を参照してください。


この例では、セッション認可上限を、図 1-3 のラベル「S A B」から「TS A B」までの範囲で選択して指定することができます。ユーザー認可上限よりも最下位認可上限の方が優位だと、そのユーザーはログインできません。ユーザーの (アカウントラベル範囲の) 最下位機密ラベルが (認可範囲の) 最下位機密ラベルよりも優位でない場合は、(認可範囲の) 最下位機密ラベルがセッション範囲の下限として定義されます。

引き続き、図 1-4 (a) の例は、ユーザーがマルチラベルセッションを選択し、セッション認可上限として「S A B」を指定した場合に使用できる機密ラベルの範囲を示しています。「S A B」と「C」の間に存在していたラベルは許容外として除外されてしまったため、事実上、ユーザーが作業できるラベルは、「S A B」、「C A B」、「C」のいずれかとなります。

図 1-4 (b) は、ユーザーがシングルラベルセッションを選択し、セッション機密ラベルとして「C A B」を指定した場合のラベルの範囲を示しています。ここで、「C A B」は、最下位認可上限よりも下位にありながらアクセス可能になっています。これは、ユーザーがセッション認可上限ではなく、セッション機密ラベルとして「C A B」を選択しているからです。また、これはシングルラベルセッションなので、ユーザーは 1 つのラベルでしか作業できません。この例では「C A B」を指定していますが、代わりに「S A B」または「C」を指定することもできます。

図 1-4 セッション範囲の比較

Graphic

次の図は、使用可能な機密ラベルの段階的な削除例を示しています。削除された機密ラベルには、どの範囲で選別されたかがわかるように横線が引かれ、次の範囲からは消去されています。

図 1-5 セッション範囲における制約の累積作用

Graphic

Trusted Solaris セッションにおけるラベルの可用性

表 1-2 は、ユーザーが選択するセッション別に、使用できるセッションラベルの範囲とその可用性を示したものです。いちばん左側のカラムは、セッションで使用するラベル設定の種類です。続く 2 つのカラムはマルチレベルセッションを選択した場合、右側の 2 つのカラムはシングルレベルセッションを選択した場合を示しています。「一般ケース」のカラムには、ラベルタイプの確定方法を示します。「例」のカラムには、ログイン時にユーザーが選択するセッションの一般的なものを示しています。

表 1-2 Trusted Solaris セッションで使用できるラベル

 

マルチレベルセッション 

シングルレベルセッション 

 

一般ケース 

例 1: 認可上限 [SECRET A B]を指定 

一般ケース 

例 2: セッション機密ラベル [SECRET A B]を指定 

初期ワークスペースの SL  

アカウントラベル範囲内の最下位の機密ラベル 

[CONFIDENTIAL] 

ユーザーが指定したセッション機密ラベル 

[SECRET A B] 

使用可能なワークスペースの SL 

セッション認可上限を上限とするアカウントラベル範囲内のすべての機密ラベル 

[CONFIDENTIAL] 

[CONFIDENTIAL A B] 

[SECRET A B] 

ユーザーが指定したセッション機密ラベル 

[SECRET A B] 

     
     

例 1 を見ると、初期のワークスペースは、ユーザーのアカウントラベル範囲内の最下位の機密ラベルである [CONFIDENTIAL] に設定されており、このユーザーが作業できるワークスペースの機密ラベルは、[CONFIDENTIAL]、[CONFIDENTIAL A B]、または [SECRET A B] になっています (機密ラベルを切り替えるには、ワークスペースの機密ラベルを変更してから、そのワークスペースのボタンをクリックする)。

例 2 では、ユーザーの初期のワークスペースの SL は [SECRET A B] に設定されています。これはシングルレベルセッションなので、ユーザーが使用できるワークスペースの SL は [SECRET A B] だけとなります。

ラベルの印刷

機密ラベル、情報ラベル、取り扱い情報は、すべてのプリンタで自動的に印刷することができます。また、そのほかのセキュリティ機能を印刷するように設定することもできます。次の図は、一般的なバナーページを示しています。Trusted Solaris のプリンタの設定方法については、『Trusted Solaris 管理の手順』の「印刷管理」の該当する章と、『Trusted Solaris のラベル管理』を参照してください。

図 1-6 一般的なバナーページの例

Graphic

シングルレベルディレクトリとマルチレベルディレクトリ

誤ってラベルの異なるファイルを一緒にしてしまうことがないように、Trusted Solaris 環境には、マルチレベルディレクトリとシングルレベルディレクトリという 2 種類の特別なディレクトリが用意されています。

マルチレベルディレクトリ (MLD)

マルチレベルディレクトリ (MLD)」は、機密ラベルの異なったファイルやディレクトリを一緒に格納するためのディレクトリです。ホームディレクトリは、典型的なマルチレベルディレクトリです。

マルチレベルディレクトリには、ディレクトリ名の先頭に「.MLD.」という隠し文字列 (装飾名) が付きます。装飾名は、標準の UNIX コマンドでは表示されません。これを表示するには、特殊な装飾名コマンド (表 1-3) を使用します。

シングルレベルディレクトリ (SLD)

シングルレベルディレクトリ (SLD)」は、同じ機密ラベルのファイルやディレクトリを格納する隠しディレクトリです。新しいファイルやディレクトリを作成したりマルチレベルディレクトリに移動したりすると、そのファイルやディレクトリは、自分と同じ機密ラベルを持つシングルレベルディレクトリに自動的に格納されます。同じ機密ラベルのシングルレベルディレクトリがまだない場合は、Trusted Solaris によって自動的に作成されます。

シングルレベルディレクトリの装飾名は、「.SLD.」という文字列です。シングルレベルディレクトリには、作成された順に、.SLD.0.SLD.1 というように名前が付けられます。装飾名は、表 1-3 に示す特殊なコマンドを使用しない限り、通常は表示されません。

シングルレベルディレクトリの内容を表示する

隠しディレクトリの内容を表示するためには、装飾名を明示してパスを指定します。たとえば、「TOP SECRET A B」という機密ラベルで作業しているときに ls と入力すると、「TS A B」のファイルとディレクトリが格納されるシングルレベルディレクトリの内容 (図 1-7) しか表示できませんが、ls /.MLD.myHomeDir/.SLD.* と入力すると、適切な特権を持っていれば、マルチレベルディレクトリ内のすべての隠しディレクトリを表示できます (図 1-8)。この図の左側はユーザーが入力するコマンドを示し、右側はディレクトリ構造を示しています。ディレクトリは楕円形、ファイルは長方形で表し、コマンド入力の結果表示されるアイテム名は実線と太字で、隠しアイテム名 (表示されない) は破線と標準フォントで表します。

図 1-7 通常のディレクトリ表示

Graphic

図 1-8 複数の SLD の内容を表示した場合

Graphic

シングルレベルディレクトリ、マルチレベルディレクトリで使用できるコマンド

Trusted Solaris 環境には、シングルレベルディレクトリとマルチレベルディレクトリの装飾名を表示するための特殊なコマンドが用意されています。次の表に、これらのコマンドと機能を示します。

表 1-3 装飾名コマンド

コマンド名 

機能 

adornfc(1)

指定したディレクトリパス名に装飾名を付けて表示する。装飾名は、マルチレベルディレクトリであれば文字列 .MLD. (MLD 装飾名)、シングルレベルディレクトリであれば .SLD. (SLD 装飾名) となる 

getmldadorn(1)

指定したパス名が存在するファイルシステムの MLD 装飾名を表示する 

getsldname(1)

マルチレベルディレクトリのパス名を指定し、そこにあるシングルレベルディレクトリのうち、現在のプロセスの機密ラベルに対応するものを表示する 

mldpwd(1)

現在作業中のディレクトリのパス名に MLD 装飾名や SLD 装飾名を付けて表示する 

mldrealpath(1)

MLD 装飾名や SLD 装飾名を付けて、正式な絶対パス名を表示する。すべてのシンボリックリンクが展開され、特殊文字 (/. や /..) 部分が解釈されるため、結果的に、すべてのディレクトリに MLD 装飾名や SLD 装飾名が付き、特殊文字を一切使わない状態で、パス名が表示される 

トラステッドソフトウェア管理

標準の UNIX システムでは、スーパーユーザーが絶対的な権限を持っており、すべてのファイルに対する読み取りと書き込み、すべてのプログラムの実行、すべてのプロセスに対する強制終了シグナルの送信が許可されています。一方、Trusted Solaris 環境では、システムの保護に関連する情報を書き換えるような権限は、ユーザーに割り当てられる「承認」、アプリケーションに割り当てられる「特権」という別々の権限に分離しています。特権、承認、実効 UID (実効 GID) などを使用するアプリケーションを、「トラステッドアプリケーション (トラステッドコンピューティングベースのアプリケーション)」と呼びます。トラステッドアプリケーションは、他のアプリケーション同様、「実行プロファイル」によって、ユーザーと役割に割り当てられます。実行プロファイルには、アプリケーション、承認、特権、実効 UID (実効 GID) が定義されます。特定のトラステッドアプリケーションを実行するためには、承認と特権を正しく組み合わせる必要があります。

図 1-9 は、Trusted Solaris 環境で、ユーザーや役割が実行プロファイルを使用して、トラステッドアプリケーションにアクセスするまでの仕組みを描いたものです。ユーザーは、直接プロファイルにアクセスすることも、役割になってアクセスすることもできます。プロファイルには名前が付いており、CDE アクション、コマンド、承認、特権、実効 UID (実効 GID) の組み合わせが定義されています。これらの概要については、次の項で詳しく説明します。

図 1-9 Trusted Solaris でのトラステッドアプリケーションの割り当て

Graphic

実行プロファイル

実行プロファイルは、いくつかの設定をひとまとめにした機構であり、個々のユーザーや役割にトラステッドプログラム (トラステッドコンピューティングベースのプログラム) と資格を割り当てる構築単位です。実行プロファイルには、次の要素が定義されます。

Trusted Solaris で使用するプロファイル

次の表は、Trusted Solaris の実行プロファイルと、その割り当て先となる 4 つのデフォルトの役割を示しています。

表 1-4 実行プロファイルとデフォルトの役割への割り当て

プロファイル名 

用途 

セキュリティ管理者 

システム管理者 

システムオペレータ 

スーパーユーザー 

All

すべての実効可能ファイルに対するアクセスを許可。特権は与えない 

 

 

 

○ 

All Actions 

すべてのアクションに対するアクセスを許可。特権は与えない 

 

 

 

 

All Authorizations

すべての承認。評価用 

 

 

 

 

All Commands 

すべてのコマンドに対するアクセスを許可。特権は与えない 

 

 

 

 

Audit Control

監査サブシステムの管理。ファイルの読み取り権は与えない 

○ 

 

 

 

Audit Review

監査トレールの読み取り 

 

○ 

 

 

Basic Actions

フロントパネルのアプリケーションに対するアクセスの許可。必要な特権の提供 

○ 

○ 

○ 

○ 

Basic Commands

すべての役割に必要な基本コマンドに対するアクセスの許可 

○ 

○ 

○ 

○ 

boot 

システムの起動とシャットダウン 

 

 

 

 

Convenient Authorizations

通常のユーザー用の承認 

 

 

 

 

cron

スーパーユーザーに、cron ジョブに必要なコマンドを提供 

 

 

 

○ 

Cron Management

cron ジョブ、 at ジョブの管理 

 

○ 

 

 

Cron Security

管理役割用の cron ジョブ at ジョブの管理 

○ 

 

 

 

Custom Admin Role

デフォルトのシステム管理者役割にセキュリティ属性を追加するための空のプロファイル 

 

○ 

 

 

Custom Oper Role

デフォルトのシステムオペレータにセキュリティ属性を追加するための空のプロファイル 

 

 

○ 

 

Custom Root Role

デフォルトのスーパーユーザーにセキュリティ属性を追加するための空のプロファイル 

 

 

 

○ 

Custom Secadmin Role

デフォルトのセキュリティ管理者にセキュリティ属性を追加するための空のプロファイル 

○ 

 

 

 

Device Management 

デバイスの割り当て、割り当て解除。エラー状態の修正 

 

○ 

 

○ 

Device Security

デバイスの管理と設定 

○ 

 

 

 

dtwm 

ウィンドウマネージャの使用 

 

 

 

 

Enable Login

システムの起動後、自分自身と他のユーザーのログインを承認 

 

○ 

 

 

File System Management

ファイルシステムの管理 

 

○ 

 

○ 

File System Security

ファイルシステムのラベルと他のセキュリティ属性の管理 

○ 

 

 

 

inetd 

inetd デーモンによって実行されるプログラム 

 

 

 

 

Mail Management

sendmail の設定、エイリアスの変更、メールの待ち行列のチェック 

 

○ 

 

 

Maintenance and Repair

システムの保守または修復に必要なコマンドの提供 

 

○ 

 

 

Media Backup

ファイルのバックアップ 

 

 

○ 

 

Media Restore

バックアップからのファイルの復元 

 

○ 

 

 

Network Management

ホストとネットワーク構成の管理 

 

○ 

 

○ 

Network Security 

ネットワークとホストのセキュリティ管理。トラステッドネットワークデータベース (トラステッドコンピューティングベースのネットワークデータベース) を変更するための承認も提供する 

○ 

 

 

○ 

NIS+ Administration

セキュリティに関係のない NIS+ スクリプト、NIS+ コマンドへのアクセスを許可する 

 

○ 

 

 

NIS+ Security Administration

セキュリティ関連の NIS+ スクリプトまたはコマンドへのアクセスを許可する 

○ 

 

 

○ 

Object Access Management

ファイルの所有権とアクセス権の変更 

○ 

 

 

 

Object Label Management

ファイルのラベルの変更、システム全体のラベルの設定 

○ 

 

 

 

Object Privilege Management

実行可能ファイルの特権の変更に使用する 

○ 

 

 

 

Outside Accred

システム認可範囲外の操作 

○ 

○ 

○ 

○ 

Printer Security

印刷装置の管理 

○ 

 

 

○ 

Privileged Shells

開発者が、全特権を使用して Bourne、Korn、 C シェルを実行する場合に使用する。環境のセキュリティ保護用ではない 

 

 

 

 

Process Management

cron ジョブ、at ジョブなどの現在のプロセス管理 

○ 

○ 

 

 

Software Installation 

アプリケーションソフトウェアをシステムに追加 

 

○ 

 

○ 

User Management

ユーザーの設定と変更。ただし、自分自身を変更する権限はない (セキュリティ対策上の理由から) 

 

○ 

 

○ 

User Security

ユーザーのセキュリティ属性の設定と変更。ただし、自分自身を変更する権限はない (セキュリティ対策上の理由から) 

○ 

 

 

○ 

実行プロファイルの内容については、『Trusted Solaris 管理の手順』の付録 A 「プロファイル概要テーブル」を参照してください。

相補型プロファイルの組み合わせ

表 1-4 からわかるように、次の実行プロファイルの組は相補関係にあり論理的に関連性があります。ただし、Trusted Solaris 環境では、セキュリティ上、別々のプロファイルとして提供されています。

実行プロファイルの再設定

管理者は、使用できるトラステッドプログラムや、その機密ラベル範囲、作業の実行に必要な特権、それらを定義したプロファイルなどについて知っておかなくてはなりません。なぜなら、このような情報をもとに、ユーザーや役割にプロファイルを割り当てる必要があるからです。デフォルトのプロファイルとその内容をすべて記載したリストについては、tsolprof(4)、または『Trusted Solaris 管理の手順』の付録 A 「プロファイル概要テーブル」を参照してください。

役割の再構成

自分のサイトでデフォルトの 4 つの役割を使用しない場合は、ユーザーマネージャの「プロファイル (Profiles)」ダイアログボックスで、プロファイルを別の役割に割り当て直すことができます。詳細は、このマニュアルの 「ユーザーに実行プロファイルを指定する」や、『Trusted Solaris 管理の手順』の第 4 章「役割の管理」を参照してください。

実行プロファイルに定義されたアプリケーションにアクセスする方法

実行プロファイルに定義されている CDE アクションには、フロントパネルのアプリケーションマネージャとファイルマネージャからアクセスできます。プロファイル中のコマンドには、「プロファイルシェル」という Bourne シェルからアクセスします。ユーザーや役割がアクセスできるアプリケーションは、それぞれに割り当てられたプロファイルに定義されたものに限定されます。プロファイルシェルをユーザーや役割に割り当てるには、ユーザーマネージャを使用します。この方法については、「ユーザーに実行プロファイルを指定する」を参照してください。プロファイルシェルを使用すると、ユーザーを「有効」にできます。つまり、ユーザーにコマンドへのアクセスを許可し、特権や、通常のユーザーには使用できない承認を与えるわけです。また、ユーザーを「制約」することもできます。これは、ユーザーのアクセスを特定のコマンドセットだけに制限する、不慣れなユーザー向けの処置です。プロファイルシェルは、特権や承認が定義されたプロファイルを役割アカウントやユーザーアカウントに割り当てる際に使用します。

通常のユーザーとして操作する場合も役割になった場合も、そのユーザーまたは役割のプロファイルの内容に応じて、アプリケーションに対するアクセス権とセキュリティ属性が与えられます。ただし、通常のユーザーのプロファイルと役割のプロファイルとでは、同じアプリケーションにアクセスする場合でも資格のレベルが異なっていることがあります。たとえば、Basic Actions 実行プロファイルからファイルマネージャにアクセスしているユーザーには、特別な特権や承認は与えられていません。一方、同じファイルマネージャに Object Label Management プロファイルからアクセスしているユーザーは、ファイルの書き込み時に file_mac_write 特権を使ってMAC 保護を書き換えたり、基本的な UNIX アクセス権を持っていなくても、file_dac_read 特権でファイルを読み取ることができます。

役割

役割は、特定のアプリケーションに対するユーザーアクセス権と、その実行に必要な承認や特権を与えるために使用する特別なユーザーアカウントです。同じ役割のユーザーはすべて、同じ役割のホームディレクトリを持ち、同じ環境で操作し、同じファイルにアクセスできます。ただし、最初から役割になってログインすることはできません。役割になる前に、各自のユーザーアカウントでログインしておく必要があります。この条件により、ユーザーの実際の UID が確実に記録され、これを監査に使用することができます。各役割には、その役割のワークスペースが割り当てられ、このワークスペースにはフロントパネルのボタンを使ってアクセスできます。役割になる前に、役割用のパスワードを入力して認証される必要があります。

場合によっては、あらかじめ定義されている 3 つの管理役割 (システムオペレータは非管理役割) のほかに、新しい役割を作成することがあります。新しい役割は、同じ 1 つのホームディレクトリ、ファイル、作業環境を共有しながら、他のユーザーには使用できない特別なコマンドアクション、特権を使用できる担当者を設定したい場合などに作成します。コマンドや特権を別のホームディレクトリや別のファイルに置いて、別のユーザーがこれを使用できるようにする必要がある場合は、役割を作成するのではなく、特別な実行プロファイルを作成します。これについては、「実行プロファイル」を参照してください。

役割には、管理役割とそれ以外の役割 (非管理役割) の 2 種類があります。管理役割では、セキュリティ関連の作業を行います。管理役割は、sysadmin グループ 14 に割り当てられ、NIS+ 主体の特権が与えられており、トラステッドパス属性を持つプロセスを起動できます。多くの管理役割用アプリケーションは、これらの条件が揃っていなければ実行できません。一方、非管理役割は、セキュリティとは無関係で、共用ファイルやディレクトリを利用する際に使用します。所有権が途中で交代する作業などは、非管理役割が行います。

承認

承認は、ユーザーや役割に与えられる個別の権利です。承認があれば、Trusted Solaris で通常禁止されている操作を実行することができます。たとえば、通常は、一方のウィンドウよりも完全に優位な機密ラベルを持つウィンドウには、格付けの低い方のウィンドウの情報を貼り付けることはできません。けれども「昇格されたウインドウにペースト」承認があれば、このような状況でも、情報を貼り付けることができます。

Trusted Solaris では、管理者が割り当てることのできる承認を 40 個以上用意しています。これらは、次の表のように分類されます。

表 1-5 承認の種類

承認カテゴリ 

カテゴリに該当する承認の例 

「ログイン」

「ログインを有効化」 - システムの起動後、ユーザーのログインを有効にする

「リモートログイン」 - Telnet、FTP などのプログラムを使用したユーザーのリモートログインを許可する

「ファイル制御」

「ファイルの機密ラベルを昇格」 - ユーザーにファイルの機密ラベルの昇格を許可する

「ファイル監査フラグを設定」 - ユーザーにファイルの監査フラグの設定を許可する

「デバイス制御」

「デバイスを割り当てる」 - ユーザーにデバイス、デバイスの機密ラベル、情報ラベルの割り当てを許可する

「ウィンドウ制御」

「降格されたウインドウにペースト」 - ユーザーに降格したウィンドウへの情報の貼り付けを許可する

「異なる機密ラベルのワークスペースの占有」 - ユーザーに異なった機密ラベルでアプリケーションウィンドウのワークスペースへの移動を許可する

「ラベル制御」

「すべての定義済みラベルを使用」 - ユーザーにシステム認可範囲内のすべてのラベルの使用を許可する

「ファイル管理」

「ファイル表示を省略」 - ユーザーがファイルの内容を表示しないでドラッグ&ドロップできるようにする

「アプリケーションの検索パスの設定」 - ユーザーに CDE で実行可能なアプリケーションの置き場所を変更できるようにする

「管理ツール」

「ユーザーの識別情報を設定」 - ユーザーにユーザー識別情報の設定を許可する

「ユーザーのプロファイルを設定」 - ユーザーに実行プロファイルの設定を許可する

すべての承認を記載したリストについては、auth_desc(4) のマニュアルページを参照してください。承認を実行プロファイルに割り当てるには、プロファイルマネージャを使用します。「プロファイルマネージャの使用法」を参照してください。

特権

特権は、プロセスに与えられる権利です。特権があれば、Trusted Solaris で通常禁止されている操作を実行することができます。たとえば、通常は、適切なファイルアクセス権のないプロセスはデータファイルを開くことができません。けれども Trusted Solaris 環境では、file_dac_read 特権によって、UNIX のファイルアクセス権を無視する権限がプロセスに与えられるため、ファイルアクセス権がなくてもファイルを読み取ることができるようになります。

Trusted Solaris は、アプリケーションの実行可能ファイルに割り当てられた特権と、アプリケーションのプロセスまたは親プロセスに対応付けられた特権に基づいて、プロセスが実行できる特権を判定します。アプリケーションで特権を使用できるようにするには、次の 2 つ以上の特権セットにアプリケーションを割り当てます。どれに割り当てるかは、アプリケーションをどのようにユーザーに許可するかによって異なります。

プロセスが特権を取得する方法

プロセスが特権を使うためには、次の条件が満たされている必要があります。

Trusted Solaris のデフォルトの特権

Trusted Solaris には、80 以上の特権が用意されています。この特権をアプリケーションに適用すると、セキュリティポリシーを無効にすることができます。すべての特権を記載したリストについては、priv_desc(4) のマニュアルページを参照してください。特権は、次の表に示すカテゴリに分類されます。

表 1-6 特権カテゴリ

特権カテゴリ 

用途 

カテゴリに該当する特権の例 

ファイルシステムセキュリティ

ユーザー ID、グループ ID に対するファイルシステムの制約、アクセス権、ラベル付け、所有権、ファイルの特権セットを無効にする 

file_dac_chown - プロセスにファイル所有者のユーザー ID の変更を許可する

システム V プロセス間通信 (IPC) セキュリティ

メッセージ待ち行列、セマフォセット、共用メモリ領域の制約を無効にする 

ipc_dac_read - アクセス権ビットまたは ACL でプロセス読み取りが許可されていないプロセスに、System V IPC メッセージ待ち行列、セマフォセット、共用メモリ領域などのプロセス読み取りを許可する

ネットワークセキュリティ

予約ポートの割り当てやマルチレベルポートへの関連付け、ブロードキャストメッセージの送信、セキュリティ属性 (ラベル、メッセージの特権、終端のデフォルト値など) の指定などに関する制約を無効にする 

net_broadcast - プロセスに特定のネットワーク上でのブロードキャストパケットの送信を許可する

プロセスセキュリティ

監査、ラベル付け、隠しチャネル遅延、所有権、認可上限、ユーザー ID、グループ ID などに関する制約を無効にする 

proc_mac_read - 相手のプロセスの機密ラベルよりも優位でない機密ラベルを持つプロセスに、相手のプロセスの読み取りを許可する

システムセキュリティ

監査、ワークステーションのブート、ワークステーションの構成管理、コンソールの出力先変更、デバイス管理、ファイルシステム、複数ディレクトリへのハードリンクの作成、メッセージ待ち行列サイズの拡大、プロセス数の増大、ワークステーションのネットワーク構成、他者の読み込み可能なモジュール、ラベル変換などに関する制約を無効にする 

sys_boot - プロセスに Trusted Solaris ワークステーションの停止またはリブートを許可する

ウィンドウセキュリティ

カラーマップ、ウィンドウに対する読み取りと書き込み、入力デバイス、ラベル付け、フォントパス、ウィンドウ間でのデータの移動、X サーバーのリソース管理、ダイレクトグラフィックスアクセス (DGA) の X プロトコル拡張機能などに関する制約を書き換える 

win_selection - プロセスが、選択アービトレータの介入なしでウィンドウ間のデータの移動を要求できるようにする

許容された特権と強制された特権の割り当て

ファイルマネージャを使用して、許容された特権と強制された特権を実行ファイルに割り当てます。実際には、すべての特権を許容セットに含めておき、アプリケーションで使用してはならない特権があれば、それだけを除外するのが一般的です。強制された特権は、通常、アプリケーションに不可欠な場合だけ使用します。許容されているだけで強制されていない特権は、プロセスの継承可能セットに含まれている場合に限り使用できます。

ファイルマネージャのポップアップメニューから「特権 (Privileges)」を選択すると、選択したアプリケーションアイコンの「特権 (Privileges)」ダイアログボックスが表示されます (次の図を参照)。「特権 (Privileges)」ダイアログボックスでは、実行可能ファイルのパス、所有者、グループ、ファイルタイプ (実行可能ファイルまたはスクリプトファイル) を確認したり、特権セットの種類 (許容された特権または強制された特権) を選択することができます。また、除外する特権セットに特権を追加したり、逆に削除するための 2 つのリストフィールドも表示されます。「説明 (Description)」フィールドには、選択した特権の説明が表示されます。右側の 3 つの選択制御ボタンを使用すると、特権グループ全体に対する操作を指定できます。

図 1-10 ファイルに特権を割り当てる

Graphic

継承可能な特権の割り当て

継承可能な特権は、プロファイルマネージャを使用して実行プロファイル中の CDE アクションとコマンドに割り当てます。プロファイル中のアプリケーションの継承可能セットに含まれる特権は、対応する実行可能ファイルの許容セットにも含まれていないと使用できません。この特権は、アプリケーションのプロセスによって、他の継承可能な特権 (許容されている場合のみ) とともに、アプリケーションが起動する子プロセスに渡されます。


注 -

同じアプリケーションを、別の継承可能セットを持つ別のプロファイルに割り当てることも可能です。


特権の可用性 (例)

次の表は、プロセスが特権を獲得する方法を、例を挙げて示したものです。この表では、あるアプリケーションを想定して、それに対する許容セット、強制セット、継承可能セットの例を示します。

表 1-7 アプリケーションに割り当てられた特権セット (例)

特権 

許容セット 

強制セット 

継承可能セット 

file_mac_write [許容されていないため使用不能]

 

 

○ 

file_upgrade_sl

 

 

○ 

win_dga [許容され強制されているため使用可能。継承可能な特権は重複]

○ 

○ 

○ 

win_fontpath

○ 

○ 

○ 

win_colormap

○ 

○ 

○ 

file_dac_search [許容され継承可能であるため使用可能]

○ 

 

○ 

file_dac_read

○ 

 

○ 

file_chown [強制されておらず継承不可能なため使用不能]

○ 

 

 

file_dac_execute

○ 

 

 

この例からは、次のことがわかります。

Trusted Solaris によるデバイスアクセスの制御

デバイスは、Trusted Solaris システムとのデータのインポートとエクスポートの手段となるため、データが適切に保護されるよう制御する必要があります。ここでいう「デバイス」とは、Trusted Solaris システムに接続されている物理的な周辺装置、または擬似デバイスと呼ばれるソフトウェアでシミュレートされた装置を指します。Trusted Solaris では、デバイス割り当てとデバイスラベル範囲によって、デバイスを経由するデータの流れを制御することができます。

デバイス割り当てに関連するツールについては、「デバイスとドライバ」を参照してください。

デバイス割り当て

デバイス割り当ては、インポートやエクスポート時のデータを制御する 1 つの手段であり、これによって、承認されていないユーザーによる情報のアクセスを阻止します。Trusted Solaris システムでは、データのインポートとエクスポートに使用するデバイスを決定したり、割り当てできる状態に設定するのは管理者の仕事になります。管理者は、その後、ユーザーを指定してデバイス割り当てに必要な承認を割り当てます。デバイスの使用を承認されたユーザーは、デバイスを使用する前にデバイス割り当てを行い、使用後は、再び割り当てを解除する必要があります。割り当てから割り当て解除までの間、ユーザーはそのデバイスを独占的に使用できます。

デバイスラベル範囲

割り当て可能なデバイスには、管理者によって指定された機密ラベル範囲が対応付けられています。割り当て可能なデバイスを使用するには、そのデバイスのラベル範囲に含まれるプロセス機密ラベルで作業していなくてはなりません。それ以外の場合は、デバイスの割り当ては拒否されます。デバイスがユーザーに割り当てられている間は、そのユーザーのプロセス機密ラベルがインポートまたはエクスポートされたデータに適用されます。デバイスの割り当てを解除すると、エクスポートされたデータの機密ラベルと情報ラベルが画面に表示されるので、そのデータが格納された媒体に物理的にラベルを付けることができます。

ラベル範囲を持つデバイスには、フレームバッファ、テープドライブ、フロッピーディスクドライブ、CD-ROM ドライブ、プリンタなどがあります。

デバイス管理の詳細については、「デバイスとドライバ」を参照してください。