ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
Trusted Extensions セキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
このセクションでは、本ドキュメントで説明する次の Trusted Extensions API について紹介します。
ラベル API
Trusted X Window System API
ラベルビルダー API
これらの Trusted Extensions API に加えて、Oracle Solaris OS で使用可能なセキュリティー API も使用することができます。Trusted Extensions 上で動作するアプリケーションによって、別のセキュリティー属性を操作することが必要になる場合があります。たとえば、ユーザーおよびプロファイルデータベースには、ユーザー、役割、許可、およびプロファイルについての情報が格納されています。これらのデータベースは、プログラムを実行できるユーザーを制限できます。特権はさまざまな Oracle Solaris プログラムにコーディングされており、サードパーティーアプリケーションにもコーディングすることができます。
これらの Oracle Solaris OS セキュリティー API の詳細については、『Oracle Solaris 10 セキュリティー開発者ガイド』の第 2 章「特権付きアプリケーションの開発」を参照してください。
Oracle Solaris OS で提供されている「任意アクセス制御」 (DAC) では、データの所有者が、データへのアクセスが許可されるユーザーを決定します。Trusted Extensions ソフトウェアは、必須アクセス制御 (MAC) と呼ばれる追加のアクセス制御が提供されています。MAC では、通常のユーザーが「セキュリティーポリシー」を指定したりオーバーライドしたりすることはできません。セキュリティー管理者がセキュリティーポリシーを設定します。
アプリケーションは Trusted Extensions API を使用して、ホスト、ゾーン、ユーザー、および役割のラベルを取得します。セキュリティーポリシーで許可される場合、API によって、ユーザープロセスまたは役割プロセスにラベルを設定することができます。ゾーンまたはホストへのラベルの設定は管理上の手順であり、プログラムによる手順ではありません。
ウィンドウラベルをカスタマイズするアプリケーションを作成できます。Trusted Extensions ソフトウェアには、基本的なラベル作成ユーザーインタフェースをアプリケーションに追加するための Motif ベースのプログラムインタフェースが提供されています。ラベル作成インタフェースによって、ユーザーは有効な機密ラベルおよび有効な認可上限を対話的に作成できます。
ラベル API は隠されたラベル上で動作します。「隠されたラベル」では、ラベルの内部構造は公開されません。隠されたラベルを使用することによって、API を使用して作成された既存のプログラムは、ラベルの内部構造が変更した場合でも機能できます。たとえば、ラベル API を使用してラベル内の特定のビットを指定することはできません。ラベル API によって、ラベルを取得したりラベルを設定したりできます。ラベルを設定できるのは、セキュリティーポリシーによって許可されている場合に限られます。
ラベル、ラベル範囲、およびラベル制限によって、Trusted Extensions で構成されたシステム上の情報にアクセスできるユーザーが決定されます。
ラベル API は、ラベル、ラベルの範囲と制限、およびラベル間の関係にアクセスしたり、これらを変換したり、比較を実行したりするために使用されます。あるラベルが別のラベルより優位であったり、ほかのラベルと無関係あったりする場合もあります。
label_encodings ファイルには、Trusted Extensions 環境に関する機密ラベル、認可上限ラベル、ラベル範囲、およびラベル関係が定義されています。このファイルはラベルの外観も制御します。セキュリティー管理者は label_encodings ファイルを作成および保守する役割を担っています。label_encodings(4) のマニュアルページを参照してください。
プロセスのラベルは、プロセスが実行されるゾーンによって決定されます。
すべてのオブジェクトはラベルに関連付けられているか、場合によってはラベル範囲に関連付けられています。オブジェクトには、定義されたラベル範囲内の特定のラベルでアクセスできます。ラベル範囲に関連付けられているオブジェクトには、次のものがあります。
すべてのユーザーおよびすべての役割
通信が許可されているすべてのホスト
ゾーンインタフェースとネットワークインタフェース
テープドライブ、ディスクドライブ、CD-ROM デバイス、およびオーディオデバイスなどの割り当て可能なデバイス
プリンタやワークステーションなどのその他の割り当て不能なデバイス
ワークステーションのアクセスは、フレームバッファーまたはビデオディスプレイデバイスに設定されているラベル範囲によって制御されます。セキュリティー管理者は、デバイスマネージャー GUI を使用してこの範囲を設定します。デフォルトでは、デバイスは ADMIN_LOW から ADMIN_HIGH の範囲を持ちます。
ラベルの詳細については、「ラベルのタイプ」を参照してください。
MAC はアプリケーションを実行しているプロセスのラベルと、プロセスがアクセスしようとしているオブジェクトのラベルまたはラベル範囲とを比較します。MAC は低いラベルまでの読み取りをプロセスに許可し、同等のラベルへの書き込みをプロセスに許可します。
Label[Process] >= Label[Object]
マルチレベルポート (MLP) にバインドされたプロセスは、複数のラベルでリクエストを待機でき、リクエストの発信元に応答を送信できます。Trusted Extensions では、このような応答は同位書き込みです。
Label[Process] = Label[Object]
機密ラベル API を使用して、次のことを実行できます。
プロセスラベルの取得
ラベルの初期化
2 つのラベル間での最大の下限または最小の上限の検索
ラベルの優位性および同等性の比較
ラベルタイプの確認および設定
読み取り可能な形式へのラベルの変換
label_encodings ファイルからの情報の取得
機密ラベルが有効であってシステム範囲内にあることの確認
これらの API の説明については、第 2 章ラベルと認可上限を参照してください。
ユーザー、デバイス、およびネットワークインタフェースには、ラベル範囲があります。範囲の上限が事実上の認可上限です。範囲の上限と下限が等しい場合、範囲は単一のラベルです。
認可上限ラベル API を使用して、次のことを実行できます。
2 つのラベル間での最大の下限または最小の上限の検索
ラベルの優位性および同等性の比較
内部形式と 16 進形式の間での認可上限の変換
これらの API の説明については、第 2 章ラベルと認可上限を参照してください。
ラベル範囲を使用して、次のラベルに制限を設定できます。
ホストが情報を送信および受信できるラベル
ユーザーおよび役割に代わって機能しているプロセスが、システム上で動作できるラベル
ユーザーがデバイスを割り当てることができるラベル
このラベル範囲の使用により、これらのデバイス上のストレージメディアにファイルを書き込む際のラベルを制限できます。
ラベル範囲は管理者によって割り当てられます。ラベル範囲は、ユーザー、役割、ホスト、ゾーン、ネットワークインタフェース、プリンタ、およびその他のオブジェクトに適用できます。
ラベル範囲に関する情報を取得するには、次の方法を使用できます。
getuserrange() はユーザーのラベル範囲を取得します。
getdevicerange() はデバイスのラベル範囲を取得します。
tninfo -t template-name は、ネットワークインタフェースに関連付けられているテンプレートのラベル範囲を表示します。
これらの API の説明については、第 2 章ラベルと認可上限を参照してください。
Trusted X Window System バージョン 11 サーバーは、ログイン時に起動します。サーバーは信頼できるプロセス間通信 (IPC) パスを使用して、ワークステーションウィンドウシステムを処理します。ウィンドウ、プロパティー、選択、および ToolTalk セッションが、別々の個別オブジェクトとして複数の機密ラベルで作成されます。複数の機密ラベルでの個別オブジェクトの作成は、「ポリインスタンス化」と呼ばれます。Motif ウィジェット、Xt Intrinsics、Xlib、およびデスクトップインタフェースで作成されたアプリケーションは、セキュリティーポリシーの制約の範囲内で実行します。これらの制約は、X11 プロトコルの拡張によって強制されます。
第 6 章Trusted X Window Systemでは、「Trusted Extensions セキュリティーポリシー」に記載されているセキュリティー属性情報にアクセスできるプログラムインタフェースが記載されています。これらのプログラムインタフェースは、ラベルおよび認可上限をテキストに変換するためにも使用できます。テキストは、Trusted X Window System で表示する幅およびフォントリストを指定することによって制約を加えることができます。
Trusted X Window System は次のセキュリティー属性を格納します。
|
トラステッドパスフラグは、ウィンドウをトラステッドパスウィンドウとして識別します。トラステッドパスウィンドウは、信頼されていないプログラムによるアクセスからシステムを保護します。このウィンドウは、スクリーンストライプまたはログインウィンドウなどの常に最前面のウィンドウです。
付録 B Trusted Extensions API リファレンスに、信頼できる X11 IPC パスを作成するために使用できる拡張の一覧が示されています。
Trusted Extensions ソフトウェアには、アプリケーションのグラフィカルユーザーインタフェース (GUI) をユーザーが作成できる、ラベルビルダー API が提供されています。GUI によってユーザー入力を受け取り、その入力から有効なラベルを作成します。
Trusted Extensions で構成されたシステムでは、基本的なラベル作成ユーザーインタフェースをアプリケーションに追加するための Motif ベースのプログラムインタフェースが提供されています。ラベル作成インタフェースによって、ユーザーは有効な機密ラベルおよび有効な認可上限を対話的に作成できます。これらのプログラムインタフェースについては、第 7 章ラベルビルダー APIを参照してください。