Trusted Solaris 管理の手順

ファイル、ディレクトリ、ファイルシステムへのアクセスに関する用語の確認

この節では、ファイル、ディレクトリ、ファイルシステムの管理方法を説明するためにこの章で使用する用語を定義します。これらの用語とその概念は、『Trusted Solaris ユーザーズガイド』と『Trusted Solaris 管理の概要』で紹介していますが、便宜上ここでも取り上げます。これらの定義にざっと目を通してから、この章の残りの部分に進んでもいいですし、この節を飛ばして、「ファイルおよびファイルシステムのセキュリティ属性」に進み、用語が理解できない場合にここに戻るようにしてもかまいません。

定義では、初出の特殊用語または強調する必要のある用語は、「」内に示します。

アクセス制御リスト

アクセス制御リスト (ACL) は、ファイルまたはディレクトリの所有者が指定できるエントリの一覧に基づいて、一種の任意アクセス制御を行います。アクセス制御リストは、個人またはグループに対しアクセスを許可または制限し、UNIX 標準のアクセス権ビットよりさらにきめ細かなアクセス制御を行うことができます。

アクセス権

ファイル、ディレクトリ、ファイルシステムに関するアクセスポリシーで説明するように、必須アクセス制御の条件を満たした場合、次に示すテストのいずれかが真の場合に、ファイルまたはディレクトリの読み取り、書き込み、実行または検索のアクセス権がプロセスに対し与えられます。

上記以外の場合、アクセスは拒否されます。ただし、プロセスが適切な 1 つ以上の DAC 無効化特権を表明している場合は別です。この特権については、「ファイル、ディレクトリ、ファイルシステムへのアクセスに関するポリシー」「実行プロファイル機構」を参照してください。

ファイル、ディレクトリ、ファイルシステムへのアクセスに関するポリシー

UNIX システムでは、スプレッドシート、プリンタ、レター、本の章、メールボックスなど、ほとんどすべてのものがディレクトリに格納されるファイルとして扱われるため、何かを実行する場合にはユーザーファイルとディレクトリにアクセスする必要があります。この節では、アクセスの条件について説明します。UNIX システムではデバイスもファイルとして扱われますが、デバイスに適用される必須アクセス制御に関する規則は、ファイルまたはディレクトリに適用される規則とは若干異なります。デバイスに適用される必須アクセス制御に関する規則については、この節で別途説明します。

ファイル、ディレクトリ、デバイスは、次の方法でアクセスする場合があります。

Trusted Solaris システムでは、次の条件に基づいてこれらのアクセスが許可または拒否されます。

あらゆる種類のアクセスで、プロセスの機密ラベルがパス名に含まれるすべてのディレクトリの機密ラベルより優位であり、かつプロセス所有者 (コマンドを実行した人) がパス名に含まれる各ディレクトリに対し任意の検索アクセス権を持っていることが必要です。この条件を満たしていればファイル、ディレクトリ、デバイスの名前を表示できます。

ファイルまたはディレクトリの内容や属性を表示する (読み取りアクセスを行う) 場合は、プロセスの機密ラベルが、ファイルまたはディレクトリの機密ラベルより優位でなければなりません。また、デバイスの内容を表示する (たとえば、テープドライブに装填されたテープの情報を読み込む) 場合は、プロセスの機密ラベルが、デバイスの機密ラベルと同等である必要があります。プロセス所有者は、ファイル、ディレクトリ、デバイスに対して任意の読み取りアクセスができなければなりません。

ファイルに書き込みを行なったり、ファイルの属性を修正したりするプロセスの場合は、ファイルの機密ラベルが、プロセスの機密ラベルより優位であり、かつプロセスの認可上限の範囲に収まっていなければなりません。プロセスの認可上限には、セッションの認可上限が設定されます。ディレクトリへの書き込みを行う (ファイルを作成する) プロセスの場合は、プロセスの機密ラベルが、ディレクトリの機密ラベルと同等でなければなりません。一方、デバイスへの書き込みを行う (たとえば、テープドライブに装填されているテープに情報を格納する) 場合、プロセスの機密ラベルが、デバイスの機密ラベルと同等でなければなりません。プロセス所有者は、ファイル、ディレクトリ、デバイスに対し任意の書き込みアクセス権を持っている必要があります。

デバイスファイルに関するセキュリティポリシーは、device_policy(4) ファイルにどのように定義されているかによって、通常のファイルに適用されるポリシーとは異なる場合があります。なお、このファイルは、セキュリティ管理者役割によって変更できます。

MAC 検査または DAC 検査で不合格になった各原因について、拒否されたアクセスの種類に基づいて固有の無効化特権をコマンドに対して指定することができます。コマンドに対し無効化特権を設定できるのはセキュリティ管理者役割だけです。なぜなら、セキュリティ管理者役割は、特権が信頼のある方法で行使されるよう、コマンドを実行するユーザーが認可されていること、またはコマンドの使用が信頼できることを確認しておかなければならないからです。

次に示す条件と無効化特権は、どの種類のアクセスにも適用されます。

次に示す条件と無効化特権は、表示 (読み取り) アクセスに適用されます。

次に示す条件と無効化特権は、変更 (書き込み) アクセスに適用されます。

認可範囲

認可範囲は、実際には範囲ではなく、管理者が定義した上限と下限の間にあるすべてのラベルのセットから構成されています。Trusted Solaris システムにおけるラベルの種類と認可範囲の詳細については、「ラベル範囲」「ユーザー認可範囲」、および 「システム認可範囲」を参照してください。

装飾名

.MLD. というテキスト文字列は、デフォルトの MLD 接頭辞です。修飾名は、MLD 接頭辞を含む MLD のパス名です。修飾名は、MLD 自身にアクセスするときに使われます。

CMW ラベル

情報ラベルと、それに続く機密ラベルを [ ] で囲ったものから構成されます。形式は、情報ラベル [機密ラベル] です。


注 -

Trusted Solaris 7 以降のリリースでは、情報ラベルは使われません。CMW ラベルの情報ラベル部分は存在しますが、ADMIN_LOW に固定されています。


格付け

格付けは、機密ラベル、認可上限の階層を表す部分です。これらのラベルは、それぞれ 1 つの格付けを持ちます。ファイルまたはディレクトリに割り当てられた機密ラベルの格付けは、ファイルまたはディレクトリに含まれる情報の機密性に基づく相対的な保護のレベルを表します。ユーザーと、ユーザーに代わってアプリケーションとコマンドを実行するプロセスに割り当てられる認可上限の格付けは、信頼性のレベルを表します。

認可上限

認可上限は、ユーザーが操作する一連のラベルの上限です。下限とは、セキュリティ管理者が初期ラベルとして割り当てた最下位のラベルです。認可上限には、ユーザー認可上限とセッションの認可上限の 2 種類があります。

コンパートメント

コンパートメントは、サイトのセキュリティ管理者役割が指定できるオプションの一連の語句で、機密ラベル、認可上限に表示されます。コンパートメントは、興味のある領域、またはそのコンパートメントを含むラベル、それらのラベルが割り当てられたファイル、それらのファイルを使用して作業する個人に関連付けられた作業グループです。

任意アクセス制御

任意アクセス制御 (DAC) は、ファイルまたはディレクトリの所有者の「判断で」許可または拒否されるアクセスです。Trusted Solaris システムには、任意アクセス制御 (DAC) として、アクセス権ビットとアクセス制御リストの 2 種類が用意されています。

優位

任意の種類のラベル (機密ラベル、認可上限) のセキュリティレベルが比較対照のラベルのセキュリティレベルと同等かそれ以上の場合、そのラベルは、比較対照のラベルより優位であるといいます。優位なラベルの格付けは、もう一方のラベルの格付けと同位かまたは上位でなければなりません。また、優位なラベルには、もう一方のラベルに含まれるすべての語句 (コンパートメント) が含まれていなければなりません。2 つの対等のラベルは互いに対して優位です。 MAC に関する判断を行うとき、機密ラベルの優位性が比較されます。「完全な優位」を参照してください。

実行プロファイル機構

実行プロファイル機構を使用すると、コマンド、CDE アクション、(これらのコマンドとアクションに関連した) セキュリティ属性、およびユーザー認可を、実行プロファイルにまとめることができます。次に、この実行プロファイルを、ユーザーが実施する必要のある作業に基づいて、複数のユーザーに割り当てることができます。実行プロファイルで指定するセキュリティ属性には、コマンドおよび操作に関する継承可能な特権が含まれます。これらの特権は、ファイル、ディレクトリ、ファイルシステムに関する任意アクセスポリシーおよび必須アクセスポリシーを無効にするために使用することもできます。 「Trusted Solaris のファイル、ディレクトリ、ファイルシステムに関する概要」を参照してください。

ラベル

ラベルは、ファイルまたはディレクトリに格納される情報を保護するレベルに基づいて、ファイルまたはディレクトリに割り当てられる機密保護識別子です。

ラベル範囲

ラベル範囲は、実際、機密ラベルの「集まり」であり、最上位のラベルと最下位のラベルで指定します。実行プロファイルのコマンドまたはアクションにおけるラベル範囲とは、コマンドまたはアクションが実行される機密ラベルを制限するラベルの範囲を指します。ファイルシステムにおけるラベル範囲とは、情報がファイルシステムに格納される機密ラベルを制限するものです。トラステッドネットワークデータベースのホストやネットワークにおけるラベル範囲とは、リモートホストまたはネットワークのラベル範囲に基づいて、ローカルホストとリモートホストあるいはネットワークとの間で行われる通信を制限するものです。ラベルを認識しないリモートホストは、単一の機密ラベルに割り当てられます。なお、ホストを単一の機密ラベルに割り当てるには、ホストの最上位の機密ラベルを最下位の機密ラベルと同じに設定します。リモートホストからマウントされるファイルシステムに指定するラベル範囲は、リモートホストのラベル範囲に収まっていなければなりません。割り当て可能なデバイスにおけるラベル範囲とは、デバイスが割り当てられる機密ラベルを制限するものです。したがって、デバイスを使用して情報が格納または処理される機密ラベルも制限されます。ホストのフレームバッファまたは音声装置など、割り当て不可能なデバイスでのラベル範囲とは、アクセスアカウントの認可上限に基づくホストまたは音声装置へのアクセスを指します。ネットワーク認可範囲も参照してください。

必須アクセス制御

必須アクセス制御 (MAC) は、ファイル、ディレクトリ、デバイス、その他アクセス対象となるものの機密ラベルを、それらにアクセスしようとしているプロセスの機密ラベルと比較することに基づいて、アクセスを制御することです。プロセスの機密ラベルは、一般的に、コマンドを起動するワークスペースの機密ラベルと同じです。ディレクトリとデバイスは、UNIX システムにおいてはファイルと同様に管理されますが、ディレクトリおよびデバイスに適用される必須アクセス制御 (MAC) の規則は、ファイルに適用される MAC ルールとは異なります。書き込みのためにファイルがアクセスされる前に、ファイルの機密ラベルがプロセスの機密ラベルより優位であることが MAC により検査され、「上位書き込み」と呼ばれるポリシーが適用されます。プロセスの認可上限より上位の機密ラベルを持つファイルに対してプロセスは書き込みを行うことができません。なお、プロセスの認可上限はセッションの認可上限に設定されます。(上位書き込みポリシーでは、プロセスと書き込み対象のファイルの機密ラベルが同等であることが認められます。) 書き込みのためにディレクトリまたはデバイスがアクセスされる前にディレクトリまたはデバイスの機密ラベルがプロセスの機密ラベルと同等であることが MAC により検査され、「同位書き込み」と呼ばれるポリシーが適用されます。表示 (読み取りまたは検索) のためにファイルまたはディレクトリがアクセスされる前に、プロセスの機密ラベルがファイルまたはディレクトリの機密ラベルより優位であることが MAC により検査され「下位読み取り」と呼ばれるポリシーが適用されます。表示のためにデバイスがアクセスされる前に、プロセスの機密ラベルがデバイスの機密ラベルと同等であることが MAC により検査され、「同位読み取り」と呼ばれるポリシーが適用されます。なお、下位読み取りポリシーには同位読み取りも含まれます。

ある機密ラベルを持つプロセスが、別の機密ラベルを持つ「ファイル」に読み取りまたは書き込みを行う際には、上位書き込み、下位読み取り (WURD) という規則が適用されます。ある機密ラベルを持つプロセスが、別の機密ラベルを持つ「ディレクトリ」に書き込みを行う際には、同位書き込み、下位読み取りという規則が適用されます。ある機密ラベルを持つプロセスが、別の機密ラベルを持つ「デバイス」に書き込みを行う際には、同位読み取り、同位書き込みという規則が適用されます。

最下位のラベル

ユーザーにとっての最下位のラベルとは、特定のユーザーが作業を実行できる機密ラベルの下限であり、ユーザーアカウントを設定する際にセキュリティ管理者役割がこれを指定します。一方、システムにとっての最下位のラベルとは、セキュリティ管理者が label-encodings ファイルの最下位ラベルフィールドに指定する機密ラベルのことで、すべてのユーザーの下限を設定するものです。

マルチレベルディレクトリ

マルチレベルディレクトリ (MLD) とは、異なる機密ラベルを持つ情報が、シングルレベルディレクトリ (SLD) と呼ばれるサブディレクトリで別々に管理されるディレクトリを指します。ほとんどのインタフェースにおいて MLD は、単一の名前をもつ単一ディレクトリとして認識されます。

Trusted Solaris システムでは、/tmp/var/mail、ユーザーのホームディレクトリといった特定のディレクトリは、MLD として作成されます。さまざまなラベルの元で実行され、このような特定の標準的ディレクトリにファイルを書き込むことが必要となる標準的アプリケーションがここに格納されます。

MLD で作業をするユーザーは、現在のプロセスの機密ラベルでのみファイルを表示したり操作したりできます。ユーザーがファイルを昇格または降格する権限を持っている場合は、MLD 内に作成したファイルまたはディレクトリの機密ラベルを昇格または降格できます。昇格したファイルまたはディレクトリの名前は表示できます。また、セキュリティ管理者が system(4) ファイル にある tsol_hide_upgraded_names をデフォルト設定値の 0 から 1 に変更して、昇格されたファイルの名前を非表示にする場合もあります。

SLD にファイルを作成したときに、機密ラベルを持つ SLD がまだ存在していない場合は、Trusted Solaris が SLD を作成し、それにプロセスの機密ラベルを割り当てます。

ユーザーが MLD にアクセスする方法は、装飾名を使用する方法と「しない」方法の 2 通りがあります。ディレクトリにアクセスするためのインタフェース (cd(1)mkdir(1)ls(1)) ではどちらの方法も使用できます。装飾名を使用せずに MLD を参照すると、Trusted Solaris システムは、ユーザーが作業している機密ラベル (プロセスの機密ラベル) に対応するシングルレベルのディレクトリ (SLD) を透過的に参照するようになります。たとえば、PUBLIC ラベルで cd /tmp と入力すると、ユーザーは、機密ラベルに対応する SLD (/.MLD.tmp/.SLD.1) に移動します。装飾名を使用すると、プログラムは、プロセスと同じ機密ラベルを持つ SLD ではなく、MLD を直接参照できます。したがって、cd /.MLD.tmp と入力すると、ユーザーは最上位レベルの MLD に入り、現在の作業の機密ラベルより優位でない SLD をすべて一覧にすることができます。

アクセス権ビット

アクセス権ビットは、任意アクセス制御の一種です。所有者が指定するアクセス権は、誰がファイルまたはディレクトリの読み取り、書き込み、実行が行えるかを示す一連のビットとして格納されます。各ファイルまたはディレクトリには、3 つの異なるアクセス権セットが割り当てられます。すなわち、所有者に割り当てられるアクセス権セット、ファイルまたはディレクトリが指定されたグループの全メンバに割り当てられるアクセス権セット、およびその他全員に割り当てられるアクセス権セットがあります。アクセス制御リストも参照してください。

特権

特権とは、コマンドを実行するプロセスに対し認められる権利であり、コマンドやいくつかのオプションがセキュリティポリシーの一部を無効にできるものです。特権は、コマンド自体またはコマンドを使用する人が信頼のおける方法で特権を行使できると、サイトのセキュリティ管理者役割が判断した場合にのみ認める必要があります。実行するコマンドには、実行形式ファイルに割り当てらる強制特権セットや許可特権セットあるいは特権の継承によって特権を与えることができます。特権の継承は、実行プロファイル機構によって管理されます。「実行プロファイル機構」を参照してください。

プロセス

プロセスとは、コマンドを起動するユーザーに代わってコマンドを実行するものです。各プロセスは、ユーザー ID (UID)、グループ ID (GID)、追加グループリスト、ユーザーの監査 ID (AUID) など、いくつかのセキュリティ属性をユーザーから受け継ぎます。プロセスが受け継いだセキュリティ属性には、実行対象のコマンドで行使できる特権、プロセスの認可上限 (セッションの認可上限と同じ)、現在のワークスペースの機密ラベルが含まれます。

セキュリティ管理者役割

機密情報が保護されなければならない組織では、セキュリティ管理者は、サイトのセキュリティポリシーを定義し施行する人でサイトで処理されるすべての情報にアクセスできる人に割り当てられます (複数も可)。Trusted Solaris ソフトウェア環境でのセキュリティ管理者とは、適切な認可上限を持ち、かつサイトのセキュリティポリシーをソフトウェアで実現できるように、すべてのユーザーとホストのセキュリティ属性を定義する責任者 (複数も可) に割り当てられる管理役割です。デフォルトでは、この役割の名前はセキュリティ管理者役割です。

セキュリティ属性

セキュリティ属性は、Trusted Solaris のセキュリティポリシーを実現するために使用されます。Trusted Solaris 固有のセキュリティ属性は、「拡張」属性と呼ばれることがあります。これらの属性は、標準 Solaris の動作環境で使用されるセキュリティ属性を拡張したものだからです。プロセス、ユーザー、ファイル、ディレクトリ、ファイルシステム、トラステッドネットワーク上のホスト、割り当て可能なデバイスや他のエンティティには、基本 Solaris および Trusted Solaris の両環境のさまざまなセキュリティ属性のセットが割り当てられます。ユーザーが使用するセキュリティ属性のうち、標準 Solaris 環境から存在するものには、ユーザー ID (UID)、監査 ID (AUID)、グループ ID (GID)、追加グループ ID (SGID)、アクセス制御リスト (ACL) が含まれます。ユーザーが使用するセキュリティ属性のうち、Trusted Solaris 環境で拡張されたものには、認可上限、最下位ラベル (初期ラベル)、承認が含まれます。

ファイルおよびプロセスに重要な Trusted Solaris のセキュリティ属性は、CMW ラベルです。CMW ラベルの機密ラベル部分は、アクセスの判断に使用されます。Trusted Solaris 7 では情報ラベルは使われず、CMW ラベルでは ADMIN_LOW に固定されます。

機密ラベルの範囲を表すセキュリティ属性は、ファイルシステム、割り当て可能なデバイス、プリンタに割り当てられます。セキュリティ管理者役割は、UID、GID、ラベル範囲、いくつかの特権を、実行プロファイル内のコマンドと CDE アクションとに関連付けることができます。

機密ラベル範囲とともに、ネットワーク認可範囲と呼ばれるその他のセキュリティ属性が、トラステッドネットワークデータベース内のホストに割り当てられます。このデータベースを使用して、ホストとネットワーク間の通信に MAC を適用します。

NFS マウントが実行される機密ラベルは、トラステッドネットワークデータベースで NFS サーバーに割り当てられている機密ラベルによって制限されます。「ファイルシステムの属性」を参照してください。

セキュリティポリシー

Trusted Solaris 環境におけるセキュリティポリシーとは、DAC、MAC、情報へのアクセス方法を定義した情報ラベルのルールを指します。ユーザーにとってのセキュリティポリシーとは、サイトで処理される情報の機密性を定義した一連のルールであり、かつ無認可のアクセスから情報を保護するための手段でもあります。

機密ラベル

機密ラベルは、ファイル、ディレクトリ、プロセスに割り当てられる機密保護のためのラベルであり、それらに含まれている情報のセキュリティレベルに基づいてアクセスを制御するのに使用されます。

セッションの認可上限

セッションの認可上限は、特定のログインセッションでだけ有効な認可上限であり、セッションを開始したユーザーによって設定されます。セッション中に開始した各プロセスには、セッションの認可上限と同等のプロセスの認可上限が与えられます。セッションの認可上限には、ユーザーの認可上限と同等か、またはそれより低いものを設定できます。

シングルレベルディレクトリ

シングルレベルディレクトリ (SLD) とは、単一の機密ラベルを持つファイルが格納される MLD 内のディレクトリを指します。特定の機密ラベルで作業をしているユーザーが /tmp などの MLD があるディレクトリに入ると、このユーザーの作業ディレクトリは、MLD 内の単一ラベルディレクトリ (/.MLD.tmp/.SLD.1) に変更されます。この機密ラベルは、ユーザーが作業している機密ラベルと同じです。SLD 名は、.SLD. 接頭辞の後に SLD 名の作成順序を表す番号を付けたものです。

完全な優位

任意のラベル (機密ラベル、認可上限のいずれか) のセキュリティレベルが、比較対象となる別のラベルのセキュリティレベルより高い場合、そのラベルは、比較対象のラベルより完全に優位であると言います。完全な優位とは、同等でない優位を意味します。このような状態が発生するのは、一方のラベルの格付けが他方のラベルの格付けより上位にあり、かつ一方のラベルに他方のラベルのコンパートメントがすべて含まれている場合、または両方のラベルの格付けが同じで、かつ一方のラベルに、他方のラベルに含まれている全コンパートメントに加え、別のいくつかのコンパートメントが含まれている場合です。

システム認可範囲

システム認可範囲には、各サイトのセキュリティ管理者役割が label_encodings(4) ファイルに定義した規則に従って作成した有効な (正しい形式の) あらゆるラベルの集合と、あらゆる Trusted Solaris システムで使用される 2 つの管理ラベル、すなわち、ADMIN_LOW と ADMIN_HIGH が含まれます。

ユーザー認可範囲

ユーザー認可範囲は、一般ユーザーがシステム上で作業できるあらゆるラベルの集合であり、各サイトのセキュリティ管理者が定義します。システム認可範囲を定義する正しい形式のラベルに関する規則では、サイトの label_encodings(4) ファイルの ACCREDITATION RANGE セクションに指定された各種の値 (上限、下限、組み合わせ制約、その他の制約) によってさらに制約が課されます。

ユーザー認可上限

ユーザー認可上限とは、セキュリティ管理者によって割り当てられ、特定のユーザーが随時作業を行うラベルの集合の上限に相当します。セッションの認可上限を設定する特定のログインセッション中に、その認可上限を受け入れるか、それともさらに制約を課すかを決定できます。