An algorithm for assigning random addresses to various program components in the memory space. ASLR is used in operating systems to reduce the risk of vulnerabilities being exploited to gain access to memory locations, such as buffer overflow. It makes it harder for an attacker to determine the position of a specific block of a target program in RAM, reducing the likelihood of a successful attack.