Strict Virtual Call Integrity Checking for C plus plus Binaries

被引:8
|
作者
Elsabagh, Mohamed [1 ]
Fleck, Dan [1 ]
Stavrou, Angelos [1 ]
机构
[1] George Mason Univ, Dept Comp Sci, Fairfax, VA 22030 USA
基金
美国国家科学基金会;
关键词
Virtual table attacks; C plus; Control flow integrity; Type-call pairing; Static binary analysis;
D O I
10.1145/3052973.3052976
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Modern operating systems are equipped with defenses that render legacy code injection attacks inoperable. However. attackers can bypass these defenses by crafting attacks that reuse existing code in a program's memory. One of the most common classes of attacks manipulates inemory data used indirectly to execute code, such as function pointers. This is especially prevalent in C++ programs, since tables of function pointers (vtables) are used by all major compilers to support polymorphism. In this paper. we propose VCI, binary rewriting system that secures C++ binaries against vtable attacks. VCI works directly on stripped binary files. It identifies and reconstructs various C semantics from the binary, and constructs a strict C++ policy by resolving and pairing virtual function calls (vcalls) with precise sets of target classes. The policy is enforced by instrumenting checks into the binary at wall sites. Experimental results on SPEC CPU2006 and Firefox show that VCI is significantly more precise than state-of-the-art binary solutions. Testing against the ground truth from the source-based defense GCC VTV, VCI achieved greater than 69% precision in most cases, accounting for at least 48% to 99% additional reduction in the attack surface compared to the state-of-the-art binary defenses. VCI incurs a 7.79% average runtime overhead which is comparable to the state-of-the-art. In addition, we discuss how VCI defends against real-world attacks; and how it impacts advanced vtable reuse attacks such as COOP.
引用
收藏
页码:140 / 154
页数:15
相关论文
共 50 条
  • [31] Extraction and Visualization of Call Dependencies for Large C/C plus plus Code Bases: A Comparative Study
    Telea, Alexandru
    Hoogendorp, Hessel
    Ersoy, Ozan
    Reniers, Dennie
    2009 5TH IEEE INTERNATIONAL WORKSHOP ON VISUALIZING SOFTWARE FOR UNDERSTANDING AND ANALYSIS, 2009, : 81 - +
  • [32] DMTI: Accelerating Memory Error Detection in Precompiled C/C plus plus Binaries with ARM Memory Tagging Extension
    Hager-Clukas, Andreas
    Hohentanner, Konrad
    PROCEEDINGS OF THE 19TH ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, ACM ASIACCS 2024, 2024, : 825 - 837
  • [33] NOVT: Eliminating C plus plus Virtual Calls to Mitigate Vtable Hijacking
    Bauer, Markus
    Rossow, Christian
    2021 IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY (EUROS&P 2021), 2021, : 650 - 666
  • [34] The 'virtual economy' of REDD plus projects: does private certification of REDD plus projects ensure their environmental integrity?
    Seyller, C.
    Desbureaux, S.
    Ongolo, S.
    Karsenty, A.
    Simonet, G.
    Faure, J.
    Brimont, L.
    INTERNATIONAL FORESTRY REVIEW, 2016, 18 (02) : 231 - 246
  • [35] ESBMC v7.3: Model Checking C plus plus Programs Using Clang AST
    Song, Kunjian
    Gadelha, Mikhail R.
    Brausse, Franz
    Menezes, Rafael S.
    Cordeiro, Lucas C.
    FORMAL METHODS: FOUNDATIONS AND APPLICATIONS, SBMF 2023, 2024, 14414 : 141 - 152
  • [36] Model Checking of C plus plus Programs Under the x86-TSO Memory Model
    Still, Vladimir
    Barnat, Jiri
    FORMAL METHODS AND SOFTWARE ENGINEERING, ICFEM 2018, 2018, 11232 : 124 - 140
  • [37] Bounded model checking of C plus plus programs based on the Qt cross-platform framework
    Monteiro, Felipe R.
    Garcia, Mario A. P.
    Cordeiro, Lucas C.
    de Lima Filho, Eddie B.
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2017, 27 (03):
  • [38] Extensible Virtual Call Integrity
    Jiang, Yuancheng
    Duck, Gregory J.
    Yap, Roland H. C.
    Liang, Zhenkai
    Yuan, Pinghai
    COMPUTER SECURITY - ESORICS 2022, PT III, 2022, 13556 : 723 - 739
  • [39] SAFEDISPATCH: Securing C plus plus Virtual Calls from Memory Corruption Attacks
    Jang, Dongseok
    Tatlock, Zachary
    Lerner, Sorin
    21ST ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2014), 2014,
  • [40] Strict and bistrict plus-operators
    Azizov T.Y.
    Senderov V.A.
    Khatskevich V.A.
    Journal of Mathematical Sciences, 2014, 200 (3) : 295 - 304