ASLR

ASLR(Address space layout randomization)是一种针对缓冲区溢出的安全保护技术,通过对堆、栈、共享库映射等线性区布局的随机化,通过增加攻击者预测目的地址的难度,防止攻击者直接定位攻击代码位置,达到阻止溢出攻击的目的。

控制接口

1
/proc/sys/kernel/randomize_va_space

randomize_va_space的属性:

randomize_va_space作用
0关闭
1mmap basestackvdso page将随机化。这意味着.so文件将被加载到随机地址。链接时指定了-pie选项的可执行程序,其代码段加载地址将被随机化。randomize_va_space缺省为1。此时heap没有随机化
2在1的基础上增加了heap随机化。配置内核时如果禁用CONFIG_COMPAT_BRK,randomize_va_space缺省为2。

操作

查看

1
cat  /proc/sys/kernel/randomize_va_space
1
sysctl -n kernel.randomize_va_space

设置(关闭)

1
echo 0 > /proc/sys/kernel/randomize_va_space
1
sysctl -w kernel.randomize_va_space=0

参考

*地址空间布局随机化(ASLR)增强研究综述
*Remix: On-demand Live Randomization