Proceedings of the 10th ACM Symposium on Information, Computer and Communications Security 2015
DOI: 10.1145/2714576.2714635
|View full text |Cite
|
Sign up to set email alerts
|

The Performance Cost of Shadow Stacks and Stack Canaries

Abstract: Control flow defenses against ROP either use strict, expensive, but strong protection against redirected RET instructions with shadow stacks, or much faster but weaker protections without. In this work we study the inherent overheads of shadow stack schemes. We find that the overhead is roughly 10% for a traditional shadow stack. We then design a new scheme, the parallel shadow stack, and show that its performance cost is significantly less: 3.5%. Our measurements suggest it will not be easy to improve perform… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

2
91
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 165 publications
(114 citation statements)
references
References 33 publications
2
91
0
Order By: Relevance
“…[12]. We have also studied those security systems that could succumb to an APT, as SEH, SafeSEH, SEHOP, Stack Cookies, ASLR, PIE or NX (see [13][14][15][16][17][18][19]). …”
Section: Methodsmentioning
confidence: 99%
“…[12]. We have also studied those security systems that could succumb to an APT, as SEH, SafeSEH, SEHOP, Stack Cookies, ASLR, PIE or NX (see [13][14][15][16][17][18][19]). …”
Section: Methodsmentioning
confidence: 99%
“…Forward-edge CFI protects forward branches, such as indirect calls through function pointers or virtual tables, which could be hijacked by an attacker. Backward-edge CFI protects from corruption of return addresses, for example via a shadow stack [12]. One of the main characterizing factors of a CFI approach is its granularity.…”
Section: A Control Flow Integritymentioning
confidence: 99%
“…Statically determining the set of valid return locations is not very precise, as a function can be called from many different places. For this reason, backward-edge CFI implementations often make use of a shadow stack [12], which resides in a protected memory area and stores a copy of the real return address. On returns, the return address fetched from the real stack can be compared to the one from the shadow stack and the program can detect whether it was tampered with.…”
Section: A Control Flow Integritymentioning
confidence: 99%
See 1 more Smart Citation
“…VTV [38], a C ++ aware forward-CFI implementation, which can thus defend against COOP, incurs an average geometric mean overhead of 4.0% on the SPEC CPU2006 C ++ benchmarks using comparable optimization techniques. Dang et al [12] report that a protected traditional shadow stack, necessary to defend against an attacker with arbitrary memory read/write capabilities, incurs an average overhead of 9.7% on SPEC CPU2006. Thus, the comparable overhead to fully protect against both traditional ROP attacks and COOP attacks using state-of-the-art CFI is 13.7%, in contrast to our average total overhead of 8.4%.…”
Section: Performance Evaluationmentioning
confidence: 99%