发表在NDSS‘16上的论How to Make ASLR Win the Clone Wars: Runtime Re-Randomization。这篇文章提出了一个RuntimeASLR的机制,让fork()出来的子进程内存空间地址重新随机化。
Background
在Apache,Nignx和OpenSSH这类的服务程序里,都会用fork()系统调用来创建子进程。出于效率,还有内存资源共享等因素的考虑,在fork()调用之后不会继续调用execve()执行一个新的程序镜像。这就导致了,fork()出来的子进程和父进程的内存空间排布是一样。这就破坏了ASLR的保护机制。
这篇文章提出了一个RuntimeASLR的机制,让fork()出来的子进程内存空间地址重新随机化。