[UNIX][Linux]

mqm の setuid が設定された /opt/mqmIBM MQ のファイル権限

ここでは、社内のセキュリティー・チームが、ディレクトリー・ツリー $MQ_INSTALLATION_PATH 内の実行可能 IBM® MQ ファイルがローカル・セキュリティー・ポリシーに違反していることを問題視しているという状況に対応する説明を行います。 AIX® ではデフォルトの場所は /usr/mqm ですが、その他の UNIX オペレーティング・システムでは /opt/mqm です。 IBM MQ をデフォルト以外のディレクトリー (/opt/mqm90 など) にインストールした場合や、複数のインストール済み環境がある場合にも、このトピックの詳細情報が当てはまります。

問題の原因

セキュリティー・チームが $MQ_INSTALLATION_PATH 下の次の領域の問題点を指摘しました。
  1. /opt/mqm/bin ディレクトリー内のファイルは、それらが置かれているディレクトリー・ツリーの所有者の setuid です。 以下に例を示します。
    dr-xr-xr-x   mqm  mqm   ${MQ_INSTALLATION_PATH}/bin
    -r-sr-s---   mqm  mqm   ${MQ_INSTALLATION_PATH}/bin/addmqinf
    -r-sr-s---   mqm  mqm   ${MQ_INSTALLATION_PATH}/bin/amqcrsta
    -r-sr-s---   mqm  mqm   ${MQ_INSTALLATION_PATH}/bin/amqfcxba
    ...
  2. ほとんどすべてのディレクトリーとファイルを "mqm:mqm" が所有していますが、例外として、次のものは root が所有しています。
    dr-xr-x---   root mqm   ${MQ_INSTALLATION_PATH}/bin/security
    -r-sr-x---   root mqm   ${MQ_INSTALLATION_PATH}/bin/security/amqoamax
    -r-sr-x---   root mqm   ${MQ_INSTALLATION_PATH}/bin/security/amqoampx
    このサブディレクトリーは root が所有する必要があります。これらは、 IBM MQ クライアントからのユーザーがパスワードを指定したときにオペレーティング・システムと対話する実行可能ファイルであり、パスワードが有効であるか無効であるかを確認するために IBM MQ キュー・マネージャーからオペレーティング・システムに渡されるためです。
  3. ユーザーは /opt/mqm/lib/iconv ディレクトリー内のファイルを所有していません (このディレクトリーは AIX には存在しません)。 以下に例を示します。
    dr-xr-xr-x   mqm  mqm   ${MQ_INSTALLATION_PATH}/lib/iconv
    -r--r--r--   bin  bin   ${MQ_INSTALLATION_PATH}/lib/iconv/002501B5.tbl
    -r--r--r--   bin  bin   ${MQ_INSTALLATION_PATH}/lib/iconv/002501F4.tbl
    -r--r--r--   bin  bin   ${MQ_INSTALLATION_PATH}/lib/iconv/00250333.tbl
    ...
  4. RPM ベース Linux® システムのフィックスパック保守ディレクトリー。 フィックスパックがインストールされると、既存のファイルは以下の例に示すような構造でこのディレクトリーの下に保存されます。ただし、この例では、 V.R は、インストールされているフィックスパックに応じて、 IBM MQ のバージョンとリリース番号、および表示されるサブディレクトリーを表します。
    drwx------   root root  ${MQ_INSTALLATION_PATH}/maintenance
    drwxr-xr-x   root root  ${MQ_INSTALLATION_PATH}/maintenance/V.R.0.1
    drwxr-xr-x   root root  ${MQ_INSTALLATION_PATH}/maintenance/V.R.0.3
    drwxr-xr-x   root root  ${MQ_INSTALLATION_PATH}/maintenance/V.R.0.4
    ...

問題の解決

setuid プログラムに関する UNIX システム上の問題の 1 つは、 LD* ( AIXでは LD_LIBRARY_PATH、LIBPATH など) などの環境変数を操作することによって、システム・セキュリティーが損なわれる可能性があるということでした。 さまざまな UNIX オペレーティング・システムが setuid プログラムのロード時にこれらの LD* 環境変数を無視するようになったため、これは問題ではなくなりました。

  1. 一部の IBM MQ プログラムが mqm-setuid または mqm-setgidである理由。

    IBM MQでは、ユーザー ID「mqm」と、「mqm」グループの一部である任意の ID が、 IBM MQ 管理ユーザーです。

    IBM MQ キュー・マネージャー・リソースは、このユーザーに対する認証によって保護されます。 キュー・マネージャー・プロセスは、そうしたキュー・マネージャー・リソースを使用して変更するので、リソースにアクセスするために "mqm" 権限を必要とします。 したがって、 IBM MQ キュー・マネージャー・サポート・プロセスは、有効なユーザー ID「mqm」で実行するように設計されています。

    IBM MQ オブジェクトにアクセスする非管理ユーザーのために、IBM MQ にはオブジェクト権限マネージャー (OAM) 機能が用意されています。この機能によって、非管理ユーザーで実行するアプリケーションの要件に合わせて権限の付与/取り消しを実行できます。

    ユーザーに異なるレベルの認証を付与する機能と、 setuid プログラムと setgid プログラムが LD* 変数を無視するという事実により、 IBM MQ バイナリー・ファイルとライブラリー・ファイルは、システムのセキュリティーを決して危険にさらすことはありません。

  2. IBM MQ の機能を低下させずに、社内のセキュリティー・ポリシーに合わせて権限を変更することはできません。

    IBM MQ バイナリーおよびライブラリーのアクセス権および所有権を変更してはなりません。 IBM MQ 機能は、キュー・マネージャー・プロセスが一部のリソースへのアクセスに失敗するなど、この種の変更によって影響を受ける可能性があります。

    権限および所有権がシステムに対するセキュリティー上の脅威を引き起こすことはありません。

    IBM MQ がインストールされている、または IBM MQ のデータが配置されている Linux ハード・ドライブ/ディスクは、nosuid オプションを使用してマウントしないでください。 この構成では IBM MQ の機能が阻害される可能性があります。

    詳しくは、 /var/mqm に適用されるIBM MQ ファイル・システム許可を参照してください。