Trusted Solaris 7 API は、次に示すセキュリティ機能に対するアクセスを可能にします。この章では、これらの機能の概要を説明します。詳細は、本書の第 2 章以降を参照してください。
ユーザーデータベースとプロファイルデータベースのセキュリティ情報
システムセキュリティ構成の設定
セキュリティ属性情報
ファイルシステムのセキュリティ属性とフラグ
プロセスのセキュリティ属性フラグ
ネットワークのセキュリティ属性
X11 ウィンドウシステムのセキュリティ属性
プロセス対オブジェクト通信
CMW ラベルの使用によりセキュリティ保護されたプロセス間通信
CMW ラベルとファイルシステムセキュリティ属性によってセキュリティ保護されたファイルシステム通信
CMW ラベル、マルチレベルポート、マルチレベルマップ (RPC のみ)、ネットワークセキュリティ属性の使用によりセキュリティ保護されたネットワーク通信
CMW ラベルとウィンドウセキュリティ属性によってセキュリティ保護された X11 ウィンドウシステム間のデータ転送
ラベルビルダー - アプリケーション用のグラフィカルユーザーインタフェースの作成を可能にする API で、エンドユーザーからの入力をもとに、システム上で有効なラベルを作成する
特権をプロセスに設定すると、そのプロセスは、システムセキュリティポリシーによって禁止されている処理を実行できるようになります。Solaris 7 では、実効ユーザー ID: 0 (スーパーユーザー) によるプロセスには、システムセキュリティポリシーは適用されません。しかし、0 以外のユーザー ID によるプロセスは処理が限定されます。Trusted Solaris 7 では、スーパーユーザーは存在しません。どのようなユーザー ID のプロセスに対しても、特定のセキュリティ関連の権限が定義された、さまざまな特権を割り当てることができます。特権および特権によってプロセスが実行できる処理の一覧は、priv_desc(4) を参照してください。
ほとんどのアプリケーションは、セキュリティ関連の権限を実行する必要がないため、特権を使用しません。特権を使用するアプリケーションは、トラステッドコンピューティングベース (Trusted Computing Base、TCB) を使用するアプリケーション (以下、TCB アプリケーション) と呼ばれます。TCB アプリケーションでは、情報が不正に利用されることがないようにコーディングに注意する必要があります。どのような場合に特権が必要になるかの目安は、「セキュリティポリシー」を参照してください。次に示す特権プログラムのコーディングについての情報とガイドラインは、第 3 章「特権」を参照してください。
ファイルとプロセスの特権セットの取得と設定を行う
プロセス特権セット (有効特権セット、許可特権セット、および継承可能特権セット) を設定する
特権 ID を数値型と ASCII 型間で変換する
特権 ID の特権テキストを取得する
あるユーザーによって実行されたプロセスは、承認が必要な処理を実行する前に、そのユーザーの承認を調べます。処理に特権が必要な場合 (通常は必要) は、プロセスが特権を宣言する前に承認が検査されます。承認は、管理者の権限によって割り当てられ、auth_desc(4) に記述されたユーザー処理に対するユーザーアクセスを制御します。次の処理を行うプログラミングインタフェースの詳細は、第 4 章「ユーザー承認のチェック」を参照してください。
ユーザーの承認を検査する
承認セットを処理する
承認 ID を数値型と ASCII 型間で変換する
承認 ID の承認テキストを取得する
CMW ラベルは、データの格付けへのアクセスの制御と、データの格付けの管理を行います。すべてのプロセスとオブジェクトには、2 つのラベル部からなる CMW ラベルがあります。 1 つは、必須アクセス制御 (MAC) が判断のために使用する機密ラベルで、もう 1 つはデータの実際の機密性を識別するための情報ラベルです。
Trusted Solaris 7 では、情報ラベルは機能しません。情報ラベルは、互換性のためだけに CMW ラベルに表示されます。情報ラベルを返す関数の大部分は、デフォルトで情報ラベルを ADMIN_LOW にリセットし、情報ラベルを使用することはありません。
次の処理を行うプログラミングインタフェースの詳細は、第 5 章「ラベル」を参照してください。
ファイルラベルとプロセスラベルの取得と設定を行う
ファイルシステムのラベル範囲を取得する
ラベルを初期化する
2 つのレベル間の高い方の下限または低い方の上限を特定する
「優位」と「同等」の関係によってレベルを比較する
バイナリの情報ラベルを結合する
バイナリのラベル型のチェックと設定を行う
バイナリと ASCII 間、またはバイナリと 16 進間でラベルを変換する
機密ラベルが有効であり、システムまたはユーザーの認可範囲であることをチェックする
label_encodings(4) ファイルから情報を取得する。このファイルはシステム管理者が設定および管理し、システムのラベル定義を含んでいます
ユーザーがワークスペースからアプリケーションを起動するとき、プロセスに対しそのユーザーのセッション認可上限が設定されます。この認可上限を、プロセス認可上限と言います。プロセス認可上限は、プロセスに対し、オブジェクトの CMW ラベルの変更やデータ書き込みの上限を設定します。次の処理を行うプログラミングインタフェースの詳細は、第 7 章「プロセス認可上限」を参照してください。
プロセス認可上限の取得と設定を行う
バイナリの認可上限を初期化する
2 つのレベル間の高い方の下限または低い方の上限を特定する
「優位」と「同等」の関係によってレベルを比較する
バイナリのラベル型のチェックと設定を行う
バイナリと ASCII 間、またはバイナリと 16 進の間で認可上限を変換する
認可上限が有効であることをチェックする
マルチレベルディレクトリ (MLD) では、複数の機密ラベルで動作可能な 1 つのプログラムが、共通のディレクトリを使用して、プロセスが現在動作している機密ラベルのファイルにアクセスできます。1 つの MLD には複数のシングルレベルディレクトリ (SLD) があり、各 SLD はこの SLD の機密ラベルを持つファイルを格納します。1 つの MLD 内では、同じ名前のファイルを複数の SLD に格納できます。このファイルのインスタンスには、それぞれの格納先の SLD の機密ラベルに適したデータが含まれています。これを、ディレクトリとファイルの多重インスタンス化と言います。次の処理を行うプログラミングインタフェースの詳細は、第 8 章「マルチレベルディレクトリ」を参照してください。
シングルレベルディレクトリまたはマルチレベルディレクトリの名前を取得する
シングルレベルディレクトリまたはマルチレベルディレクトリの属性情報を取得する
システムコール内で、シングルレベルディレクトリまたはマルチレベルディレクトリの名前を使用する
他社のアプリケーションを使用する場合、異常ユーザーアクションを監視する監査記録を生成して、システムの不審な利用や異常な動作を検出することができます。他社のアプリケーションの監査について詳細は、第 9 章「アプリケーション監査」を参照してください。
ユーザーデータベースとプロファイルデータベースには、アプリケーションがアクセスできるユーザー、役割、プロファイルの情報が含まれます。次の処理を行うプログラミングインタフェースの詳細は、第 10 章「ユーザーとプロファイルのデータベースエントリへのアクセス」を参照してください。
tsoluser データベース内のユーザーエントリと役割エントリにアクセスする
tsolprof データベース内のプロファイルエントリにアクセスする
Trusted Solaris 7 は、アクセスチェック、所有権チェック、IPC とネットワークの終端オブジェクトに対する情報ラベルの浮上の機能を持つ、ラベル付きプロセス間通信 (IPC) をサポートしています。また、ネットワーク終端オブジェクトに対するセキュリティ属性情報の転送もサポートしています。
ラベル付き終端間通信では、次に示すように、シングルレベル接続、マルチレベル接続、多重インスタンス化された接続が可能です。
シングルレベルのポート接続 - 特権を持たない 2 つのプロセスが同じ機密ラベルで通信する。
マルチレベルのポート接続 - 1 台の特権を持つサーバーが、異なる機密ラベルで動作するひとつ以上の特権を持たないクライアントと通信する。
多重インスタンス化されたポート接続 (UNIX アドレスファミリのみ) - 1 つのマルチレベルディレクトリ (MLD) 内の複数のシングルレベルディレクトリ (SLD) にある同名の複数のファイルを使用した、シングルレベルの接続。多重インスタンス化されたポート接続は、複数の独立した並列バインドを作成します。
詳細は、第 11 章「プロセス間通信」、第 12 章「System V のプロセス間通信」、第 13 章「トラステッドセキュリティ情報交換ライブラリ」、および第 14 章「遠隔手続き呼び出し」を参照してください。
トラステッド (信頼性の高い) X ウィンドウシステム (Version 11) サーバーは、ログイン時に起動し、プロセス間通信 (IPC) のトラステッドパスを使用してワークステーションのウィンドウシステムを処理します。ウィンドウ、プロパティ、セレクション、TooltalkTM セッションは、個別のオブジェクトとして、多重インスタンス化された複数の機密ラベルで作成されます。Motif ウィジェット、Xt イントリンシクス、Xlib、CDE インタフェースを使用して作成されるアプリケーションは、X11 プロトコルによって規定されるセキュリティポリシー制約の範囲で動作します。
付録 B 「Trusted Solaris 7 インタフェースリファレンス」 では、X11 トラステッド IPC パスを作成する開発者を対象に、拡張機能について説明しています。第 15 章「トラステッド X ウィンドウシステム」では、セキュリティ属性情報にアクセスするプログラミングインタフェースや、X ウィンドウシステムで表示するための指定幅と指定フォントのリストを使用して、バイナリのラベルと認可上限を ASCII へ変換するプログラミングインタフェースについて説明します。
分散型の Trusted Solaris 7 オペレーティングシステムは、ユーザーインタフェースとして共通デスクトップ環境 (CDE) 1.1.1 ウィンドウシステムを使用しています。新しいアプリケーションのユーザーインタフェースには、CDE API、Motif ウィジェット 1.2、Xt イントリンシクス、または Xlib を使用してください。Trusted Solaris 7 は、XViewTM と Open Look Interface Toolkit (OLIT) に基づいた OpenWindowsTM アプリケーションをサポートしています。そのため、ユーザーインタフェースとして OLIT を使用したアプリケーションであれば、トラステッドアプリケーション以外でも Trusted Solaris 7 上で動作します。
Trusted Solaris 7 には、アプリケーションに一般的なラベル作成用のユーザーインタフェースを加えるための、Motif ベースのプログラミングインタフェースが装備されています。このラベル作成用のインタフェースを使用すると、有効な CMW ラベル、機密ラベル、情報ラベル、または認可上限を対話形式で作成できます。このプログラミングインタフェースの詳細は、第 16 章「ラベルビルダー」を参照してください。
サイトで特定のセキュリティ属性を操作するシステム管理者は、/etc/security ファイル内のシステム変数を設定してシステムを構成します。次の処理を行うために、Trusted Solaris 7 のシステムセキュリティ変数にアクセスするプログラミングインタフェースの詳細は、第 2 章「プログラミングインタフェースの概要」を参照してください。
アプリケーションに、情報ラベルを設定または表示させる
システムに対し、情報ラベルの浮上を有効に設定する
System V IPC オブジェクトに対し、情報ラベルの設定を有効にする (システム上でラベルの浮上が有効に指定されている場合のみ)。
特権を持つアプリケーションをテストする特権デバッグを有効にする。特権デバッグを有効にすると、アプリケーションに必要な特権の一部が欠如している場合でもアプリケーションは成功し、欠如している特権が情報としてコマンド行とファイルに出力されます。特権デバッグを有効にする方法と使用方法の詳細は、『Trusted Solaris 管理の手順』または 「特権デバッグ」を参照してください。
exec(2) を呼び出す前に、情報ラベルを ADMIN_LOW にリセットする
特権を持つプロセスによって機密ラベルが昇格されたファイルの名前を隠す
セキュリティ属性は、ファイルシステム、プロセス、データパケット、通信の終端、X ウィンドウシステムオブジェクトのセキュリティ情報を定義します。
ファイルシステムは、次に示す Solaris 7 と Trusted Solaris 7 のセキュリティ属性を、第 2 章「プログラミングインタフェースの概要」で説明しているプログラミングインタフェースによってアクセス可能なセキュリティ属性セットとして格納します。ファイル特権にアクセスする方法は、第 3 章「特権」を参照してください。
Solaris 7 |
Trusted Solaris 7 |
アクセス制御リスト (ACL) |
CMW ラベル |
任意アクセス制御 (DAC) のアクセス権ビット |
ファイルシステムのラベル範囲 |
ファイルのユーザー ID |
強制特権セットと許容特権セット |
ファイルのグループ ID |
監査の事前選択属性 |
|
属性フラグ |
|
マルチレベルディレクトリの接頭辞 |
ユーザープロセスは、ユーザープロセスを開始したユーザーまたは役割、および開始されたワークスペースから、以下に示す Solaris 7 と Trusted Solaris 7 のセキュリティ属性を受け取ります。
第 7 章「プロセス認可上限」では、プロセス認可上限にアクセスする方法を説明します。
第 5 章「ラベル」では、プロセスのラベルにアクセスする方法を説明します。
第 2 章「プログラミングインタフェースの概要」では、プロセス属性フラグにアクセスする方法を説明します。
第 3 章「特権」では、プロセス特権セットにアクセスする方法を説明します。
プロセス ID |
プロセス認可上限 |
実ユーザー ID と実効ユーザー ID |
CMW ラベル |
実グループ ID と実効グループ ID |
プロセス属性フラグ |
補助グループリスト |
プロセス特権セット |
ユーザー監査 ID |
|
監査セッション ID |
|
umask (プロセスによって作成されるファイルのアクセス権ビットを定義する) |
トラステッドセキュリティ情報交換 (Trusted Security Infomation eXchange、TSIX) ライブラリによって、データパケットと通信の終端に関する Trusted Solaris 7 セキュリティ属性にアクセスすることができます。TSIX は、Berkeley ソケットに基づいており、トランスポートレイヤーインタフェース (TLI) をサポートしています。第 13 章「トラステッドセキュリティ情報交換ライブラリ」では、データパケットと通信の終端のセキュリティ属性にアクセスする方法を説明します。
実効ユーザー ID |
機密ラベル |
実効グループ ID |
情報ラベル |
プロセス ID |
プロセス認可上限 |
ネットワークセッション ID |
有効な特権セット |
補助グループ ID |
プロセス属性フラグ |
監査 ID |
|
監査情報 |
|
トラステッド (信頼性の高い) X ウィンドウシステムには、次に示すセキュリティ属性があります。X ウィンドウシステムのセキュリティ属性にアクセスする方法は、第 15 章「トラステッド X ウィンドウシステム」を参照してください。
ウィンドウサーバーの所有者 ID |
機密ラベル |
ユーザー ID |
情報ラベル |
グループ ID |
入力情報ラベル |
プロセス ID |
X ウィンドウサーバーの認可上限 |
セッション ID |
X ウィンドウサーバーの最下位ラベル |
監査 ID |
トラステッドパスウィンドウ |
インターネットアドレス |
|
トラステッドパスフラグは、そのウィンドウがトラステッドパスにあるウィンドウであることを示します。トラステッドパスウィンドウは、スクリーンストライプやログインウィンドウのような最上位のウィンドウであり、信頼できないプログラムからのアクセスを防ぐようにシステムを保護します。