Software written in low-level languages like C or C++ is prone to memory corruption bugs that allow attackers to access machines, extract information, and install malware. The war in memory is fought by researchers developing defense mechanisms and attackers finding new ways around these protections. Researchers have developed defense mechanisms protecting applications from different forms of attacks. People first need to understand the attack process in order to analyze and compare protection mechanisms. Most often, attackers exploit memory corruption to control program execution by diverting its control flow. Control-flow hijack attacks use memory errors to corrupt a code pointer. Memory Safety mitigates memory corruption by preventing both spatial and temporal errors. Type-safe languages enforce this policy by disallowing pointer arithmetic, checking object bounds at array accesses, and using automatic garbage collection instead of manual memory management.
2-s2.0-84903142379
Stony Brook University
École Polytechnique Fédérale de Lausanne
FireEye, Inc.
Stony Brook University
2014
REVIEWED
OTHER