Trusted Solaris 管理の概要

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

標準の 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

○ 

 

 

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