noexec_user_stack および noexec_user_stack_log システム変数は非推奨です。ただし、変数が /etc/system ファイルに残っている場合、実行可能スタックの保護は次のことを強制することで実行されます。
noexec_user_stack が 1 に設定されている場合、nxstack の値はすべてのプロセスで有効なままになります。
noexec_user_stack が 0 に設定されている場合、nxstack の値は tagged-files になります。
noexec_user_stack_log が 1 に設定されている場合、エラーメッセージのログファイルは保持されます。
noexec_user_stack_log が 0 に設定されている場合、エラーメッセージのログファイルは保持されません。
32 ビットの実行可能スタックのセキュリティーリスクに関する説明については、悪影響からのプロセスヒープと実行可能スタックの保護を参照してください。
始める前に
root 役割になる必要があります。詳細は、Securing Users and Processes in Oracle Solaris 11.4 の Using Your Assigned Administrative Rightsを参照してください。
$ sxadm info EXTENSION STATUS CONFIGURATION aslr enabled (tagged-files) enabled (default) nxstack enabled (all) enabled (default) nxheap enabled (tagged-files) enabled (default) adiheap enabled (tagged-files) enabled (default) adistack enabled (tagged-files) enabled (default)
解析可能な出力を得るには、–po オプションを付けてパラメータを指定します。
$ sxadm info -po extension,status,configuration aslr:enabled.tagged-files:enabled.default nxstack:enabled.all:enabled.default nxheap:enabled.tagged-files:enabled.default adiheap:enabled.tagged-files:enabled.default adistack:enabled.tagged-files:enabled.default
nxheap または nxstack セキュリティー拡張がデフォルト値以外の値を表示する場合、カスタマイズを削除します。出力例では、次のコマンドを実行します。
# sxadm delcust nxheap # sxadm info EXTENSION STATUS CONFIGURATION aslr enabled (tagged-files) default (default) nxstack enabled (all) enabled (default) nxheap enabled (tagged-files) enabled (default)
nxheap および nxstack のログは /var/adm/messages ファイルに格納されます。
# sxadm set log=disable nxheap # sxadm set log=disable nxstack # sxadm get log EXTENSION PROPERTY VALUE ... nxstack log disable nxheap log disable
トラブルシューティング
nxstack 設定が無視される場合、noexec_user_stack および noexec_user_stack_log システム変数を /etc/system ファイルから削除します。次に、nxstack セキュリティー拡張を再度有効にします。
/etc/system ファイルで noexec_user_stack を無効にしても、エントリを削除しない場合、タグが付けられたバイナリは引き続き保護されます。この tagged-files 構成では、スタックが実行可能なときにのみ成功できるバイナリを成功させながら、ほとんどの実行可能スタックを悪意のあるコードから保護できます。詳細は、nxstack および noexec_user_stack の互換性を参照してください。