回答:
記事によると、LinuxシステムでのASLRの有効性は?、/proc/sys/kernel/randomize_va_spaceインターフェースを使用してLinuxでASLRを設定できます。
次の値がサポートされています。
- 0-ランダム化なし。すべてが静的です。
- 1 –保守的なランダム化。共有ライブラリ、スタック、
mmap()VDSO、およびヒープはランダム化されます。- 2 –完全なランダム化。前のポイントでリストされた要素に加えて、管理されるメモリ
brk()もランダム化されます。
それを無効にするには、実行します
echo 0 | sudo tee /proc/sys/kernel/randomize_va_space
再度有効にするには、実行します
echo 2 | sudo tee /proc/sys/kernel/randomize_va_space
これは再起動後も存続しないため、で設定する必要がありますsysctl。次を/etc/sysctl.d/01-disable-aslr.conf含むファイルを追加します。
kernel.randomize_va_space = 0
これを永久に無効にする必要があります。
brk()ですか?
/proc/sys/kernel/randomize_va_spaceインタフェースは、ASLRシステム全体を制御します。
システム全体の変更が必要ない場合は、ADDR_NO_RANDOMIZE パーソナリティを使用して一時的にASLRを無効にしてください。このパーソナリティフラグの制御は、コマンドsetarchとその-Rオプション(マンページ)を使用して実行できます。
以下を使用して、まったく新しいシェルを開くと本当に便利です。
setarch `uname -m` -R /bin/bash
これにより、すべての子プロセス(このシェルから実行されるプログラム)を含むASLRを無効にして、新しいBashシェルが開きます。
ただ、exitあなたが完了したらシェル。
ところで、i386では、ulimit -s unlimitedASLRを「無効にする」ことができます。
編集(2016年4月):ulimit -s unlimitedは修正され、CVE-2016-3672が割り当てられました。
uname -m使用することもできarchます。
archはbusyboxアプレットとして利用できません