ほとんどのアプリケーションは、共用ライブラリルーチンを使用します。Trusted Solaris 環境では、セキュリティ管理者役割は、特権を必要とするアプリケーションで使用する共用ライブラリを常にトラステッドディレクトリ内に設定しておかなくてはなりません。特権アプリケーションが非トラステッドのライブラリにリンクしようとすると、エラーが発生し、リンクに失敗します。
ld.so.1: fatal: application-name: open failed: No such file or directory. Killed. |
Trusted Solaris と標準 Solaris の両方の環境において、LD_LIBRARY_PATH
は setuid プログラムと setgid プログラムだけが使用できるように制限されています。さらに Trusted Solaris では、LD_LIBRARY_PATH
は特権プログラムだけが使用できるように制限されています。setuid、setgid、および特権プログラムの場合、動的ライブラリは次の表に示すトラステッドディレクトリ以外からは読み込めません。
Trusted C 関数ライブラリ | X サーバーへの Trusted 拡張機能 |
---|---|
/usr/lib | /usr/openwin/lib |
/etc/lib | /usr/dt/lib |
setuid、setgid、または特権プログラムからのライブラリへのアクセスを許可する最良の方法は、そのライブラリを上記デフォルトのトラステッドディレクトリの 1 つに移動することです。ディレクトリは、必須アクセス制御 (MAC) および任意アクセス制御 (DAC) によって保護されているため、管理者以外のユーザーが書き込みやライブラリファイルの変更を行うことはできません。
ライブラリの移動が不可能なサイトの場合、Trusted Solaris では、rtld ファイルにエントリを作成することによって、トラステッドディレクトリの一覧を拡張できます。
セキュリティ管理者役割は「管理用エディタ (Admin Editor)」アクションを使って、/etc/security/tsol/rtldファイルを作成または変更できます。あるいは、このファイルの中に、トラステッドディレクトリの一覧に追加する、コロンで区切ったディレクトリ群を指定できます。詳細は、「トラステッドプログラムをトラステッドライブラリにリンクするには」を参照してください。
rtld ファイルに登録されているアプリケーションのライブラリは「信頼できる」ようになるため、間違って変更されることがないように、これらのライブラリにはデフォルトのライブラリと同じレベルの保護が必要です。セキュリティ管理者役割は、rtld ファイル内のディレクトリ上に、デフォルトのトラステッドライブラリと同じ MAC および DAC のアクセス権があることを確認する必要があります。
オブジェクトファイルのリンクエディタと rtld ファイルに関する詳細は、ld(1) マニュアルページを参照してください。