1.5.2 Ensure address space layout randomization (ASLR) is enabled - sysctl

Warning! Audit Deprecated

This audit has been deprecated and will be removed in a future update.

View Next Audit Version

Information

Address space layout randomization (ASLR) is an exploit mitigation technique which randomly arranges the address space of key data areas of a process.

Rationale:

Randomly placing virtual memory regions will make it difficult to write memory page exploits as the memory placement will be consistently shifting.

Solution

Set the following parameter in /etc/sysctl.conf or a /etc/sysctl.d/* file ending in .conf:

kernel.randomize_va_space = 2

Run the following script to comment out entries that override the default setting of kernel.randomize_va_space:

#!/usr/bin/bash

for file in /etc/sysctl.conf /etc/sysctl.d/*.conf /usr/lib/sysctl.d/*.conf /usr/local/lib/sysctl.d/*.conf /run/sysctl.d/*.conf; do
if [ -f '$file' ]; then
grep -Esq '^s*kernel.randomize_va_spaces*=s*([0-1]|[3-9]|[1-9][0-9]+)' '$file' && sed -ri 's/^s*kernel.randomize_va_spaces*=s*([0-1]|[3-9]|[1-9][0-9]+)/# &/gi' '$file'
fi
done

Run the following command to set the active kernel parameter:

# sysctl -w kernel.randomize_va_space=2

Default Value:

kernel.randomize_va_space = 2

See Also

https://workbench.cisecurity.org/files/3228