回答:
記事によると、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 unlimited
ASLRを「無効にする」ことができます。
編集(2016年4月):ulimit -s unlimited
は修正され、CVE-2016-3672が割り当てられました。
uname -m
使用することもできarch
ます。
arch
はbusyboxアプレットとして利用できません