===== Overview ===== ASLR (Address Space Layout Randomization) stuff (exec shield?). Links: * [[https://lwn.net/Articles/569635/|Kernel address space layout randomization (LWN, 2013)]] * [[https://linux-audit.com/linux-aslr-and-kernelrandomize_va_space-setting/|Linux and ASLR: kernel/randomize_va_space]] * [[https://securityetalii.es/2013/02/03/how-effective-is-aslr-on-linux-systems/|How Effective is ASLR on Linux Systems? (2013)]] Questions: * What about kernel ASLR (KASLR)? Look for ''RANDOMIZE'' options. ===== Basics ===== Binaries must be position-independent executables, so worthless on statically-compiled binaries. Possible settings: * 0 – No randomization. Everything is static. * 1 – Conservative randomization. Shared libraries, stack, mmap(), VDSO and heap are randomized. * 2 – Full randomization. In addition to elements listed in the previous point, memory managed through brk() is also randomized. ===== Checking and changing ===== Checking: $ sysctl -a --pattern randomize kernel.randomize_va_space = 2 $ Changing: # echo 2 > /proc/sys/kernel/randomize_va_space # sysctl -w kernel.randomize_va_space=2