Which answer accurately captures the purpose of 'Address Space Layout Randomization' (ASLR) on Android and iOS?
- A.ASLR randomizes the memory addresses of the stack, heap, and loaded libraries each time a process starts, forcing attackers to guess or leak addresses before constructing reliable exploits
- B.ASLR randomizes the CPU core an app runs on at each launch, and the shuffle frustrates a side-channel attack that depends on sharing a cache line with the thread it is watching
- C.ASLR randomizes the uid the platform assigns to an app on each install, and the changing identity keeps a tracker from fingerprinting a handset across repeated reinstalls of the same package
- D.ASLR randomizes the file-based encryption keys on each boot, and the fresh key material means a copy of the flash taken yesterday no longer decrypts against the running system
Why A is correct
ASLR is enabled on both Android and iOS. Without ASLR, memory corruption exploits (buffer overflows, use-after-free) can jump to known addresses. With ASLR, attackers must first find an information disclosure vulnerability to leak a runtime address before they can construct reliable ROP/JOP chains. ASLR is most effective combined with W^X (write xor execute).
Know someone studying for Mobile Security Fundamentals? Send them this one.