ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Trusted Extensions 開発者ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Trusted Extensions API およびセキュリティーポリシー
9. Solaris Trusted Extensions ラベル API のための試験的な Java バインディング
操作でセキュリティーポリシーを省略またはオーバーライドできるようにするには、その操作の実効セットに特別な特権を含める必要があります。
実効セットへの特権の追加は、プログラム上で、または管理者によって、このように行われます。
実行可能ファイルが root によって所有され、セットユーザー ID のアクセス権ビットが設定されている場合、それは実効セットにすべての特権が含まれた状態で開始されます。たとえば、CDE ファイルマネージャーはその実効セットにすべて特権が含まれた状態で開始されます。その後、ファイルマネージャーはその特権のほとんどをプログラム上で放棄し、ラベル間のドラッグ&ドロップ操作の実行に必要なものだけを保持します。
管理者は、SMF サービス用のマニフェストファイル内、または一般コマンド用の RBAC データベース exec_attr ファイル内に特権を指定できます。このファイルの詳細は、exec_attr(4) のマニュアルページを参照してください。
バイナリラベルを変換する場合、および機密ラベルをアップグレードまたはダウングレードする場合、操作には特別な特権が必要です。
ユーザーおよび役割は、特別な特権を使って操作を実行できます。これらの特権は、「権利プロファイル」を使って指定できます。同様に、特定の特権を使って特定の関数を実行するようにアプリケーションを作成することもできます。特別な特権を必要とするアプリケーションを作成する場合は、必ず特権を必要とする関数を実行している間のみその特権を有効にし、関数が完了したら特権を削除するようにします。この方法は、「特権の囲い込み」と呼ばれます。詳細は、『Oracle Solaris 10 セキュリティー開発者ガイド』を参照してください。
バイナリラベルの変換 – ラベルをその内部表現と文字列との間で変換できます。プロセスのラベルが変換されるラベルより優位ではない場合、変換を実行するためには、呼び出し元プロセスに sys_trans_label 特権が必要です。
機密ラベルのアップグレードまたはダウングレード – ファイルの機密ラベルを「ダウングレード」または「アップグレード」できます。ファイルが呼び出し元プロセスによって所有されていない場合は、呼び出し元プロセスの実効セットに file_owner 特権が含まれている必要があります。詳細は、setflabel(3TSOL) のマニュアルページを参照してください。
プロセスは、その実効セットに file_downgrade_sl 特権を含めることによって、ファイルシステムオブジェクトの既存の機密ラベルをそれより優位ではない新しい機密ラベルに設定できます。file_downgrade_sl 特権によって、ファイルを無関係ラベルに付け替えることもできます。
プロセスは、その実効セットに file_upgrade_sl 特権を含めることによって、ファイルシステムオブジェクトの既存の機密ラベルをそれより優位である新しい機密ラベルに設定できます。
アプリケーションは次のいずれかの方法で動作するので、ほとんどのアプリケーションはアクセス制御を省略するために特権を使用しません。
アプリケーションは 1 つの機密ラベルで起動され、その同じ機密ラベルでオブジェクトのデータにアクセスします。
アプリケーションは 1 つの機密ラベルで起動され、ほかの機密ラベルでオブジェクトのデータにアクセスしますが、必須アクセス操作はシステムセキュリティーポリシーによって許可されます。たとえば、下位読み取りが MAC によって許可されます。
アプリケーションがそのプロセスの機密ラベル以外の機密ラベルでデータにアクセスしようとして拒否される場合、プロセスにはアクセスを得るための特権が必要です。「特権」を使用すれば、アプリケーションは MAC または DAC を省略できます。たとえば、file_dac_read、file_dac_write、および file_dac_search 特権よって DAC を省略できます。file_upgrade_sl および file_downgrade_sl 特権によって MAC を省略できます。どのような方法でアクセスを得るにしても、アクセスされるデータの格付けが、アプリケーションの設計によって損なわれてはいけません。
アプリケーションでそれ自体の機密ラベルまたは別のオブジェクトの機密ラベルを変更する場合は、必ずすべてのファイル記述子を閉じてください。開いているファイル記述子があると、機密データがほかのプロセスに漏れる可能性があります。