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