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

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/3219

Item Details

Category: SYSTEM AND COMMUNICATIONS PROTECTION, SYSTEM AND INFORMATION INTEGRITY

References: 800-53|SC-39, 800-53|SI-16, CSCv7|8.3

Plugin: Unix

Control ID: 9b96a7bd36ee61a3f75918b0d2305db01ae55706a036e25f9a4406f06bcc26f9