この章では、Solaris Trusted Extensions ソフトウェアが設定されたシステムの管理について紹介します。
Trusted Extensions ソフトウェアは、Solaris オペレーティングシステム (Solaris OS) を実行しているシステムにラベルを追加します。ラベルは、「必須アクセス制御」 (MAC) を実装します。MAC は任意アクセス制御 (DAC) とともに、システムのサブジェクト (プロセス) とオブジェクト (データ) を保護します。Trusted Extensions ソフトウェアには、ラベルの構成、ラベルの割り当て、およびラベルポリシーを処理するためのインタフェースが用意されています。
Trusted Extensions ソフトウェアは、権利プロファイル、役割、監査、特権、および Solaris OS のその他のセキュリティー機能を使用します。Solaris Secure Shell (SSH)、BART、Solaris 暗号フレームワーク、IPsec、および IPfilter を、Trusted Extensions で使用できます。
Solaris OS の場合と同様、ユーザーが使用できるアプリケーションを、各自の職務を実行するために必要なアプリケーションだけに制限できます。ほかのユーザーには、その他の作業を承認することができます。
Solaris OS の場合と同様、これまでスーパーユーザーに割り当てられていた機能を、個別の「役割」に割り当てられます。
Solaris OS の場合と同様、特権でプロセスを保護します。プロセスを分離するため、ゾーンも使用されます。
Solaris OS と同様に、システムのイベントを監査できます。
Trusted Extensions は、policy.conf や exec_attr などの、Solaris OS のシステムの設定ファイルを使用します。
Trusted Extensions ソフトウェアは、Solaris OS を拡張します。次のリストに概要を示します。クイックリファレンスについては、付録 A Trusted Extensions 管理の手引きを参照してください。
Trusted Extensions は、「ラベル」という特別なセキュリティータグを使用して、データへのアクセスを制御します。ラベルでは「必須アクセス制御」(MAC) が使用されます。MAC 保護は、UNIX のファイルアクセス権、つまり随意アクセス制御 (DAC) に追加されます。ラベルは、ユーザー、ゾーン、デバイス、ウィンドウ、およびネットワークの終端に直接割り当てられます。ラベルは、プロセス、ファイル、およびその他のシステムオブジェクトにも暗黙的に割り当てられます。
一般ユーザーが MAC を上書きすることはできません。Trusted Extensions では、一般ユーザーはラベルが割り当てられたゾーンで作業する必要があります。デフォルトでは、ラベルが割り当てられたゾーンのユーザーまたはプロセスは MAC を上書きできません。
Solaris OS と同様に、MAC の上書きを許可する場合は、セキュリティーポリシーを上書きできる機能を特定のプロセスまたはユーザーに割り当てます。たとえば、ファイルのラベルを変更できるようにユーザーを承認することができます。これらの処理は、ファイル内の情報の機密度をアップグレードまたはダウングレードします。
Trusted Extensions は、既存の構成ファイルやコマンドを拡張します。たとえば、Trusted Extensions は監査イベント、承認、特権、権利プロファイルを追加します。
Trusted Extensions システムでは、Solaris システムでオプションとされている機能の中に必要なものがあります。たとえば、Trusted Extensions が設定されたシステムではゾーンと役割が必要です。
Trusted Extensions システムでは、Solaris システムでオプションとされている機能の中に推奨されるものがあります。たとえば、Trusted Extensions では、root ユーザーを root 役割に変更するようにしてください。
Trusted Extensions では、Solaris OS のデフォルトの動作が変更される場合があります。たとえば、Trusted Extensions が設定されたシステムでは、監査がデフォルトで有効です。また、デバイス割り当てが必要です。
Trusted Extensions では、利用できる選択肢が Solaris OS よりも制限される場合があります。たとえば、Trusted Extensions が設定されたシステムでは、NIS+ ネームサービスはサポートされません。また、Trusted Extensions では、すべてのゾーンはラベル付きゾーンです。Solaris OS と異なり、ラベル付きゾーンは同じプールのユーザー ID とグループ ID を使用する必要があります。Trusted Extensions では、複数のラベル付きゾーンで 1 つの IP アドレスを共有することもできます。
Trusted Extensions には、トラステッドバージョンの 2 つのデスクトップがあります。ラベル付き環境で作業するには、Trusted Extensions のデスクトップユーザーはこれらのデスクトップのいずれかを使用する必要があります。
Solaris Trusted Extensions (CDE) – トラステッドバージョンの共通デスクトップ環境 (CDE) です。この名称はTrusted CDE と略すことができます。
Solaris Trusted Extensions (JDS) – トラステッドバージョンの Java Desktop System, Release number です。この名称は Trusted JDS と略すことができます。
Trusted Extensions には、グラフィカルユーザーインタフェース (GUI) とコマンド行インタフェース (CLI) が追加されています。たとえば、Trusted Extensions にはデバイスを管理するデバイス割り当てマネージャーが用意されています。また、updatehome コマンドは、一般ユーザーの各ラベルのホームディレクトリに、起動ファイルを配置するために使用します。
Trusted Extensions では、管理に特定の GUI を使用する必要があります。たとえば、Trusted Extensions が設定されたシステムでは、Solaris 管理コンソールを使用してユーザー、役割、およびネットワークを管理します。同様に、Trusted CDE では、システムファイルを編集するには管理エディタを使用します。
Trusted Extensions は、ユーザーが表示できる内容を制限します。たとえば、ユーザーが割り当てできないデバイスは、そのユーザーに対して表示されません。
Trusted Extensions は、ユーザーのデスクトップオプションを制限します。たとえば、ユーザーがワークステーションを非活動のままにできる時間は制限されています。この時間を過ぎると、画面がロックされます。
マルチヘッドの Trusted Extensions システムのモニターが水平に設定されている場合、1 つのトラステッドストライプが複数のモニターにまたがって表示されます。モニターを垂直に設定すると、トラステッドストライプは一番下のモニターに表示されます。
さまざまなワークスペースがマルチヘッドシステムのモニターに表示される場合、Trusted CDE とTrusted JDS とではトラステッドストライプの表示の仕方が異なります。
Trusted JDS デスクトップでは、各モニターにトラステッドストライプが表示されます。
Trusted CDE デスクトップでは、1 つのトラステッドストライプが主モニターに表示されます。
Trusted CDE マルチヘッドのシステム上で 2 つめのトラステッドストライプが表示される場合、それはオペレーティングシステムによって生成されたものではありません。システムに承認されていないプログラムが存在する可能性があります。
ただちにセキュリティー管理者に連絡してください。正しいトラステッドストライプを確認するには、「デスクトップの現在のフォーカスへの制御を取り戻す」を参照してください。
Trusted Extensions ソフトウェアにより、Solaris システムにラベルが追加されます。また、ラベル付きデスクトップと、ラベルビルダーやデバイス割り当てマネージャーなどのトラステッドアプリケーションも追加されます。この節で説明する概念は、ユーザーと管理者の両方にとって、Trusted Extensions を理解するために必要な知識です。『Oracle Solaris Trusted Extensions ユーザーズガイド』でも、これらの概念をユーザーを対象として説明しています。
Trusted Extensions ソフトウェアは Solaris OS の保護を強化します。Solaris OS は、パスワードが必要なユーザーアカウントを使用して、システムへのアクセスを保護します。パスワードの定期的な変更を要求したり、パスワードの長さを指定することもできます。役割で管理タスクを実行するには、追加のパスワードが必要です。役割はログインアカウントとして使用できないため、認証を追加することで、root ユーザーのパスワードを推測した侵入者から受ける被害を小さくできます。Trusted Extensions ソフトウェアは、ユーザーと役割を承認されたラベル範囲にさらに限定します。このラベル範囲は、ユーザーと役割がアクセスできる情報を制限します。
Trusted Extensions ソフトウェアでは、トラステッドパスシンボルが表示されます。これは、トラステッドストライプの左に表示される、不正操作を防ぐための明白な目印です。Trusted CDE では、トラステッドストライプは画面の最下部に表示されます。Trusted JDS では、画面の最上部に表示されます。トラステッドパスシンボルは、システムのセキュリティーに影響する部分を使用していることをユーザーに通知します。ユーザーがトラステッドアプリケーションを実行しているときに、このシンボルが表示されていない場合は、実行中のアプリケーションが本物であることをただちに確認するようにしてください。トラステッドストライプが表示されない場合、デスクトップは信頼できません。デスクトップ表示の例については、図 1–1 を参照してください。
セキュリティーにもっとも関連するソフトウェアであるトラステッドコンピューティングベース (TCB) は、大域ゾーンで動作します。一般ユーザーは、大域ゾーンに入ったり、大域ゾーンのリソースを表示することはできません。パスワードを変更する場合など、ユーザーは TCB ソフトウェアを対話的に実行できます。トラステッドパスシンボルは、ユーザーが TCB と対話するときに常に表示されます。
Trusted Extensions ソフトウェアは、任意アクセス制御 (DAC) と必須アクセス制御 (MAC) を通じて、情報とほかのリソースを保護します。DAC は、所有者が自由に設定する、従来の UNIX のアクセス権ビットとアクセス制御リストです。MAC は、システムが自動的に実施するメカニズムです。MAC は、トランザクション中のプロセスとデータのラベルを確認することで、すべてのトランザクションを制御します。
ユーザーの「ラベル」は、ユーザーが許可された操作および選択する操作の機密レベルを表します。標準ラベルは Secret または Public です。ラベルにより、ユーザーがアクセスできる情報が決定されます。MAC と DAC のどちらも、Solaris OS で設定された特殊なアクセス権で上書きできます。「特権」は、プロセスに付与される特殊なアクセス権です。「 承認」は、管理者によってユーザーと役割に付与される特殊なアクセス権です。
管理者はサイトのセキュリティーポリシーに従って、ファイルとディレクトリをセキュリティーで保護する適切な手順について、ユーザーにトレーニングを実施する必要があります。また、ラベルのアップグレードまたはダウングレードを許可されたユーザーには、どのような場合にラベルの変更が適切かについて指示するようにしてください。
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 の必須アクセス制御 (MAC) で中心的な機能を果たします。これらは、各ユーザーがアクセスできるプログラム、ファイル、およびディレクトリを決定します。ラベルと認可上限は、1 つの「格付け」構成要素と任意の数の「コンパートメント」構成要素から構成されます。格付けコンポーネントは、TOP SECRET や CONFIDENTIAL などの、セキュリティーの階層レベルを表します。コンパートメントコンポーネントは、共通な情報へのアクセスを必要とするユーザーのグループを表します。コンパートメントの一般的な例として、プロジェクト、部署、物理的な場所などがあります。承認されたユーザーには、ラベルは読みやすい形式で表示されますが、内部的にはラベルは数値として処理されます。数値によるラベルと人が読みやすい形式のラベルは、label_encodings ファイルで定義されます。
Trusted Extensions は、試行されるセキュリティー関連トランザクションのすべてを仲介します。このソフトウェアは、アクセス元のエンティティー (一般的にはプロセス) のラベルと、アクセス先のエンティティー (通常はファイルシステムオブジェクト) のラベルを比較します。このソフトウェアは、どちらのラベルが「優位」であるかに応じて、トランザクションを許可または拒否します。ラベルは、割り当て可能なデバイス、ネットワーク、フレームバッファー、別のホストなど、ほかのシステムリソースへのアクセスを決定する場合にも使用されます。
次の 2 つの条件を満たす場合、一方のエンティティーのラベルが、他方のエンティティーのラベルよりも優位であると言います。
一方のエンティティーのラベルの格付け構成要素が、他方のエンティティーの格付けと同等かそれよりも高い。セキュリティー管理者は、label_encodings ファイルで格付けに数値を割り当てます。ソフトウェアはこれらの数値を比較して、優位性を決定します。
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_HIGH と ADMIN_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 ファイルで、ラベルでコンパートメント Eng、Mkt、および Fin の組み合わせが禁止されている場合を考えます。 INTERNAL Eng Mkt Fin は、有効な認可上限ですが、有効なラベルではありません。認可上限として、この組み合わせはユーザーが INTERNAL Eng、INTERNAL Mkt、および INTERNAL Fin のラベルのファイルにアクセスすることを許可します。
ユーザーに認可上限と最小ラベルを割り当てると、ユーザーが操作の実行を許可される「アカウントラベル範囲」の上限と下限が決まります。次の式は、アカウントラベル範囲を表しています。≤ は、「前者より後者が優位であるか、両者が同等」であることを表します。
最小ラベル ≤ 許可されたラベル ≤ 認可上限
ユーザーは、認可上限を超えず、最小ラベルよりも優位なラベルで操作が許可されます。ユーザーの認可上限または最小ラベルが明示的に設定されていない場合は、label_encodings ファイルで定義されたデフォルトが有効になります。
ユーザーが複数ラベルまたは単一ラベルで操作を実行できるよう、認可上限と最小ラベルを割り当てることができます。ユーザーの許可上限と最小ラベルが等しい場合、このユーザーは 1 つのラベルだけで操作できます。
「セッション範囲」は、Trusted Extensions のセッション中にユーザーが利用可能なラベルのセットです。セッション範囲は、ユーザーのアカウントラベル範囲内であり、かつシステムに設定されたラベル範囲内である必要があります。ログイン時にユーザーがシングルラベルのセッションモードを選択する場合、セッション範囲はそのラベルに制限されます。ユーザーが複数ラベルのセッションモードを選択する場合、ユーザーによって選択されたラベルがセッションの認可上限になります。セッションの認可上限は、セッション範囲の上限を定義します。ユーザーの最小ラベルは、下限を定義します。ユーザーは、最小ラベルのワークスペースでセッションを開始します。ユーザーはセッション中に、セッション範囲内の別のラベルのワークスペースに切り替えることができます。
ラベルは、デスクトップに表示されるほか、プリンタ出力など、デスクトップで実行される出力にも表示されます。
アプリケーション – アプリケーションはプロセスを開始します。これらのプロセスは、アプリケーションが起動されたワークスペースのラベルで動作します。ラベル付きゾーンのアプリケーションには、ファイルとしてゾーンのラベルでラベルが付けられます。
デバイス – デバイスを通過するデータは、デバイス割り当てとデバイスのラベル範囲で制御されます。デバイスを使用するユーザーは、デバイスのラベル範囲内にあり、デバイスを割り当てるために承認される必要があります。
ファイルシステムのマウントポイント – すべてのマウントポイントにはラベルが設定されます。ラベルは getlabel コマンドを使用して表示できます。
ネットワークインタフェース – IP アドレス (ホスト) には、ラベル範囲を記述するテンプレートがあります。ラベルなしのホストにも、デフォルトのラベルがあります。
プリンタと印刷 – プリンタにはラベル範囲があります。ラベルは本文ページに印刷されます。ラベル、取り扱い情報、およびその他のセキュリティー情報が、バナーとトレーラページに印刷されます。Trusted Extensions で印刷を構成するには、第 15 章ラベル付き印刷の管理 (手順)と『Solaris Trusted Extensions ラベルの管理』の「印刷出力のラベル」.を参照してください。
プロセス – プロセスはラベル付けされています。プロセスは、プロセスが開始されたワークスペースのラベルで動作します。プロセスのラベルは、plabel コマンドを使用して表示できます。
ユーザー – ユーザーはデフォルトラベルとラベルの範囲を割り当てられています。ユーザーのワークスペースのラベルは、ユーザーのプロセスのラベルを表します。
ウィンドウ – ラベルは、デスクトップのウィンドウ上部に表示されます。デスクトップのラベルは、色でも示されます。色はデスクトップのスイッチと、ウィンドウ上部のタイトルバーに表示されます。
ウィンドウが別のラベルのワークスペースに移動しても、このウィンドウは元のラベルを維持します。
ゾーン – すべてのゾーンには固有のラベルがあります。ゾーンで所有されるファイルとディレクトリは、ゾーンのラベルになります。詳細は、getzonepath(1) のマニュアルページを参照してください。