Control-flow integrity: Precision, security, and performance
Memory corruption errors in C/C++ programs remain the most common source of security
vulnerabilities in today's systems. Control-flow hijacking attacks exploit memory corruption …
vulnerabilities in today's systems. Control-flow hijacking attacks exploit memory corruption …
A survey on systems security metrics
Security metrics have received significant attention. However, they have not been
systematically explored based on the understanding of attack-defense interactions, which …
systematically explored based on the understanding of attack-defense interactions, which …
Code-pointer integrity
In this chapter, we describe code-pointer integrity (CPI), a new design point that guarantees
the integrity of all code pointers in a program (eg, function pointers, saved return addresses) …
the integrity of all code pointers in a program (eg, function pointers, saved return addresses) …
Data-oriented programming: On the expressiveness of non-control data attacks
As control-flow hijacking defenses gain adoption, it is important to understand the remaining
capabilities of adversaries via memory exploits. Non-control data exploits are used to mount …
capabilities of adversaries via memory exploits. Non-control data exploits are used to mount …
Control flow and code integrity for COTS binaries: An effective defense against real-world ROP attacks
Despite decades of sustained effort, memory corruption attacks continue to be one of the
most serious security threats faced today. They are highly sought after by attackers, as they …
most serious security threats faced today. They are highly sought after by attackers, as they …
Everything old is new again: Binary security of {WebAssembly}
WebAssembly is an increasingly popular compilation target designed to run code in
browsers and on other platforms safely and securely, by strictly separating code and data …
browsers and on other platforms safely and securely, by strictly separating code and data …
SoK: Shining light on shadow stacks
Control-Flow Hijacking attacks are the dominant attack vector against C/C++ programs.
Control-Flow Integrity (CFI) solutions mitigate these attacks on the forward edge, ie, indirect …
Control-Flow Integrity (CFI) solutions mitigate these attacks on the forward edge, ie, indirect …
Where does it go? refining indirect-call targets with multi-layer type analysis
System software commonly uses indirect calls to realize dynamic program behaviors.
However, indirect-calls also bring challenges to constructing a precise control-flow graph …
However, indirect-calls also bring challenges to constructing a precise control-flow graph …
Block oriented programming: Automating data-only attacks
With the widespread deployment of Control-Flow Integrity (CFI), control-flow hijacking
attacks, and consequently code reuse attacks, are significantly more difficult. CFI limits …
attacks, and consequently code reuse attacks, are significantly more difficult. CFI limits …
Enforcing unique code target property for control-flow integrity
The goal of control-flow integrity (CFI) is to stop control-hijacking attacks by ensuring that
each indirect control-flow transfer (ICT) jumps to its legitimate target. However, existing …
each indirect control-flow transfer (ICT) jumps to its legitimate target. However, existing …