Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.15. ptrace()の無効化
ptrace()
システムコールを使用すると、1 つのプロセスが別のプロセスの実行を確認し、そのメモリーとレジスタを変更できるようになります。この呼び出しは、主に、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