Oracle Solaris Trusted Extensions 管理の手順

第 1 章 Trusted Extensions の管理の概念

この章では、Solaris Trusted Extensions ソフトウェアが設定されたシステムの管理について紹介します。

Trusted Extensions ソフトウェアと Solaris OS

Trusted Extensions ソフトウェアは、Solaris オペレーティングシステム (Solaris OS) を実行しているシステムにラベルを追加します。ラベルは、「必須アクセス制御」 (MAC) を実装します。MAC は任意アクセス制御 (DAC) とともに、システムのサブジェクト (プロセス) とオブジェクト (データ) を保護します。Trusted Extensions ソフトウェアには、ラベルの構成、ラベルの割り当て、およびラベルポリシーを処理するためのインタフェースが用意されています。

Trusted Extensions と Solaris OS の類似性

Trusted Extensions ソフトウェアは、権利プロファイル、役割、監査、特権、および Solaris OS のその他のセキュリティー機能を使用します。Solaris Secure Shell (SSH)、BART、Solaris 暗号フレームワーク、IPsec、および IPfilter を、Trusted Extensions で使用できます。

Trusted Extensions と Solaris OS の相違点

Trusted Extensions ソフトウェアは、Solaris OS を拡張します。次のリストに概要を示します。クイックリファレンスについては、付録 A Trusted Extensions 管理の手引きを参照してください。

マルチヘッドシステムと Trusted Extensions デスクトップ

マルチヘッドの Trusted Extensions システムのモニターが水平に設定されている場合、1 つのトラステッドストライプが複数のモニターにまたがって表示されます。モニターを垂直に設定すると、トラステッドストライプは一番下のモニターに表示されます。

さまざまなワークスペースがマルチヘッドシステムのモニターに表示される場合、Trusted CDE とTrusted JDS とではトラステッドストライプの表示の仕方が異なります。

Trusted Extensions の基本概念

Trusted Extensions ソフトウェアにより、Solaris システムにラベルが追加されます。また、ラベル付きデスクトップと、ラベルビルダーやデバイス割り当てマネージャーなどのトラステッドアプリケーションも追加されます。この節で説明する概念は、ユーザーと管理者の両方にとって、Trusted Extensions を理解するために必要な知識です。『Oracle Solaris Trusted Extensions ユーザーズガイド』でも、これらの概念をユーザーを対象として説明しています。

Trusted Extensions が提供する保護

Trusted Extensions ソフトウェアは Solaris OS の保護を強化します。Solaris OS は、パスワードが必要なユーザーアカウントを使用して、システムへのアクセスを保護します。パスワードの定期的な変更を要求したり、パスワードの長さを指定することもできます。役割で管理タスクを実行するには、追加のパスワードが必要です。役割はログインアカウントとして使用できないため、認証を追加することで、root ユーザーのパスワードを推測した侵入者から受ける被害を小さくできます。Trusted Extensions ソフトウェアは、ユーザーと役割を承認されたラベル範囲にさらに限定します。このラベル範囲は、ユーザーと役割がアクセスできる情報を制限します。

Trusted Extensions ソフトウェアでは、トラステッドパスシンボルが表示されます。これは、トラステッドストライプの左に表示される、不正操作を防ぐための明白な目印です。Trusted CDE では、トラステッドストライプは画面の最下部に表示されます。Trusted JDS では、画面の最上部に表示されます。トラステッドパスシンボルは、システムのセキュリティーに影響する部分を使用していることをユーザーに通知します。ユーザーがトラステッドアプリケーションを実行しているときに、このシンボルが表示されていない場合は、実行中のアプリケーションが本物であることをただちに確認するようにしてください。トラステッドストライプが表示されない場合、デスクトップは信頼できません。デスクトップ表示の例については、図 1–1 を参照してください。

図 1–1 Trusted Extensions マルチレベル CDE デスクトップ

ウィンドウおよびアイコン上のラベル、トラステッドシンボルとワークスペースラベルが表示されたトラステッドストライプを示す画面

セキュリティーにもっとも関連するソフトウェアであるトラステッドコンピューティングベース (TCB) は、大域ゾーンで動作します。一般ユーザーは、大域ゾーンに入ったり、大域ゾーンのリソースを表示することはできません。パスワードを変更する場合など、ユーザーは TCB ソフトウェアを対話的に実行できます。トラステッドパスシンボルは、ユーザーが TCB と対話するときに常に表示されます。

Trusted Extensions とアクセス制御

Trusted Extensions ソフトウェアは、任意アクセス制御 (DAC) と必須アクセス制御 (MAC) を通じて、情報とほかのリソースを保護します。DAC は、所有者が自由に設定する、従来の UNIX のアクセス権ビットとアクセス制御リストです。MAC は、システムが自動的に実施するメカニズムです。MAC は、トランザクション中のプロセスとデータのラベルを確認することで、すべてのトランザクションを制御します。

ユーザーの「ラベル」は、ユーザーが許可された操作および選択する操作の機密レベルを表します。標準ラベルは Secret または Public です。ラベルにより、ユーザーがアクセスできる情報が決定されます。MAC と DAC のどちらも、Solaris OS で設定された特殊なアクセス権で上書きできます。「特権」は、プロセスに付与される特殊なアクセス権です。「 承認」は、管理者によってユーザーと役割に付与される特殊なアクセス権です。

管理者はサイトのセキュリティーポリシーに従って、ファイルとディレクトリをセキュリティーで保護する適切な手順について、ユーザーにトレーニングを実施する必要があります。また、ラベルのアップグレードまたはダウングレードを許可されたユーザーには、どのような場合にラベルの変更が適切かについて指示するようにしてください。

役割と Trusted Extensions

Solaris ソフトウェアだけを実行して Trusted Extensions を使用していないシステムでは、役割の使用は任意です。Trusted Extensions が設定されたシステムでは、役割は必須です。システムは、システム管理者役割とセキュリティー管理者役割で管理されます。一部では、root 役割を使用する場合もあります。

Solaris OS と同様、権利プロファイルは役割の機能の基本です。Trusted Extensions では、Information Security と User Security の 2 つの権利プロファイルを使用します。これらの 2 つのプロファイルによって、セキュリティー管理者役割が定義されます。

Trusted Extensions の役割で利用できるプログラムには、「トラステッドパス属性」という特殊なプロパティーが与えられます。この属性は、プログラムが TCB の一部であることを表します。トラステッドパス属性は、プログラムが大域ゾーンから起動された場合に利用できます。

役割については、『System Administration Guide: Security Services』のパート III「Roles, Rights Profiles, and Privileges」を参照してください。

Trusted Extensions ソフトウェアのラベル

ラベルと認可上限は、Trusted Extensions の必須アクセス制御 (MAC) で中心的な機能を果たします。これらは、各ユーザーがアクセスできるプログラム、ファイル、およびディレクトリを決定します。ラベルと認可上限は、1 つの「格付け」構成要素と任意の数の「コンパートメント」構成要素から構成されます。格付けコンポーネントは、TOP SECRETCONFIDENTIAL などの、セキュリティーの階層レベルを表します。コンパートメントコンポーネントは、共通な情報へのアクセスを必要とするユーザーのグループを表します。コンパートメントの一般的な例として、プロジェクト、部署、物理的な場所などがあります。承認されたユーザーには、ラベルは読みやすい形式で表示されますが、内部的にはラベルは数値として処理されます。数値によるラベルと人が読みやすい形式のラベルは、label_encodings ファイルで定義されます。

Trusted Extensions は、試行されるセキュリティー関連トランザクションのすべてを仲介します。このソフトウェアは、アクセス元のエンティティー (一般的にはプロセス) のラベルと、アクセス先のエンティティー (通常はファイルシステムオブジェクト) のラベルを比較します。このソフトウェアは、どちらのラベルが「優位」であるかに応じて、トランザクションを許可または拒否します。ラベルは、割り当て可能なデバイス、ネットワーク、フレームバッファー、別のホストなど、ほかのシステムリソースへのアクセスを決定する場合にも使用されます。

ラベル間の優位関係

次の 2 つの条件を満たす場合、一方のエンティティーのラベルが、他方のエンティティーのラベルよりも優位であると言います。

2 つのラベルの格付けが同じで、コンパートメントのセットも同じである場合、これらのラベルは「同等」であるとされます。ラベルが同等であれば、相互に優位となり、アクセスは許可されます。

一方のラベルのコンパートメントに他方のラベルのコンパートメントがすべて含まれ、このラベルの格付けが他方よりも高いか、両方のラベルの格付けが同等である場合、最初のラベルは他方のラベルより「完全に優位」であると言います。

どちらのラベルにも優位が付けられない場合、これらのラベルは「無関係」または「比較不可能」とみなされます。

次の表に、ラベルの優位の比較例を示します。この例では、NEED_TO_KNOW の格付けは INTERNAL よりも上位にあります。3 つのコンパートメントとして Eng、Mkt、および Fin があります。

表 1–1 ラベル関係の例

ラベル 1 

関係 

ラベル 2 

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

INTERNAL Eng Mkt

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

NEED_TO_KNOW Eng

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より (完全に) 優位 

INTERNAL Eng

NEED_TO_KNOW Eng Mkt

ラベル 1 はラベル 2 より優位 (または同等) 

NEED_TO_KNOW Eng Mkt

NEED_TO_KNOW Eng Mkt

無関係 

NEED_TO_KNOW Eng Fin

NEED_TO_KNOW Eng Mkt

無関係 

NEED_TO_KNOW Fin

NEED_TO_KNOW Eng Mkt

無関係 

INTERNAL Eng Mkt Fin

管理ラベル

Trusted Extensions には、 ADMIN_HIGHADMIN_LOW の 2 つの特殊な管理ラベルがあり、ラベルまたは認可上限として使用されます。これらのラベルは、システムリソースを保護するために使用され、一般ユーザーではなく管理者用のラベルです。

ADMIN_HIGH は最大のラベルです。ADMIN_HIGH は、システム中のすべてのラベルに対して優位であり、管理データベースや監査証跡などのシステムデータが読み取られるのを防ぎます。ADMIN_HIGH ラベルが付いたデータを読み取るには、大域 ゾーンで操作する必要があります。

ADMIN_LOW は最小のラベルです。一般ユーザーのラベルも含め、システム内のその他すべてのラベルは、ADMIN_LOW に対して優位になります。必須アクセス制御では、ユーザーはユーザーのラベルよりも低いラベルのファイルにデータを書き込むことができません。したがって、一般ユーザーは ADMIN_LOW ラベルのファイルを読み取ることはできますが、修正することはできません。一般的に ADMIN_LOW は、/usr/bin のファイルなど、共有されている誰でも実行可能なファイルを保護するために使用されます。

ラベルエンコーディングファイル

システムのラベルコンポーネント (格付け、コンパートメント、および関連規則) はすべて、ADMIN_HIGH ファイルの label_encodings ファイルに保存されます。このファイルは、/etc/security/tsol ディレクトリに保存されます。セキュリティー管理者は、サイトの label_encodings ファイルを設定します。ラベルエンコーディングファイルには、次の内容が含まれます。

詳細は、label_encodings(4) のマニュアルページを参照してください。詳しい情報は、『Solaris Trusted Extensions ラベルの管理』『コンパートメントモードワークステーションのラベル作成: エンコード形式』も参照してください。

ラベル範囲

ラベル範囲」は、ユーザーが操作を実行できる使用可能なラベルのセットです。ユーザーとリソースは、どちらにもラベル範囲があります。ラベル範囲で保護可能なリソースには、割り当て可能なデバイス、ネットワーク、インタフェース、フレームバッファー、コマンドやアクションなどが含まれます。ラベル範囲は、上限が認可上限によって、下限が最小ラベルによって定められます。

範囲は必ずしも、最大ラベルと最小ラベル間のすべてのラベルの組み合わせを含む必要はありません。label_encodings ファイルの規則で、特定の組み合わせを無効にできます。ラベルが範囲に含まれるためには、ラベルエンコーディングファイルの適用可能なすべての規則で許可される、「適格な形式」である必要があります。

ただし、認可上限は適格な形式である必要はありません。たとえば、label_encodings ファイルで、ラベルでコンパートメント EngMkt、および Fin の組み合わせが禁止されている場合を考えます。 INTERNAL Eng Mkt Fin は、有効な認可上限ですが、有効なラベルではありません。認可上限として、この組み合わせはユーザーが INTERNAL EngINTERNAL Mkt、および INTERNAL Fin のラベルのファイルにアクセスすることを許可します。

アカウントラベル範囲

ユーザーに認可上限と最小ラベルを割り当てると、ユーザーが操作の実行を許可される「アカウントラベル範囲」の上限と下限が決まります。次の式は、アカウントラベル範囲を表しています。≤ は、「前者より後者が優位であるか、両者が同等」であることを表します。

最小ラベル ≤ 許可されたラベル ≤ 認可上限

ユーザーは、認可上限を超えず、最小ラベルよりも優位なラベルで操作が許可されます。ユーザーの認可上限または最小ラベルが明示的に設定されていない場合は、label_encodings ファイルで定義されたデフォルトが有効になります。

ユーザーが複数ラベルまたは単一ラベルで操作を実行できるよう、認可上限と最小ラベルを割り当てることができます。ユーザーの許可上限と最小ラベルが等しい場合、このユーザーは 1 つのラベルだけで操作できます。

セッション範囲

「セッション範囲」は、Trusted Extensions のセッション中にユーザーが利用可能なラベルのセットです。セッション範囲は、ユーザーのアカウントラベル範囲内であり、かつシステムに設定されたラベル範囲内である必要があります。ログイン時にユーザーがシングルラベルのセッションモードを選択する場合、セッション範囲はそのラベルに制限されます。ユーザーが複数ラベルのセッションモードを選択する場合、ユーザーによって選択されたラベルがセッションの認可上限になります。セッションの認可上限は、セッション範囲の上限を定義します。ユーザーの最小ラベルは、下限を定義します。ユーザーは、最小ラベルのワークスペースでセッションを開始します。ユーザーはセッション中に、セッション範囲内の別のラベルのワークスペースに切り替えることができます。

ラベルの保護対象とラベルの表示場所

ラベルは、デスクトップに表示されるほか、プリンタ出力など、デスクトップで実行される出力にも表示されます。