FACILITY および SURROGAT クラスの適切なリソースを保護するため、RACF® プロファイルを UACC(NONE) で定義するときに、特定の UNIX 機能を使用できるユーザーを制御することができます。UNIX 関連リソースは接頭部 BPX で始まります。 通常、UNIX 機能を使用するためには、許可ユーザーは少なくとも FACILITY リソースへの読み取りアクセス権を必要とします。
総称プロファイルの BPX.* を定義しないでください。 セキュリティー関連の意図しない動作が発生する恐れがあります。BPX.* を定義する場合、それに対して OMVS アドレス・スペースの ID を許可する必要があ り、BPXOINIT のユーザー ID は OMVS とは別のものにする必要があります。 このようなガイドラインを守れば、BPX.MAINCHECK 検査や BPX.DAEMON および BPX.SAFFASTPATH のアクティブ化といった、セキュリティー関連の意図しない動作がシステムで発生することはなくなります。
UNIX 機能の RACF 制御をアクティブにするには、RACF SETROPTS CLASSACT FACILITY コマンドを使用します。FACILITY クラスをアクティブにする前に、許可ユーザーに適切なリソースを許可してください。許可しないと、ユーザーは保護された UNIX 機能を使用できなくなります。
TRUSTED ユーザーは、デフォルトでは BPX.SERVER プロファイルおよび BPX.DAEMON プロファイルに対して許可されていないため、これらの 2 つのプロファイルへのアクセスに関連付けられているどの権限も所有していません。
セキュリティー上の理由から、以下のクラス・プロファイルの定義が必要な場合があります。以下に挙げたものはすべて FACILITY クラス・プロファイルですが、BPX.SRV は例外で、これは SURROGAT クラス・プロファイルです。
_cpl サービスへのアクセスを制御します。
許可ユーザーに対して、_console() または _console2() の各サービスを使用する権限が与えられます。
BPX.DAEMON が定義されていなければ、すべてのスーパーユーザー (UID=0) がデーモン権限を持ちます。 デーモン権限を持つスーパーユーザーを限定する場合は、このプロファイルを定義して、選択されたスーパーユーザーにだけ許可を与えます。
デーモン権限は、プログラムが次のことを実行する場合のみ必要であり、それは、ターゲット・ユーザー ID に対して最初に _passwd() コールを出さずに、現行 UID を変更するための、setuid()、seteuid()、setreuid()、spawn() ユーザー ID を実施する場合です。ターゲット・ユーザー ID のパスワードまたはパスワード・フレーズを知らなくても MVS 識別を変更するために、これらのサービスの呼び出し側はスーパーユーザーでなければなりません。さらに、BPX.DAEMON FACILITY クラス・ プロファイルが定義され、その FACILITY クラスがアクティブである場合、呼び出し側に このプロファイルの使用を許可しておく必要があります。 プログラムが制御されているライブラリーからのもので、ターゲット UID のパスワードまたはパスワード・フレーズを知っている場合、プログラムはデーモン権限なしに UID を変更できます。
RACF WARNING モードは BPX.DAEMON でサポートされていません。
BPX.DAEMON についての詳細は、デーモンに対するセキュリティーの正しいレベルの確立を参照してください。
デーモン権限を持つどのユーザーが、制御されていないプログラムを MVS ライブラリーから アドレス・スペースにロードできるかを制御します。
BPX.DEBUG の READ アクセス権を持つユーザーは、特定のタイプの制限付きプロセス をデバッグすることができます。 このプロセスには、PID が 1 のプロセスは含まれません。APF 権限または BPX.SERVER 権限で実行されるプログラムをデバッグするには、 そのプログラムで dbx を使って ptrace 呼び出し可能サービスを 呼び出すことができます。
execmvs 呼び出し可能サービスに対して無許可の呼び出し元が、許可されているプログラムに 100 文字を超える引数を受け渡すことを許可します。
FACILITY クラスのリソースが存在する場合には、無許可の呼び出し元が FACILITY クラス・プロファイルに指定されているプログラム名に、100 文字を超え る引数を受け渡すことができます。個々のユーザーに対してプロファイルへのアクセス権限を与える必要はありません。 無許可の呼び出し元が、許可されている任意のプ ログラムに 100 文字を超える引数を受け渡せないようにするためには、BPX.EXECMVSAPF.program_name プロファイルを定義しないでください。
BPX.EXECMVSAPF.YOURPGM
BPX.EXECMVSAPF.MYPGM
BPX.EXECMVSAPF.MYP*
その結果、無許可のすべての呼び出し元が、許可されている任意のプログラムのうち先頭が「MYP」であるものに、100 文字を超える引数を受け渡せるようになります。BPX.EXECMVSAPF.*
ただし、IBM® ではこのようなタイプのプロファイルを定義することをお勧めしません。どのユーザーが z/OS® UNIX ファイルに APF 許可属性を設定することができるかを制御します。この権限は、ユーザーに APF 許可で実行するプログラムの作成を許可します。これは、プログラマーに SYS1.LINKLIB または SYS1.LPALIB の更新を許可する権限に似ています。
どのユーザーがプログラム制御属性を設定することができるかを制御します。 この属性によってマークされたプログラムは、高水準の権限をもって実行するサーバー・アドレス・スペースで実行できます。 詳細については、UNIX ファイルのプログラムをプログラム制御にする定義を参照してください。
chattr() 呼び出し可能サービスによって、共有ライブラリー拡張属性の設定を行うときに、追加の特権が必要であることを指示します。これにより、共有ライブラリー領域が誤用されるのを防ぐことができます。 詳細については、UNIX ファイルを共有ライブラリー・プログラムとして定義を参照してください。
_BPX_JOBNAME 環境変数、または spawn の継承構造を使用して、自身のジョブ名を設定する ことをどのユーザーに許可するかを制御します。このプロファイルに 対する READ またはそれ以上のアクセス権が与えられているユーザーが、自身のジョブ名を定義できます。
拡張プログラム・セキュリティー保護を、RACF の EXECUTE 制御プログラムを使用しない UNIX デーモンやサーバーにまで拡張します。詳細については、拡張プログラム・セキュリティー BPX.DAEMON および BPX.MAINCHECK を使用する RACF と 拡張プログラム・セキュリティー BPX.SERVER および BPX.MAINCHECK を使用する RACFを参照してください。
_map サービスおよび _map_init サービスへのアクセスを制御します。
UID および GID の自動割り当てを使用可能にします。このプロファイルの APPLDATA フィールドは、RACF が未使用の UID 値および GID 値を得るための、開始値または値の範囲を指定します。「z/OS Security Server RACF セキュリティー管理者のガイド」では、BPX.NEXT.USER を詳細に説明しています。
_poe サービスへのアクセスを制御します。
ファイル・システムおよび IPC 構成のセキュリティー検査をより迅速に行えるようにします。 詳細については、システム許可機能 (SAF) のファースト・パス・サポートを参照してください。
pthread_security_np() サービスの使用を制限します。 少なくとも BPX.SERVER FACILITY クラス・プロファイルに読み取りまたは書き込みアクセス権限を持つユーザーは、このサービスを使用できます。 これは、呼び出し側のスレッド用のセキュリティー環境を作成または削除します。
このプロファイルは、z/OS リソースへのアクセス権限を判別する BPX1ACK サービス の使用を制限するためにも使用されます。
BPX.SERVER についての詳細は、サーバーのセキュリティーの準備および デーモンに対するセキュリティーの正しいレベルの確立を参照してください。
SMF レコードをカットしようとしている呼び出し側が、SMF レコードを書くことを許可されているかどうかを検査します。 また、SMF タイプまたはサブタイプが記録されているかどうかも検査します。
OMVS シャットダウン用のレジスターおよびブロックに対する oe_env_np サービスへのアクセスを制御します。
ユーザーが BPX.SRV.userid への アクセス権を持つ場合に UID の変更を許可します。 ここで uuuuuuuu はターゲット UID に関連した MVS ユーザー ID です。 BPX.SRV.userid は RACF SURROGAT クラス・プロファイルです。
どのユーザーがアドレス・スペースを スワップ不能にすることができるかを制御します。少なくとも BPX.STOR.SWAP への READ アクセスが許可 されているユーザーは、__mlockall() 呼び出し可能サービスを起動して、アドレス・スペースをスワップ不能または スワップ可能のいずれにもすることができます。
アプリケーションがアドレス・スペースをスワップ不能にすると、システム内のさらに多くの実ストレージが優先ストレージに変換される場合があります。優先ストレージはオフライン構成にはできないので、このサービスを使用すると、将来、ご使用のインストール・システム のストレージの再構成能力を低下させる可能性があります。 このサービスを使用するアプリケーションの場合、ご使用のインストール・システムの説明書において、この副次作用についてユーザーに警告しているはずです。
指定されたパス名が、スティッキー属性および set-user-id 属性または set-group-id 属性が設定されたファイルに解決される場合、exec サービスおよび spawn サービスで、MVS プログラムの検索順序を使用して、実行されるプログラムを検索できるようにします。
FACILITY クラスのリソースがある場合には、FACILITY クラス・プロファイル内に指定されているプログラム名の検索で、MVS プログラムの検索順序を使用できます。個々のユーザーに対してプロファイルへのアクセス権限を与える必要はありません。
BPX.STICKYSUG.YOURPGM
BPX.STICKYSUG.MYPGM
BPX.STICKYSUG.MYP*
exec および spawn は、MVS プログラムの検査順序を使用して、文字「MYP」で始まるプログラムを見つけます。BPX.STICKYSUG.*
ただし、IBM ではこのようなタイプのプロファイルを定義することをお勧めしません。ユーザーは、スーパーユーザー権限に切り替えることができます。 BPX.SUPERUSER についての詳細は、z/OS UNIX のスーパーユーザーを参照してください。
ユーザーは、_BPX_UNLIMITED_OUTPUT 環境変数を使用して、プロセスのデフォルト・スプール出力制限値をオーバーライドすることができます。
未定義の FACILITY クラス・プロファイル | UID(0) である | UID(0) でない |
---|---|---|
BPX.CF | No | No |
BPX.CONSOLE。_console() サービスの許可された機能へのアクセスを制御します。どのユーザーが基本 _console() サービスを使用できるようにするかを制御するために使用されるものではありません。 | Yes | No |
BPX.DAEMON | Yes | No |
BPX.DAEMON.HFSCTL | No | No |
BPX.DEBUG | No | No |
BPX.EXECMVSAPF.program_name | No | No |
BPX.FILEATTR.APF | No | No |
BPX.FILEATTR.PROGCTL | No | No |
BPX.FILEATTR.SHARELIB | No | No |
BPX.JOBNAME | Yes | No |
BPX.MAINCHECK | No | No |
BPX.MAP | Yes | No |
BPX.NEXT.USER。このプロファイルは、ユーザー ID の OMVS セグメントが作成または変更されるときに UID および GID を割り当てるために、RACF によって使用されます。z/OS UNIX で直接処理されるものではありません。 | 該当しない | 該当しない |
BPX.UNLIMITED.OUTPUT | Yes | No |
BPX.POE | Yes | No |
BPX.SAFFASTPATH | No | No |
BPX.SERVER | Yes | No |
BPX.SHUTDOWN | Yes | No |
BPX.SMF | No | No |
BPX.SRV.userid。そのプロファイルは、RACF SURROGAT クラスで定義されます。 | No | No |
BPX.STOR.SWAP | Yes | No |
BPX.STICKYSUG.program_name | No | No |
BPX.SUPERUSER | No | No |
BPX.WLMSERVER | Yes | No |
定義済みの FACILITY クラス・プロファイル (呼び出し側が許可されていない) | UID(0) である | UID(0) でない |
---|---|---|
BPX.CF | No | No |
BPX.CONSOLE。_console() サービスの許可された機能へのアクセスを制御します。どのユーザーが基本 _console() サービスを使用できるようにするかを制御するために使用されるものではありません。 | Yes | No |
BPX.DAEMON | No | No |
BPX.DAEMON.HFSCTL | No | No |
BPX.DEBUG | No | No |
BPX.EXECMVSAPF.program_name | Yes | Yes |
BPX.FILEATTR.APF | No | No |
BPX.FILEATTR.PROGCTL | No | No |
BPX.FILEATTR.SHARELIB | No | No |
BPX.JOBNAME | Yes | No |
BPX.MAINCHECK | Yes | Yes |
BPX.MAP | No | No |
BPX.NEXT.USER。このプロファイルは、ユーザー ID の OMVS セグメントが作成または変更されるときに UID および GID を割り当てるために、RACF によって使用されます。z/OS UNIX で直接処理されるものではありません。 | 該当しない | 該当しない |
BPX.UNLIMITED.OUTPUT | Yes | No |
BPX.POE | No | No |
BPX.SAFFASTPATH | No | No |
BPX.SERVER | No | No |
BPX.SHUTDOWN | No | No |
BPX.SMF | No | No |
BPX.SRV.userid。そのプロファイルは、RACF SURROGAT クラスで定義されます。 | No | No |
BPX.STOR.SWAP | No | No |
BPX.STICKYSUG.program_name | Yes | Yes |
BPX.SUPERUSER | No | No |
BPX.WLMSERVER | No | No |
定義済みの FACILITY クラス・プロファイル (呼び出し側が許可されている) | UID(0) である | UID(0) でない |
---|---|---|
BPX.CF | Yes | Yes |
BPX.CONSOLE。_console() サービスの許可された機能へのアクセスを制御します。どのユーザーが基本 _console() サービスを使用できるようにするかを制御するために使用されるものではありません。 | Yes | Yes |
BPX.DAEMON | Yes | No |
BPX.DAEMON.HFSCTL | Yes | Yes |
BPX.DEBUG | Yes | Yes |
BPX.EXECMVSAPF.program_name | Yes | Yes |
BPX.FILEATTR.APF | Yes | Yes |
BPX.FILEATTR.PROGCTL | Yes | Yes |
BPX.FILEATTR.SHARELIB | Yes | Yes |
BPX.JOBNAME | Yes | Yes |
BPX.MAINCHECK | Yes | Yes |
BPX.MAP | Yes | Yes |
BPX.NEXT.USER。このプロファイルは、ユーザー ID の OMVS セグメントが作成または変更されるときに UID および GID を割り当てるために、RACF によって使用されます。z/OS UNIX で直接処理されるものではありません。 | 該当しない | 該当しない |
BPX.UNLIMITED.OUTPUT | Yes | Yes |
BPX.POE | Yes | Yes |
BPX.SAFFASTPATH | Yes | Yes |
BPX.SERVER | Yes | Yes |
BPX.SHUTDOWN | Yes | Yes |
BPX.SMF | Yes | Yes |
BPX.SRV.userid。そのプロファイルは、RACF SURROGAT クラスで定義されます。 | Yes | Yes |
BPX.STOR.SWAP | Yes | Yes |
BPX.STICKYSUG.program_name | Yes | Yes |
BPX.SUPERUSER | Yes | Yes |
BPX.WLMSERVER | Yes | Yes |