Buffer overflow vulnerabilities are the most prevalent security
vulnerabilities; they are responsible for over half of the CERT advisories
issued in the last few years. Since many attacks exploit the buffer overflow
vulnerability, techniques to prevent buffer overflow attacks would greatly
increase the difficulty of writing a new worm. We prevent buffer overflows
using hardware methods to guard unmodified binaries using automatic encryption
of return addresses. In addition, we use the same encryption hardware to
provide efficient security for general function pointer protection for modified
binaries. Our solution provides security even when there there is potential
for a read buffer attack, where an attacker is attempting to learn the key in
order to mount a write buffer attack.
Pre-2018 CSE ID: CS2003-0774