Oracle Solaris システムに追加できるソフトウェアは、Trusted Extensions が構成されたシステムにも追加できます。また、Trusted Extensions API を使用するプログラムも追加できます。Trusted Extensions システムへのソフトウェアの追加は、非大域ゾーンを実行している Oracle Solaris システムにソフトウェアを追加する場合と同様です。
Trusted Extensions では、プログラムは一般ユーザーがラベル付きのゾーンで使用できるように、一般的に大域ゾーンにインストールされます。ただし、ラベル付きゾーンで pkg コマンドを実行することにより、そのゾーンにパッケージをインストールすることができます。その場合は、そのゾーンが管理アカウントとパスワードプロンプトを処理できることを確認する必要があります。詳細は、ラベル付きゾーンに制限されているアプリケーションを参照してください。パッケージとゾーンの詳細については、Oracle Solaris ゾーンの作成と使用 の 第 8 章, ゾーンがインストールされている Oracle Solaris システムでの自動インストールおよびパッケージを参照してください。
Trusted Extensions サイトでは、システム管理者とセキュリティー管理者がソフトウェアをインストールします。セキュリティー管理者は、セキュリティーポリシーを厳守するために、ソフトウェアの追加を評価します。ソフトウェアの実行に特権や承認が必要な場合、セキュリティー管理者役割はソフトウェアのユーザーに適切な権利プロファイルを割り当てます。
リムーバブルメディアからソフトウェアをインポートするには、承認が必要です。「デバイスの割り当て」承認を持つアカウントは、リムーバブルメディアを使用したデータのインポートやエクスポートを実行できます。データには実行可能コードが含まれることがあります。一般ユーザーは、ユーザーの認可上限内のラベルでデータをインポートすることのみ可能です。
システム管理者役割は、セキュリティー管理者が承認したプログラムを追加します。
Trusted Extensions は、Oracle Solaris と同じセキュリティーメカニズムを使用します。セキュリティーメカニズムには、次の機能が含まれます。
承認 – プログラムのユーザーに、特定の承認を要求できます。承認については、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の ユーザー権利およびプロセス権利の基本情報を参照してください。auth_attr(4) のマニュアルページも参照してください。
特権 – プログラムとプロセスには特権を割り当てることができます。特権については、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 第 1 章, 権利を使用したユーザーとプロセスの制御についてを参照してください。また、privileges(5) のマニュアルページも参照してください。
ppriv コマンドはデバッグユーティリティーを提供します。詳細は、ppriv(1) のマニュアルページを参照してください。非大域ゾーンで動作するプログラムでこのユーティリティーを使用する場合の説明は、Oracle Solaris ゾーンの作成と使用 の ppriv ユーティリティーの使用を参照してください。
権利プロファイル – 権利プロファイルは、ユーザーまたは役割に割り当てるために、セキュリティー属性をまとめたものです。権利プロファイルについては、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 権利プロファイルの詳細を参照してください。
トラステッドライブラリ – setuid、setgid、および特権プログラムが使用する、動的な共有ライブラリです。特権プログラムはトラステッドディレクトリからのみロードできます。Oracle Solaris と同様、crle コマンドを使用して、特権プログラムの共有ライブラリディレクトリをトラステッドディレクトリに追加できます。詳細は、crle(1) のマニュアルページを参照してください。
ソフトウェアに特権が割り当てられた場合や、代替のユーザー ID またはグループ ID での実行時には、そのソフトウェアが「トラステッド」とみなされます。信頼されたソフトウェアは、Trusted Extensions のセキュリティーポリシーによる制約を必ずしも受けません。信頼できないソフトウェアでも、「トラステッド」にできることに注意してください。慎重な調査によってソフトウェアが信頼できる方法で特権を使用することが明らかになるまで、セキュリティー管理者はソフトウェアに特権を与えることを保留します。
トラステッドシステムでは、プログラムは次の 3 つのカテゴリに分類されます。
セキュリティー属性を必要としないプログラム – 一部のプログラムはシングルのレベルで動作し、特権を必要としません。これらのプログラムは、/usr/local などの公開ディレクトリにインストールできます。アクセスするには、ユーザーと役割の権利プロファイルにプログラムをコマンドとして割り当てます。
root ユーザーとして動作するプログラム – 一部のプログラムは、setuid 0 で実行されます。これらのプログラムには、権利プロファイルで 0 の実効 UID を割り当てることができます。セキュリティー管理者は、プロファイルを管理役割に割り当てます。
特権が必要なプログラム – 明らかな理由がないにもかかわらず、特権が必要とされるプログラムもあります。システムのセキュリティーポリシーに違反すると思われる機能を実行していないプログラムでも、内部的な動作がセキュリティーに違反している可能性があります。たとえば、プログラムが共有されたログファイルを使用していたり、/dev/kmem から読み取りを行なっている可能性があります。セキュリティーに関する注意は、mem(7D) のマニュアルページを参照してください。
内部的なポリシーのオーバーライドが、アプリケーションの正常な動作にとって特に重要でない場合もあります。このようなオーバーライドは、ユーザーへの便宜のために提供されているに過ぎません。
組織としてソースコードにアクセスできる場合は、アプリケーションのパフォーマンスに影響を与えずに、ポリシーのオーバーライドを必要とする操作を削除できるかどうかを確認してください。
プログラムの開発者がソースコードで特権のセットを操作できても、セキュリティー管理者が必要な特権をプログラムに割り当てていなければ、プログラムは正常に動作しません。トラステッドプログラムの作成では、開発者とセキュリティー管理者が共同で作業する必要があります。
トラステッドプログラムを作成する開発者には、次のタスクが必要です。
プログラムを正常に動作させるために、どこで特権が必要かを理解する。
特権ブラケットなどの、プログラムで特権を安全に使用するための技術を習得して使用する。
特権をプログラムに割り当てるときに、セキュリティーの関連性に注意する。プログラムはセキュリティーポリシーに違反してはならない。
トラステッドディレクトリからプログラムにリンクされた共有ライブラリを使用して、プログラムをコンパイルする。
追加情報については、Oracle Solaris 11 セキュリティーサービス開発ガイドを参照してください。Trusted Extensions のコード例については、Trusted Extensions Developer’s Guideを参照してください。
セキュリティー管理者は、新しいソフトウェアをテストおよび評価します。ソフトウェアを信頼できると判断したら、セキュリティー管理者はプログラムの権利プロファイルとその他のセキュリティーに関する属性を構成します。
セキュリティー管理者には次のような責任があります。
プログラマやプログラム配布プロセスが信頼できることを確認する。
次の情報源のいずれかから、プログラムに必要な特権を決定する。
プログラマに確認する。
ソースコードを調べて、プログラムが使用する予定の特権を検索する。
ソースコードを調べて、プログラムがユーザーに要求する承認を検索する。
ppriv コマンドにデバッグオプションを使用して、特権の使用を検索する。この例は、ppriv(1) のマニュアルページを参照してください。dtrace を使用して、特権および承認の使用を評価することもできます。
ソースコードを調査し、プログラムの動作に必要な特権に関して信頼できる方法で処理していることを確認します。
プログラムが信頼できる方法で特権を使用していない場合、プログラムのソースコードを修正できるときはコードを修正します。セキュリティーについて熟知しているセキュリティーコンサルタントや開発者は、コードを修正できます。修正には、特権ブラケットや承認の検査が含まれる場合があります。
特権の割り当ては、手動で行う必要があります。特権の不足によりエラーが発生するプログラムには、特権を割り当てることができます。また、セキュリティー管理者が、特権を不要にする実効 UID または実効 GID を割り当てるように決定する場合もあります。
新しいプログラムの権利プロファイルを作成して割り当てます。