kill コマンドに対するバイナリ ファイルの保護

データベース サーバやアプリケーション デーモンなどのミッション クリティカルなプロセスを、サービス妨害攻撃から保護します。ネイティブ UNIX セキュリティ システムでは、プロセス ユーザ ID に基づいてプロセスの保護を行います。これは、ネイティブ UNIX の環境では、root ユーザはすべてのプロセスに対して何でも実行できることを意味します。は、プロセスで実行されている実行可能ファイルに基づいたルールを定義することによって、UNIX プロセスの保護を補強します。プロセスの保護は、そのプロセスのユーザ ID に依存しません。で保護するすべてのプロセスを PROCESS クラスのレコードに定義する必要があります。
capamsc141
データベース サーバやアプリケーション デーモンなどのミッション クリティカルなプロセスを、サービス妨害攻撃から保護します。ネイティブ UNIX セキュリティ システムでは、プロセス ユーザ ID に基づいてプロセスの保護を行います。これは、ネイティブ UNIX の環境では、root ユーザはすべてのプロセスに対して何でも実行できることを意味します。
Privileged Access Manager
は、プロセスで実行されている実行可能ファイルに基づいたルールを定義することによって、UNIX プロセスの保護を補強します。
Privileged Access Manager
プロセスの保護は、そのプロセスのユーザ ID に
依存しません
Privileged Access Manager
で保護するすべてのプロセスを PROCESS クラスのレコードに定義する必要があります。
たとえば、ASCII ビューアである /bin/more の強制終了(kill)を阻止するには、以下の手順に従います。
  1. selang を起動します。
  2. 以下の selang コマンドを入力します。
    newres PROCESS /bin/more defaccess(N) owner(nobody)
    このコマンドは、強制終了(kill)することができないプロセスとして /bin/more を定義します。したがって、デフォルトのアクセス権限は、
    none
    (N)です。
    owner(nobody)
    を設定すると、たとえこのルールを定義したユーザであっても、/bin/more プロセスを強制終了(kill)することはできません。
  3. selang を終了します。
  4. 手順 2 で定義したルールをテストします。
    1. 以下のコマンドを入力します。
      /bin/more /tmp/seosd.trace
    2. /tmp/seosd.trace ファイルのサイズが、/bin/more をただちに終了させない程度の大きさであると仮定して、Ctrl キーを押しながら Z キーを押して、/bin/more プロセスを一時停止します。
    3. 以下のコマンドを入力して、一時停止したジョブの強制終了(kill)を試みます。
      kill %1
      この試みは失敗し、
      Privileged Access Manager
      では、「アクセス許可が拒否されました」というメッセージが表示されます。
例外として、特定のユーザが /bin/more プロセスを強制終了(kill)できるようにするには、以下の selang コマンドを入力します。
authorize PROCESS /bin/more uid(username)
システム上の他のバイナリ実行可能ファイルの強制終了(kill)を防止する場合も、同じ手順に従います。
Privileged Access Manager
では、通常の kill シグナル(SIGTERM)、およびアプリケーションでマスクできない kill シグナル(SIGKILL および SIGSTOP)が保護されます。CA ControlMinder は、SIGHUP や SIGUSR1 などの他のシグナルをプロセスに渡し、kill シグナルを無視するか、kill シグナルに反応するかを決定します。