Go to main content
Oracle® Solaris 11.3 でのシステムおよび接続されたデバイスのセキュリティー保護

印刷ビューの終了

更新: 2017 年 3 月
 
 

プロセススタックおよびプロセスヒープからの悪意のあるコードの実行を防止する方法

32 ビットの実行可能スタックのセキュリティーリスクに関する説明については、悪影響からのプロセスヒープと実行可能スタックの保護を参照してください。

始める前に

root 役割になる必要があります。詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。

  1. nxstack および nxheap セキュリティー拡張のステータスを表示します。

    –p オプションは解析可能な出力を提供します。例:

    $ sxadm info
    EXTENSION           STATUS                        CONFIGURATION
    aslr                enabled (tagged-files)        default (default)
    nxstack             enabled (all)                 enabled (default)
    nxheap              disabled                      disabled
    
    $ sxadm info -p
    aslr:enabled.tagged-files:enabled.default
    nxstack:enabled.all:enabled.all
    nxheap:disabled:disabled
  2. nxheap および nxstack セキュリティー拡張をデフォルトに戻します。

    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 ファイルに格納されます。

  3. (オプション) エラーメッセージのロギングを無効にするには、log プロパティーを無効にします。
    # 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 の互換性を参照してください。