Proceedings 2016 Network and Distributed System Security Symposium 2016
DOI: 10.14722/ndss.2016.23421
|View full text |Cite
|
Sign up to set email alerts
|

Protecting C++ Dynamic Dispatch Through VTable Interleaving

Abstract: With new defenses against traditional control-flow attacks like stack buffer overflows, attackers are increasingly using more advanced mechanisms to take control of execution. One common such attack is vtable hijacking, in which the attacker exploits bugs in C++ programs to overwrite pointers to the virtual method tables (vtables) of objects. We present a novel defense against this attack. The key insight of our approach is a new way of laying out vtables in memory through careful ordering and interleaving. Al… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
44
0

Year Published

2016
2016
2022
2022

Publication Types

Select...
5
4
1

Relationship

0
10

Authors

Journals

citations
Cited by 46 publications
(44 citation statements)
references
References 20 publications
0
44
0
Order By: Relevance
“…CFI mechanisms work by using static analysis to create an over approximation of the control-flow graph (CFG), and then enforce at runtime that all transitions must be within the statically computed CFG. After the initial proposal, follow on research has removed the need for whole program analysis [57], [58], and specialized CFI to use additional information in C++ programs when protecting virtual calls [59], [60]. To improve the precision of the CFG construction underlying CFI, more advanced static analysis techniques have been proposed [61].…”
Section: Related Workmentioning
confidence: 99%
“…CFI mechanisms work by using static analysis to create an over approximation of the control-flow graph (CFG), and then enforce at runtime that all transitions must be within the statically computed CFG. After the initial proposal, follow on research has removed the need for whole program analysis [57], [58], and specialized CFI to use additional information in C++ programs when protecting virtual calls [59], [60]. To improve the precision of the CFG construction underlying CFI, more advanced static analysis techniques have been proposed [61].…”
Section: Related Workmentioning
confidence: 99%
“…A lot of work has been done on security implications of how dynamic dispatch is implemented [Borchert and Spinczyk 2016;Bounov et al 2016;Dewey and Giffin 2012;Elsabagh et al 2017;Gawlik and Holz 2014;Haller et al 2015;Jang et al 2014;Miller et al 2014;Prakash et al 2015;Sarbinowski et al 2016;Tice et al 2014;Zhang et al , 2016Zixiang et al 2016]. Our work is concerned with object sharing, but security implications would be interesting to study.…”
Section: Implementations Of Dynamic Dispatchmentioning
confidence: 99%
“…While their attack targets similar components to ours, these two attacks are conceptually different. The PS Vita attack is based on a well-known COOP-style attack which overwrites object's virtual function table (vtable) pointer with a pointer to a fake vtable [51], and thus this attack would be prevented by existing defenses against vtable corruption or vtable reuse attacks [14], [24], [67]. In contrast, our attack deliberately overwrites the internal data of a JavaScript object (not the vtable pointers of any objects with virtual methods) to invoke a chosen function; in fact, this manipulates how the bytecode interpreter interprets the corrupted JavaScript object.…”
Section: Related Workmentioning
confidence: 99%