4.15. ptrace() の無効化
ptrace()
システムコールを使用すると、あるプロセスで別のプロセスの実行を監視および制御し、そのメモリーとレジスターを変更できます。この呼び出しは、strace
ユーティリティーの使用など、デバッグ中の開発者が主に使用します。ptrace()
が必要ない場合は無効にして、システムセキュリティーを向上させることができます。これは、deny_ptrace
ブール値を有効にすると実行できます。これにより、unconfined_t
のドメインで実行しているプロセスであっても、他のプロセスでptrace()
を使用できなくなります。
deny_ptrace
ブール値は、既定では無効になっています。これを有効にするには、root で setsebool -P deny_ptrace on を実行します。
~]#
setsebool -P deny_ptrace on
このブール値が有効かどうかを確認するには、次のコマンドを使用します。
~]$
getsebool deny_ptrace
deny_ptrace --> on
このブール値を無効にするには、root でsetsebool -P deny_ptrace off を実行します。
~]#
setsebool -P deny_ptrace off
注記
setsebool -P は永続的な変更を行います。システムを再起動しても変更を持続させない場合は、
-P
オプションを使用しないでください。
このブール値は、Red Hat Enterprise Linux に含まれるパッケージにのみ影響します。したがって、サードパーティーのパッケージでは、依然として
ptrace()
システムコールを使用できます。ptrace()
の使用が許可されているドメインをすべて一覧表示するには、次のコマンドを実行します。setools-console パッケージは、sesearch
ユーティリティーを提供し、パッケージはデフォルトではインストールされないことに注意してください。
~]#
sesearch -A -p ptrace,sys_ptrace -C | grep -v deny_ptrace | cut -d ' ' -f 5