Attackers try to hijack the control-flow of a victim’s process by exploiting a run-time vulnerability. Vtable hijacking is a state-of-the-art technique adversaries use to conduct control-flow hijacking attacks. It abuses the reliance of language constructs related to polymorphism on dynamic type information. The Control Flow Integrity (CFI) security policy is a well-established solution designed to prevent attacks that corrupt the control-flow. Deployed defense mechanisms based on CFI are often generic, which means that they do not consider high-level programming language semantics. This makes them vulnerable to vtable hijacking attacks. Object Type Integrity (OTI) is an orthogonal security policy that specifically addresses vtable hijacking. CFIXX is a Clang compiler extension that enforces OTI in the context of dynamic dispatch, which prevents vtable hijacking in this setting. However, this extension does not enforce OTI in context of polymorphism. The contribution of this work is a practical implementation to enable OTI in the context of C++’s run-time type information for the dynamic_cast expressions and the typeid operator.
SEEK ID: https://publications.h-its.org/publications/1801
DOI: 10.11588/emclpp.2023.1.94354
Research Groups: Data Mining and Uncertainty Quantification
Publication type: Journal
Journal: Preprint Series of the Engineering Mathematics and Computing Lab
Citation:
Date Published: 2nd Mar 2023
URL: https://journals.ub.uni-heidelberg.de/index.php/emcl-pp/article/view/94354
Registered Mode: manually
Views: 1362
Created: 16th Feb 2024 at 13:01
Last updated: 5th Mar 2024 at 21:25
This item has not yet been tagged.
None