sxadm exec コマンドの –i オプションは、セキュリティー拡張の構成の継承を有効または無効にします。
使用例 4 セキュリティー拡張の継承の説明この例では、ASLR セキュリティー拡張の構成を継承する場合と継承しない場合を示します。
このシェルのみに対して ASLR を無効にします。
# sxadm exec -s aslr=disable /bin/bash
このシェルからランダム化されたヒープアドレスを確認します。
このシェルから pmap self コマンドを繰り返すと、ランダム化されたヒープアドレスが表示されます。
# pmap self | grep heap 00000054BF32E000 8K rw---i- [ heap ] 00000054BF330000 64K rw---i- [ heap ] # pmap self | grep heap 0000005B50708000 32K rw---i- [ heap ] # pmap self | grep heap 000000A48D30E000 8K rw---i- [ heap ] 000000A48D310000 64K rw---i- [ heap ]
シェルおよびすべての子孫に対して ASLR を無効にし、–i オプションを使用して、シェルを実行します。
# sxadm exec -i -s aslr=disable /bin/bash
このシェルから pmap self コマンドを繰り返すと、ASLR が無効になっている一定のヒープアドレスが表示されます。
# pmap self | grep heap 0000000080000000 64K rw---i- [ heap ] # pmap self | grep heap 0000000080000000 64K rw---i- [ heap ] # pmap self | grep heap 0000000080000000 64K rw---i- [ heap ]
elfdump -d コマンドを使用すると、特定のバイナリがセキュリティー拡張付きでコンパイルされているかどうかを確認できます。バイナリを保護するには、システムでセキュリティー拡張が有効になっている必要があります。次の出力は、3 つの拡張が有効で、2 つが無効であることを示しています。
$ sxadm infoEXTENSION STATUS CONFIGURATION aslr enabled (tagged-files) enabled (default) nxstack enabled (all) enabled (default) nxheap enabled (tagged-files) enabled (default) adiheap not supported not supported adistack not supported not supported
次の出力は、cat コマンドおよび ipsecconf コマンドがセキュリティー拡張で保護されていることを示しています。
$ elfdump -d /bin/cat | grep SUNW_SX [33] SUNW_SX_ASLR 0x2 ENABLE [34] SUNW_SX_NXHEAP 0x2 ENABLE [35] SUNW_SX_NXSTACK 0x2 ENABLE $ elfdump -d /usr/sbin/ipsecconf | grep SUNW_SX [35] SUNW_SX_ASLR 0x2 ENABLE [36] SUNW_SX_NXHEAP 0x2 ENABLE [37] SUNW_SX_NXSTACK 0x2 ENABLE
次の出力は、DHCP および Secure Shell のユーザーランドバイナリがセキュリティー拡張で保護されていることを示しています。
$ elfdump -d /usr/sbin/dhcpagent | grep SUNW_SX [52] SUNW_SX_ASLR 0x2 ENABLE [53] SUNW_SX_NXHEAP 0x2 ENABLE [54] SUNW_SX_NXSTACK 0x2 ENABLE $ elfdump -d /usr/bin/ssh | grep SUNW_SX [43] SUNW_SX_ASLR 0x2 ENABLE [44] SUNW_SX_NXHEAP 0x2 ENABLE [45] SUNW_SX_NXSTACK 0x2 ENABLE