次の表に示したセキュリティ属性は、標準 Solaris のオペレーティングシステムのものです。
表 11-1 標準 Solaris のセキュリティ属性
標準 Solaris のセキュリティ属性 |
---|
ユーザー ID |
グループ ID |
アクセス権モード |
アクセス ACL (オプション) |
デフォルト ACL (オプション) |
Trusted Solaris のファイルとディレクトリには、標準 Solaris ファイルシステムの属性に加えて、拡張セキュリティ属性が用意されています。Trusted Solaris セキュリティポリシーに必要な拡張セキュリティ属性を次の表に示します。
表 11-2 Trusted Solaris オペレーティングシステムにおけるファイルとディレクトリの属性拡張セキュリティ属性 | Trusted Solaris の拡張セキュリティ属性の説明 |
---|---|
機密ラベル | ファイルまたはディレクトリの機密ラベル |
強制された特権 | オプション。実行可能ファイルが実行時にその使用を保証されている特権セット。許容された特権のサブセットでなければならない。 |
許容された特権 | オプション。この実行可能ファイルが実行時に許容されている特権の最大セット。(実行可能ファイルを編集すると、それらの特権がすべて失われてしまうため、実行可能ファイルが使用することのできる特権を許容されたセットに制限することによってトロイの木馬の侵入を防ぐ。プログラムが編集されてしまうと、プログラムは継承可能な特権を使用することができないためである)。強制された特権のスーパーセットでなければならない。 |
ファイル属性フラグ |
オプション。公開ファイル属性フラグのみをサポート。このフラグが設定されているファイルシステム内の任意のオブジェクトに対して、ある読み取り操作を行うと、その操作があらかじめ選択された監査クラスのものであっても、監査記録が生成されない。ただし、次のような例外がある。特権の使用のための監査疑似イベントの特権 (AUE_UPRIV) をあらかじめ選択した監査クラスに入れておき、特権の使用が必要になる操作を行うと、監査記録が常に生成される。このような例外はあるが、公開フラグが設定されていると監査記録が生成されない読み取り操作には次のようなものがある。access(2)、fgetcmwlabel(2)、fgetsldname(2)、fstatvfs(2)、 getcmwfsrange(2)、getcmwlabel(2)、getfpriv(2)、 getmldadorn(2)、 getsldname(2)、lgetcmwlabel(2)、 lstat(2)、mldlstat(2)、 mldstat(2)、open(2)、読み取りのみ、patchconf(2)、 preadl(2)、readl(2)、readlink(2)、 stat(2)、statvfs(2) |
ディレクトリ属性フラグ | オプション。ディレクトリが MLD であることを示すフラグ。 |
Trusted Solaris オペレーティング環境では、パス名に含まれるディレクトリの機密ラベルに順序を付けません。
ファイルとディレクトリは、それらを含むディレクトリと同じ機密ラベルでだけ作成できます。ただし、特権を持つサブジェクトは、ファイルとディレクトリを作成し、有効な任意の機密ラベルで既存のファイルとディレクトリに再度ラベル付けを行なって、昇格したオブジェクトを作成することができます。「ファイルおよびディレクトリのラベルと特権を変更するには」を参照してください。
昇格されたファイルとディレクトリの名前が表示されないようにシステムを構成することができます。デフォルトでは、これらの名前を表示します。セキュリティ管理者役割は、system ファイルの tsol_hide_upgraded_names というスイッチの設定を変更します。詳細は、第 13 章「Trusted Solaris カーネルスイッチ設定の変更」を参照してください。設定の変更後、リブートしてください。
ディレクトリ名は、ディレクトリが削除されるときにクリアされます。これは、削除されたディレクトリの名前にアクセスできてはならないというオブジェクトの再利用条件に準拠したものです。
Trusted Solaris のシンボリックリンクは、ラベルを持ちます。
MLD は、ファイルシステム内で通常のディレクトリとして表示されますが、MLD であることを示すフラグを持っています。MLD は、それを作成、削除、使用するための特権を必要としません。MLD 内の SLD に下位読み取りアクセスを行うとき、非特権プロセスが読み取れるのはプロセス自身と同等の機密ラベルをもつ SLD とプロセス自身より下位の機密ラベルをもつ SLD に含まれる情報を合わせたものです。mldpwd(1) と mldrealpath(1) の各コマンドを使用して、現在の作業ディレクトリ名または他の MLD の装飾名を取得します。MLD のマウントは装飾名を必要としません。
vi(1) などのコマンドでディレクトリ内に新規のファイルを作成しよう (書き込もう) とすると、コマンドを実行しているプロセスのセキュリティ属性が、ファイルの作成先ディレクトリの対応するセキュリティ属性と比較されます。この例では、UID と機密ラベルが比較されます。ファイルの作成が成功するかどうかは、必要な MAC 検査と DAC 検査に合格するかどうかで決まります。ユーザー ID は、ディレクトリのアクセス権ビットと、ACL (存在する場合) とに指定された DAC 条件を満たしていなければなりません。また、MAC 条件を満たすには、ディレクトリの機密ラベルは、プロセスの機密ラベルより優位でなければなりません。
MLD であるディレクトリが単一ラベルを持つホストによってマウントされる場合は、そのホストの機密ラベルに対応する SLD がマウントされ、MLD はマウントされません。なお、この機密ラベルは、管理者の権限によりトラステッドネットワークデータベース 内でそのホストに割り当てられたものです。たとえば、ユーザーのホームディレクトリが、ラベルなしのホスト上に自動的にマウントされる場合は、tnrhdb(4)/tnrhtp(4) 内でホストに割り当てられている、機密ラベルを持つ SLD だけがマウントされます。