Trusted Solaris 開発ガイド

アプリケーションプログラミングインタフェース (API)

Trusted Solaris 7 API は、次に示すセキュリティ機能に対するアクセスを可能にします。この章では、これらの機能の概要を説明します。詳細は、本書の第 2 章以降を参照してください。

特権

特権をプロセスに設定すると、そのプロセスは、システムセキュリティポリシーによって禁止されている処理を実行できるようになります。Solaris 7 では、実効ユーザー ID: 0 (スーパーユーザー) によるプロセスには、システムセキュリティポリシーは適用されません。しかし、0 以外のユーザー ID によるプロセスは処理が限定されます。Trusted Solaris 7 では、スーパーユーザーは存在しません。どのようなユーザー ID のプロセスに対しても、特定のセキュリティ関連の権限が定義された、さまざまな特権を割り当てることができます。特権および特権によってプロセスが実行できる処理の一覧は、priv_desc(4) を参照してください。

ほとんどのアプリケーションは、セキュリティ関連の権限を実行する必要がないため、特権を使用しません。特権を使用するアプリケーションは、トラステッドコンピューティングベース (Trusted Computing Base、TCB) を使用するアプリケーション (以下、TCB アプリケーション) と呼ばれます。TCB アプリケーションでは、情報が不正に利用されることがないようにコーディングに注意する必要があります。どのような場合に特権が必要になるかの目安は、「セキュリティポリシー」を参照してください。次に示す特権プログラムのコーディングについての情報とガイドラインは、第 3 章「特権」を参照してください。

ユーザーの承認

あるユーザーによって実行されたプロセスは、承認が必要な処理を実行する前に、そのユーザーの承認を調べます。処理に特権が必要な場合 (通常は必要) は、プロセスが特権を宣言する前に承認が検査されます。承認は、管理者の権限によって割り当てられ、auth_desc(4) に記述されたユーザー処理に対するユーザーアクセスを制御します。次の処理を行うプログラミングインタフェースの詳細は、第 4 章「ユーザー承認のチェック」を参照してください。

CMW ラベル

CMW ラベルは、データの格付けへのアクセスの制御と、データの格付けの管理を行います。すべてのプロセスとオブジェクトには、2 つのラベル部からなる CMW ラベルがあります。 1 つは、必須アクセス制御 (MAC) が判断のために使用する機密ラベルで、もう 1 つはデータの実際の機密性を識別するための情報ラベルです。


注 -

Trusted Solaris 7 では、情報ラベルは機能しません。情報ラベルは、互換性のためだけに CMW ラベルに表示されます。情報ラベルを返す関数の大部分は、デフォルトで情報ラベルを ADMIN_LOW にリセットし、情報ラベルを使用することはありません。


次の処理を行うプログラミングインタフェースの詳細は、第 5 章「ラベル」を参照してください。

プロセス認可上限

ユーザーがワークスペースからアプリケーションを起動するとき、プロセスに対しそのユーザーのセッション認可上限が設定されます。この認可上限を、プロセス認可上限と言います。プロセス認可上限は、プロセスに対し、オブジェクトの CMW ラベルの変更やデータ書き込みの上限を設定します。次の処理を行うプログラミングインタフェースの詳細は、第 7 章「プロセス認可上限」を参照してください。

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

マルチレベルディレクトリ (MLD) では、複数の機密ラベルで動作可能な 1 つのプログラムが、共通のディレクトリを使用して、プロセスが現在動作している機密ラベルのファイルにアクセスできます。1 つの MLD には複数のシングルレベルディレクトリ (SLD) があり、各 SLD はこの SLD の機密ラベルを持つファイルを格納します。1 つの MLD 内では、同じ名前のファイルを複数の SLD に格納できます。このファイルのインスタンスには、それぞれの格納先の SLD の機密ラベルに適したデータが含まれています。これを、ディレクトリとファイルの多重インスタンス化と言います。次の処理を行うプログラミングインタフェースの詳細は、第 8 章「マルチレベルディレクトリ」を参照してください。

アプリケーション監査

他社のアプリケーションを使用する場合、異常ユーザーアクションを監視する監査記録を生成して、システムの不審な利用や異常な動作を検出することができます。他社のアプリケーションの監査について詳細は、第 9 章「アプリケーション監査」を参照してください。

ユーザーデータベースとプロファイルデータベースのアクセス

ユーザーデータベースとプロファイルデータベースには、アプリケーションがアクセスできるユーザー、役割、プロファイルの情報が含まれます。次の処理を行うプログラミングインタフェースの詳細は、第 10 章「ユーザーとプロファイルのデータベースエントリへのアクセス」を参照してください。

プロセス間通信

Trusted Solaris 7 は、アクセスチェック、所有権チェック、IPC とネットワークの終端オブジェクトに対する情報ラベルの浮上の機能を持つ、ラベル付きプロセス間通信 (IPC) をサポートしています。また、ネットワーク終端オブジェクトに対するセキュリティ属性情報の転送もサポートしています。

ラベル付き終端間通信では、次に示すように、シングルレベル接続、マルチレベル接続、多重インスタンス化された接続が可能です。

詳細は、第 11 章「プロセス間通信」第 12 章「System V のプロセス間通信」第 13 章「トラステッドセキュリティ情報交換ライブラリ」、および第 14 章「遠隔手続き呼び出し」を参照してください。

トラステッド X ウィンドウシステム

トラステッド (信頼性の高い) 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 章「プログラミングインタフェースの概要」を参照してください。

セキュリティ属性

セキュリティ属性は、ファイルシステム、プロセス、データパケット、通信の終端、X ウィンドウシステムオブジェクトのセキュリティ情報を定義します。

ファイルシステムのセキュリティ属性とフラグ

ファイルシステムは、次に示す Solaris 7 と Trusted Solaris 7 のセキュリティ属性を、第 2 章「プログラミングインタフェースの概要」で説明しているプログラミングインタフェースによってアクセス可能なセキュリティ属性セットとして格納します。ファイル特権にアクセスする方法は、第 3 章「特権」を参照してください。

Solaris 7 

Trusted Solaris 7 

アクセス制御リスト (ACL) 

CMW ラベル 

任意アクセス制御 (DAC) のアクセス権ビット 

ファイルシステムのラベル範囲 

ファイルのユーザー ID 

強制特権セットと許容特権セット 

ファイルのグループ ID 

監査の事前選択属性 

 

属性フラグ 

 

マルチレベルディレクトリの接頭辞 

プロセスのセキュリティ属性とフラグ

ユーザープロセスは、ユーザープロセスを開始したユーザーまたは役割、および開始されたワークスペースから、以下に示す Solaris 7 と Trusted Solaris 7 のセキュリティ属性を受け取ります。

プロセス 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 ウィンドウシステムには、次に示すセキュリティ属性があります。X ウィンドウシステムのセキュリティ属性にアクセスする方法は、第 15 章「トラステッド X ウィンドウシステム」を参照してください。

ウィンドウサーバーの所有者 ID 

機密ラベル 

ユーザー ID 

情報ラベル 

グループ ID 

入力情報ラベル 

プロセス ID 

X ウィンドウサーバーの認可上限 

セッション ID 

X ウィンドウサーバーの最下位ラベル 

監査 ID 

トラステッドパスウィンドウ 

インターネットアドレス 

 

トラステッドパスフラグは、そのウィンドウがトラステッドパスにあるウィンドウであることを示します。トラステッドパスウィンドウは、スクリーンストライプやログインウィンドウのような最上位のウィンドウであり、信頼できないプログラムからのアクセスを防ぐようにシステムを保護します。