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,既不是全开启也不是全关闭,而是部分关闭,那这部分到底是什么,很容易产生歧义。
ASLR 不负责代码段以及数据段的随机化工作,这项工作由 PIE 负责。但是只有在开启 A

本文介绍了Linux中的安全编译选项,重点讨论了ALSR(Address Space Layout Randomization)及其子概念PIE(Position Independent Executable)。ALSR通过随机化内存空间地址提高入侵难度,而PIE则负责代码段和数据段的随机化。此外,还提到了堆地址随机化以及PIC(Position Independent Code)的作用。内容还包括如何检查和启用这些安全特性。
最低0.47元/天 解锁文章
652

被折叠的 条评论
为什么被折叠?



