Linux
地址空间随机化
ALSR(Address Space Layout Randomization)
ALSR将进程的某些内存空间地址进行随机化来增大入侵者预测目的地址的难度,从而降低漏洞被成功利用的风险。
ASLR要求执行程序被加载到内存时,它其中的任意部分都是随机的。包括Stack、Heap、Libs 、mmap、Executable、Linker和VDSO(virtual dynamic shared object)
Linux下ALSR是否开启取决于/proc/sys/kernel/randomize_va_space
的值:
- 0:没有随机化,也就是关闭 ASLR 。
- 1:部分随机化,其中共享库、栈、mmap 以及 VDSO 将被随机化。
- 2:完全的随机化,在 1 的基础上,通过 brk() 分配的内存空间也将被随机化。
ALSR配置的修改
//查看
# sysctl -n kernel.randomize_va_space
# cat /proc/sys/kernel/randomize_va_space
//修改
# sysctl -w kernel.randomize_va_space=0
# echo 0 > /proc/sys/kernel/randomize_va_space
PIE(Position Independent Executable)
ASLR有一个模糊的值1,既不是全开启也不是全关闭