ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris の管理: セキュリティーサービス Oracle Solaris 11 Information Library (日本語) |
パート II システム、ファイル、およびデバイスのセキュリティー
10. Oracle Solaris のセキュリティー属性 (参照)
22. Kerberos エラーメッセージとトラブルシューティング
プロセスを制限する特権は、カーネル内に実装され、コマンド、ユーザー、役割、またはシステムレベルでプロセスを制限できます。
次の表では、特権を扱うために使用可能なコマンドを一覧表示します。
表 10-3 特権を扱うためのコマンド
|
表 10-4 特権情報が含まれるファイル
|
特権の使用は監査することができます。プロセスで特権が使用される場合は常に、upriv 監査トークン内の監査トレールに特権の使用が記録されます。特権の名前がレコードに含まれる場合、テキスト形式が使用されます。次の監査イベントにより、特権の使用が記録されます。
AUE_SETPPRIV 監査イベント – 特権セットが変更されたときに監査記録を生成します。AUE_SETPPRIV 監査イベントは pm クラスにあります。
AUE_MODALLOCPRIV 監査イベント – カーネル外から特権が追加されたときに監査記録を生成します。AUE_MODALLOCPRIV 監査イベントは ad クラスにあります。
AUE_MODDEVPLCY 監査イベント – デバイスポリシーが変更されたときに監査記録を生成します。AUE_MODDEVPLCY 監査イベントは ad クラスにあります。
AUE_PFEXEC 監査イベント – この監査イベントは、pfexec() が有効になっている execve() に対して呼び出しが行われたときに監査記録を生成します。AUE_PFEXEC 監査イベントは、as、 ex、ps、および ua 監査クラスにあります。特権の名前は、監査レコードに含まれます。
基本セットに含まれる特権が正常に使用される場合は、監査されません。ユーザーの基本セットから削除された基本特権の使用を試みる場合、監査されます。
カーネルは特権エスカレーションを防ぎます。特権エスカレーションとは、特権によってプロセスがその範囲を越えたことを行えるようになることです。プロセスが特権の範囲を超えることを防ぐために、無防備なシステム変更を行うには特権の完全セットが必要です。たとえば、root (UID=0) が所有するファイルまたはプロセスは、特権の完全セットを備えたプロセスによってのみ変更できます。root アカウントは、特権がなくても root が所有するファイルを変更することができます。しかし、root ユーザー以外は、root が所有するファイルを変更するにはすべての特権が必要です。
同様に、デバイスへのアクセスを提供する操作には、有効なセットのすべての特権が必要です。
file_chown_self および proc_owner は、特権エスカレーションが生じやすい特権です。file_chown_self は、プロセスがそのファイルを渡せるようにする特権です。proc_owner は、プロセス自身が所有しないプロセスを調査できるようにする特権です。
file_chown_self 特権は、rstchown システム変数によって制限されます。rstchown 変数が 0 に設定されると、file_chown_self 特権は、システムおよび全ユーザーの初期の継承可能セットから削除されます。rstchown システム変数の詳細は、chown(1) のマニュアルページを参照してください。
file_chown_self 特権のコマンドへの割り当て、プロファイルへの配置、およびプロファイルシェルで使用するための役割への割り当ては最も安全に行います。
proc_owner 特権は、プロセス UID を 0 にするには十分ではありません。任意の UID のプロセスを UID=0 にするには、すべての特権が必要です。proc_owner 特権はシステム上のすべてのファイルに無制限の読み取りアクセス権を与えるので、この特権のコマンドへの割り当て、プロファイルへの配置、およびプロファイルシェルで使用するための役割への割り当ては最も安全に行います。
![]() | 注意 - file_chown_self 特権または proc_owner 特権がユーザーの初期の継承可能セットに含まれるようにユーザーのアカウントを変更することができます。これらの強力な特権を任意のユーザー、役割、またはシステムに対する特権の継承可能セットに配置するには、セキュリティー上の相応の理由がなければなりません。 |
デバイスに対する特権エスカレーションを防ぐ方法の詳細については、「特権とデバイス」を参照してください。
レガシーアプリケーションに対応するために、特権の実装はスーパーユーザーモデルと特権モデルで動作します。カーネルは、プログラムが特権で動作するように設計されていること示す PRIV_AWARE フラグを自動的に追跡します。特権を認識しない子プロセスについて検討してください。親プロセスから継承された特権はどれも、子の許可されたセットおよび有効なセットで使用可能です。子プロセスで UID が 0 に設定されていると、子プロセスが完全なスーパーユーザー機能を持たない場合があります。プロセスの有効なセットおよび許可されたセットは、子の制限セットの特権に限定されます。このように、特権を認識するプロセスの制限セットによって、特権を認識しない子プロセス root 特権が制限されます。