この章では、Trusted Solaris 7 について紹介します。Trusted Solaris 7 は、Solaris 7 オペレーティング環境の持つすべての利点に加え、ユーザーサイトのセキュリティポリシーを実現するための強力なセキュリティ機能を搭載したコンピュータ環境です。
Trusted Solaris 7 ソフトウェアパッケージは、CDE (Common Desktop Environment) を含む Solaris 7 オペレーティング環境の拡張版で、特殊なセキュリティ機能が搭載されています。Trusted Solaris では、サン・マイクロシステムズ社のワークステーションを単独で使用している場合でもネットワークで使用している場合でも、組織ごとにセキュリティポリシーを定義し導入することができます。「セキュリティポリシー」とは、システム内の情報や、コンピュータハードウェアなどのリソースを保護するための一連の規則と慣例です。この規則には、一般に、だれがどの情報にアクセスできるか、だれがテープにファイルを書き込むことができるかということ、つまり、処理を実行するときに推奨される手順が定義されています。
ここでは、Trusted Solaris に装備されている主なセキュリティ機能について説明しますが、個々のサイトで、すべての機能を実行する必要はありません。
Trusted Solaris は、次のような方法で侵入者を防ぎます。
トラステッドコンピューティングベースへのアクセス制限
盗まれにくいパスワードの設定
アクセス制御によるシステム内の情報の保護
監査の実行
スプーフィングプログラム (騙しプログラム) の防止
未承認ユーザーからのローカル周辺装置の保護
「トラステッドコンピューティングベース (Trusted Computing Base、TCB)」とは、ソフトウェア、ハードウェア、ファームウェア、マニュアル、管理手順など、Trusted Solaris 環境の中でセキュリティに影響を与える部分を指します。セキュリティ関連のファイルにアクセスできるユーティリティプログラムやアプリケーションプログラムはすべて、このトラステッドコンピューティングベースの一部として扱われます。TCB と、業務を行うため必要なプログラム、アクセス許可されているファイル、セキュリティに影響を与える可能性のあるユーティリティプログラムとのやりとりには、管理者が制限を設定できます。
通常、侵入者はパスワードを推測することによってシステムに入り込みます。そこで Trusted Solaris では、数種類のオプションを用意してパスワードのセキュリティを強化しています。ユーザーには、一定期間ごと、あるいは有効期限が来るたびにパスワードの変更が要求されます。また、言葉として意味を成さない無作為にパスワードを生成するパスワードジェネレータも用意されています。各自のサイトで使用できるオプションについては、システム管理者に確認してください。
侵入者がシステムにログインできたとしても、情報への不正なアクセスを阻止する手段はまだあります。ファイルなどのリソースは、情報の所有者が設定するアクセス制御と、システムによって実施されるアクセス制御の両方で保護されるようになっています。詳細については、「Trusted Solaris によるアクセス制御ポリシーの適用」を参照してください。
Trusted Solaris では、管理者によって、すべてのユーザー、あるいは特定のユーザーのアクションが監査され、ユーザー ID、ファイル、日付、時間ごとにレポートにまとめられます。このためユーザーは、Trusted Solaris システムでのアクション、特にセキュリティや機密ファイルに影響を与えるアクションについて責任を問われることになります。ユーザーによるアクションは監査トレールに記録され、管理者は、ここからシステム上の疑わしいアクションを検出することができます。
侵入者は、パスワードや機密データを盗むためにシステムを騙すことがあります。つまり、ログインプログラムや他の正規のプログラムを模倣するわけです。Trusted Solaris では、一目でわかる不正操作防止アイコンを画面の下に表示することによって、こうしたスプーフィングプログラムを防止しています。このアイコンは「トラステッドパスシンボル」と呼ばれ、トラステッドコンピューティングベース (TCB) との対話が行われている際には必ず表示されます。これが表示されていれば、セキュリティ関連のトランザクションが確実に安全に実行されていることになります。表示されていない場合は、セキュリティが侵害される可能性があります。次の図に、トラステッドパスシンボルを示します。
Trusted Solaris 環境では、テープドライブ、フロッピーディスク、プリンタ、マイクロフォンなどのローカル周辺装置に対するアクセスを、管理者がユーザー単位で制限できます。Trusted Solaris 環境の周辺装置には、次のようなアクセス制限があります。
リモートユーザーがマイクロフォンやテープドライブなどのローカルデバイスにアクセスすることはできない。特殊なデバイス割り当てツールを使用するには、ローカルにログインする必要がある
可搬性のある媒体を使用するデバイスにアクセスできるのは、特別に承認されたユーザーのみ
Trusted Solarisでは、次の制御機能によって、どのユーザーがどの情報にアクセスできるかを制御します。
任意アクセス制御
必須アクセス制御
「任意アクセス制御 (Discretionary Access Control、DAC)」は、ファイルとディレクトリに対するユーザーのアクセスを制御するためのソフトウェア機構です。ファイルやディレクトリに設定する保護の種類は、所有者自身が決定できます。DAC には、従来の UNIX アクセス権ビットを使用する方法と、アクセス制御リスト (Access Control Lists、ACL) を利用する方法があります。
アクセス権ビット方式では、「所有者」、「グループ」、「その他のユーザー」の単位で、読み取り保護、書き込み保護、実行保護を設定できます。従来の UNIX システムでは、スーパーユーザー (root) が DAC 保護を書き換えることができましたが、Trusted Solaris では、管理者と承認されたユーザーしか DAC を書き換えることはできません。アクセス制御リスト (ACL) 方式では、より細かなアクセス制御を設定できます。所有者は、特定のユーザーやグループに対し、個別のアクセス権を設定できます。
基本的な UNIX でのアクセス権または ACL についてなじみがない場合は、『Solaris 共通デスクトップ環境 ユーザーズ・ガイド』の「ファイル・マネージャによるファイル管理」で、ファイルとフォルダに関する情報を参照してください。
「必須アクセス制御 (Mandatory Access Control、MAC)」は、システムによって実施されるアクセス制御機構で、セキュリティポリシーの実現に、認可上限と機密ラベルを使用します。簡単に説明すると、ユーザーがセッション開始時に選択したセキュリティレベル (認可上限または機密ラベル) と実行するプログラムを対応付け、そのレベルと同等または下位の情報、プログラム、デバイスだけにアクセスを許可する制御です。また、対応付けたレベルよりも下位のファイルに対しては、書き込みも禁止します。MAC は、ユーザーサイトのセキュリティポリシーに応じて実施され、これを書き換えるには、特別な承認または特権が必要となります。
「ユーザー認可上限」は、ユーザーサイトのセキュリティポリシーの一部として、セキュリティ管理者がサイトのすべてのユーザーに割り当てるものです。ユーザー認可上限は、ユーザーに委ねられたセキュリティの程度を示し、次の 2 つの要素で構成されます。
格付け - セキュリティの階層レベルを表す。人物で言えば信用の度合い、データで言えば要求される保護の度合いを示します。政府で使用されている格付けには、「TOP SECRET」、「SECRET」、「CONFIDENTIAL」、「UNCLASSIFIED」があります。また、業界標準ではありませんが、仮定的な格付け階層として、「PUBLIC」、「INTERNAL」、「NEED TO KNOW」、「REGISTERED」というような分類があります。
コンパートメント - 作業グループ、部門、プロジェクト、トピックなど、情報にアクセスできるグループを表す。アクセス可能なコンパートメントは、機密情報の必要性に応じて定義されます。
次の図は、一般的な認可上限を示しています。
Trusted Solaris は、文字列を使用して、ユーザーがアクセスできる情報を特定します。この文字列を「機密ラベル (SL)」と呼びます。機密ラベルにも、認可上限の場合と同様に、格付け部分とコンパートメント部分があります。 機密ラベルは、ウィンドウのタイトルバーの角括弧 ([ ]) の中か、画面の下のトラステッドストライプという特殊な領域の中に表示されます。システム設定によってはまったく表示されない場合もあります。図 1-3 は、機密ラベルが表示されるように設定されたケースで、機密ラベルとトラステッドストライプがそれぞれ示されています。
システム内のサブジェクトとオブジェクトはすべて機密ラベルを持っています。「サブジェクト」とは、オブジェクト間に情報を流したり、システムの状態を変更したりする能動的な存在であり、通常はプロセス (実行中プログラム) を指します。「オブジェクト」とは、データを保持していたり、受け取ったりする受動的な存在であり、データファイルやディレクトリ、プリンタなどのデバイスを指します。プロセスで kill を使用したときのように、場合によってはプロセスがオブジェクトになることもあります。
Trusted Solaris は、実行されたセキュリティ関連のトランザクションすべてを仲介します。サブジェクトの機密ラベルはオブジェクトの機密ラベルと比較され、どちらのラベルが「優位である」か (次の表を参照) によって、トランザクションは許可または拒否されます。ある機密ラベルは、次の 2 つの条件が満たされていれば、もう 1 つの機密ラベルよりも「優位」だとみなされます。
機密ラベルの格付け部分が、もう 1 つの機密ラベルの格付けと同等であるか、それよりも重要度が高いとき
ラベルのコンパートメント部分がすべてもう 1 つのラベルに含まれているとき
2 つのラベルは、同じ格付けと同じコンパートメントのセットを持っていれば、「同等」だとみなされます。ラベルが同等であれば、どちらも優位であると言えるため、アクセスが許可されます。1 つめのラベルが 2 つめのラベルよりも高い格付けを持っていたり、2 つめのラベルと同じコンパートメントを持っている場合、またはその両方に該当する場合は、1 つめのラベルの方が 2 つめのラベルよりも「完全に優位」であると言えます。どちらのラベルにも優位度が付けられない場合は、これらのラベルは「無関係」または「比較不可能」とみなされます。
読み取りトランザクションでは、サブジェクトの機密ラベルの方がオブジェクトの機密ラベルよりも優位でなければなりません。この法則によって、サブジェクトの信頼性は、オブジェクトにアクセスするための条件を確実に満たすことになります。また、サブジェクトの機密ラベルには、オブジェクトへのアクセスが許可されたすべてのコンパートメントグループが含まれることになります。
書き込みトランザクション、すなわち、サブジェクトによってオブジェクトが作成または変更された場合は、結果としてオブジェクトの機密ラベルの方がサブジェクトのラベルよりも優位になる必要があります。この法則によって、サブジェクトがオブジェクトの機密ラベルを降格させるようなことはなくなります。
必須アクセス制御の権限の方向を示すのに、WURD (Write Up Read Down: 「上位書き込み下位読み取り」) という頭文字を使用することがあります。しかし実際には、読み取りの場合も書き込みの場合も、トランザクションのサブジェクトとオブジェクトは通常同じ機密ラベルを持っているので、完全に優位であるかどうかを気にする必要はありません。
表 1-1 ラベル関係の例
ラベル 1 |
関係 |
ラベル 2 |
---|---|---|
TOP SECRET A B |
ラベル 1 はラベル 2 より (完全に) 優位 |
SECRET A |
TOP SECRET A B |
ラベル 1 はラベル 2 より (完全に) 優位 |
SECRET A B |
TOP SECRET A B |
ラベル 1 はラベル 2 より (完全に) 優位 |
TOP SECRET A |
TOP SECRET A B |
ラベル 1 はラベル 2 より優位 (または同等) |
TOP SECRET A B |
TOP SECRET A B |
無関係 |
TOP SECRET C |
TOP SECRET A B |
無関係 |
SECRET C |
TOP SECRET A B |
無関係 |
SECRET A B C |
機密ラベルの異なるファイル間でドラッグ&ドロップまたはコピー&ペーストを行うと、機密ラベルの変更権限がある場合は、確認のダイアログボックスが表示されます。変更権限がない場合は、トランザクションが中断されます。ダイアログボックスでは、宛先のラベルの昇格を受け入れたり (特別な承認がある場合)、宛先の機密ラベルをそのまま保持できるように情報を降格したり、トランザクションをすべてキャンセルすることができます。
ユーザーは、任意アクセス制御の一環として、アクセス権を設定してファイルとディレクトリを保護する責任を負っています。ファイルとディレクトリのアクセス権は、 ls(1) コマンドに -l オプションを付けて実行するか、ファイルマネージャを使って確認します (「アクセス権と ACL エントリの表示または変更」を参照)。
必須アクセス制御はシステムによって自動的に実施されます。機密ラベルで保護されている情報を昇格、降格させる権限を持つユーザーは、正当な理由なしにラベルを変更しない、という特別な責任を持ちます。
このほか、管理者から電子メールで指示が送られてきた場合、このメールを送ったのが本当に管理者であると確証がとれない限り、指示に従ってはいけません。たとえば、電子メールで送られてきた指示に従ってパスワードを特別な値へと変更すると、その電子メールの送り手はあなたのアカウントにログインできることになってしまいます。
Trusted Solaris は、次の方法によって、異なる機密ラベルの情報を別々に維持することができます。
ユーザーがシングルレベルまたはマルチレベルセッションを選択する
ラベル付きワークスペースを使用する
機密ラベルに応じてファイルを個別ディレクトリに格納する
電子メールトランザクションに MAC を適用する
オブジェクトを再使用する前にクリアする
Trusted Solaris では、セッションに最初にログインしたときに、単一の機密ラベルでの操作か、あるいは複数の機密ラベル (許可されている場合) での操作かを指定するようになっています。その後で、各自の「セッション認可上限」または「セッション機密ラベル」、すなわち、操作の際のセキュリティレベルを設定します。
シングルレベルセッションを選択した場合は、設定したセッション機密ラベルのオブジェクト、またはそれよりも下位のオブジェクトにしかアクセスできません。
マルチレベルセッションを選択した場合は、設定したセッション認可上限と同等、またはそれよりも下位の情報であれば、機密レベルの異なる情報にもアクセスできます。Trusted Solaris 環境では、ワークスペースごとに異なる機密ラベルを指定できます。
Trusted Solaris のワークスペースには、標準の Solaris オペレーティング環境とまったく同様に、フロントパネルのボタンからアクセスします。ただし、Trusted Solaris の場合は、ワークスペース全体を単一の機密ラベルに指定することができます。これは、マルチレベルセッションで作業しているときに、機密ラベルの異なるファイルに情報を移動したくない場合に大変便利です。
Trusted Solaris には、次のような 2 種類の特殊ディレクトリが用意されており、異なる機密ラベルでファイルやサブディレクトリを保存し、別々に保持することができます。
マルチレベルディレクトリ (MultiLevel Directory、MLD) - 特殊な種類のディレクトリで、シングルレベルディレクトリと呼ばれる個別のサブディレクトリに、機密ラベルごとに情報を格納します。一般に、管理者が作成するユーザーのホームディレクトリは、このマルチレベルディレクトリです。
シングルレベルディレクトリ (Single-Level Directory、SLD) - マルチレベルディレクトリ内の隠しサブディレクトリで、単一の機密ラベルだけを持つファイルまたはサブディレクトリを格納します。
ファイルマネージャなどのアプリケーションや、標準コマンドを使用してシェルからマルチレベルディレクトリ内のファイルを表示 (またはアクセス) しようとすると、現在の機密ラベルのファイルだけが表示 (またはアクセス) されます。たとえば、機密ラベルの異なるファイルがホームディレクトリに保存されていても、通常は、現在の機密ラベル以外のファイルは表示されません。
次の図は、マルチレベルディレクトリ内に隠れているシングルレベルディレクトリの概念を図に示したものです。上の図は、「CONFIDENTIAL A B」で作業をしているユーザーの画面上の、ホームディレクトリ /myHomeDir の内容表示状態を示しています。下の図は、「SECRET A B」で作業をしているユーザーの画面を示しています。表示されないディレクトリとファイルは、点線と細字で示されています。実線と太字は、表示されるディレクトリとファイルを示します。シングルレベルディレクトリに割り当てられている機密ラベルは、括弧内に省略形で示されています。ただし、実際には、機密ラベルはディレクトリ名には表示されません。
「CONFIDENTIAL A B」で作業しているユーザーが、/myHomeDir ディレクトリの内容を表示しようとすると、次のように表示されます。
% pwd /myhomedir % ls file1 |
「SECRET A B」で作業しているユーザーには、次のように表示されます。
% pwd /myhomedir % ls file2 file3 |
Trusted Solaris は、電子メールの使用時は常に必須アクセス制御を適用します。電子メールが送信されても、認可上限が不十分なユーザーは、そのメールを受信できません。受信者のアカウントに送られた電子メールは機密ラベルに従ってソートされます。メールを受信するには、受信者の現在の機密ラベルが、読もうとしているメールメッセージと同じレベルでなければなりません。そうでない場合は、現在の機密ラベルを変更する必要があります。
Trusted Solaris は、メモリーやディスク領域など、ユーザーがアクセスできるオブジェクトを再使用の前に自動クリア (消去) することによって、機密情報が不用意に漏洩しないようにします。システム上のプロセスは、メモリーやディスク領域などのオブジェクトに対し、割り当て、割り当て解除、再使用といった処理を絶え間なく実行します。オブジェクトが再使用される前に機密データを消去し損ねると、不適当なユーザーにデータが漏洩してしまう恐れがあります。Trusted Solaris は、デバイスの割り当てを解除し、ユーザーがアクセスできるオブジェクトをすべてクリアしたうえで、再びそれらをプロセスに割り当てます。ただし、フロッピーディスクや磁気テープなどの取り外し可能な記憶媒体については、他のユーザーにアクセスされる前にユーザー自身がクリアしておく必要があります。
従来の UNIX システムとは対照的に、Trusted Solaris 環境ではスーパーユーザー (root) には絶対的な権限がありません。その代わり、保護条件を書き換えることのできる権限が独立した機能に分散され、複数の管理的な役割に割り当てられているため、システムのセキュリティが単独ユーザーの行為によって危険にさらされる可能性はなくなりました。「役割」とは、特別なユーザーアカウントであり、特定の処理を実行するのに必要な承認や権限、有効な UID および GID を使用して、特定のアプリケーションに対するアクセス権をユーザーに与える権限を持ちます。
Trusted Solaris 環境のセキュリティ管理には、次のような特徴があります。
管理者から特別な承認または権限が与えられたユーザーだけが、セキュリティポリシーを書き換える機能を実行できる
ユーザーには、必要に応じてアプリケーションのアクセス権と承認が与えられる
システム管理者の任務は、あらかじめ決められた 4 つの役割に分散される
どんなセキュリティポリシーであっても、アクセス制御を書き換える必要はあるものです。従来の UNIX システムでは、スーパーユーザーに「すべて」のセキュリティポリシーを書き換える権限が与えられています。しかし、Trusted Solaris の場合は、「承認」と呼ばれるソフトウェア機構があり、個々のユーザーに「特定」のセキュリティ制御を書き換える権限が与えられます。さらに、「特権」と呼ばれる、制御を書き換えるための機構も用意されています。特権は、特定のユーザーだけに与えられており、1 つの特権には、複数のソフトウェアプログラムの実行権が含まれています。権限が与えられていると思っていた処理を実行できない場合は、そのアプリケーションに承認が必要かどうかを管理者に確認してください。
Trusted Solaris 環境では、ユーザーは業務の遂行に必要なアプリケーションだけにアクセスできるようになっています。このアクセスは、管理者が 1 つ以上の実行プロファイルをユーザーアカウントに割り当てることによって可能になります。「実行プロファイル」とは、CDE アクション、コマンド、承認が定義された特殊なパッケージです。このプロファイルの制限によって、ユーザーが不適切なアプリケーションを実行したり、システム上のデータを破損したりといった行為を防ぐことができます。セキュリティポリシーを書き換える処理を実行する必要があるときは、管理者がそのユーザーに、必要な承認が定義された実行プロファイル、あるいはプログラムを実行するための承認を持った役割に対するアクセス権を割り当てます。
ユーザーが、セキュリティポリシーを無効にできるコマンドの特別バージョンに対するアクセス権を持っている場合には、特別バージョンを最初に見つけるように、パスを設定しているか確認する必要があります。正しく設定されていないと、セキュリティの無効化機能を利用できません。
さらに、ユーザーが特別なユーザーアカウントである「役割」としてログインしたり、セッション中に役割になる際には、管理者はそのユーザーに、デフォルトのシェルとしてプロファイルシェルを割り当てます。「プロファイルシェル」とは、特定のアプリケーションや機能に対するアクセスを可能にする特別な Bourne シェルです。プロファイルシェルが割り当てられていれば、コマンド行で clist コマンドを入力して、実行可能なコマンドを調べることができます。clist コマンドを入力すると、プロファイルシェルで使用できるコマンドがすべて表示されます。
処理を実行しようとしたときに「見つかりません」というエラーメッセージが表示された場合や、コマンドの実行時に「プロファイルに見つかりません」というメッセージが表示された場合は、そのアプリケーションの使用許可が与えられていない可能性があります。このような場合は、管理者に確認してください。
プロファイルシェルでコマンドを実行すると、「警告 : コマンドがトラステッドパスの外側で動作しています。」というメッセージが表示されることがあります。これは、ユーザーがプロファイルシェルで作業していて、トラステッドシンボルが表示されているにもかかわらず、最新のコマンドがトラステッドコンピューティングベースとやりとりしていないことを示しています。
Trusted Solaris では、システムに関する責任が、あらかじめ決められている 4 つの役割にデフォルトで分担されています。4 つの役割とは、「セキュリティ管理者」、「システム管理者」、「スーパーユーザー」、「システムオペレータ」です。「セキュリティ管理者」の役割は、機密ラベルの割り当てや、ユーザーによるシステム使用状況の監査といったセキュリティ関連の操作に使用され、「システム管理者」の役割は、ユーザーアカウントのセキュリティに関係のない部分の設定など、標準的なシステム管理作業の実行に使用されます。「スーパーユーザー」の役割は主に、商用ソフトウェアのインストールに使用されます。また、「システムオペレータ」の役割は、システムのバックアップ、プリンタ管理、取り外し可能なメディアのマウントなどに使用されます。これらの管理役割がサイトで使用されている場合は、各任務の担当者を知っておく必要があります。
どの役割からも、その役割自身の機能を設定することはできません。たとえば、セキュリティ管理者の役割に対するユーザーアクセスを設定するには、システム管理者の役割を使用し、システム管理者の役割に対するユーザーアクセスを設定するには、セキュリティ管理者の役割を使用する必要があります。
この節では、第 2 章以降の内容と、他の有益な関連マニュアルについて説明します。
Trusted Solaris の各機能については、第 2 章以降で詳しく説明しています。
第 2 章「Trusted Solaris 環境へのアクセスとログアウト」では、Trusted Solaris 環境でのログインとログアウト方法について、手順を示しながら説明します。
第 3 章「Trusted Solaris 環境ツアー」では、一般的な Trusted Solaris のセッションについて、手順を示しながら説明します。
第 4 章「Trusted Solaris 環境の要素」では、Trusted Solaris 環境の主な機能の詳細について、メニューコマンドの実行手順に沿って説明します。
第 5 章「ファイルとディレクトリの管理」では、Trusted Solaris 環境のファイルマネージャの使用方法について説明します。
付録 A 「オンラインのマニュアル」では、Trusted Solaris オペレーティング環境でのマニュアルページ、オンラインマニュアル、およびオンラインヘルプを扱っています。
図 1-5 は、一般的な手順の表記法を示しています。手順の記述は、一般に手順ごとに番号が振られ、その後に説明が続きます。また、代表的な画面を示す図も多く提示されています。手順に従えば実際に同じ結果を得られるケースもあれば、プロセスを説明するための一例として使用されているケースもあります。
Trusted Solaris の管理の概要については、『Trusted Solaris 管理の概要』を参照してください。Trusted Solaris のプログラミングに関する詳細は、『Trusted Solaris 開発ガイド』を参照してください。