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
来源
PROCEEDINGS OF THE 2017 ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (ASIA CCS'17) | 2017年
基金
美国国家科学基金会;
关键词
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 条
  • [41] Real-time information integrity = system integrity plus data integrity plus continuous assurances
    Flowerday, S
    von Solms, R
    COMPUTERS & SECURITY, 2005, 24 (08) : 604 - 613
  • [42] C for C plus plus programmers
    Stevens, A
    DR DOBBS JOURNAL, 1997, 22 (07): : 99 - 102
  • [43] C plus plus and Interoperability Between Libraries: The GraphBLAS C plus plus Specification
    Brock, Benjamin
    McMillan, Scott
    Buluc, Aydin
    Mattson, Timothy G.
    Moreira, Jose E.
    2023 IEEE INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS, IPDPSW, 2023, : 207 - 215
  • [44] Veamy: an extensible object-oriented C plus plus library for the virtual element method
    Ortiz-Bernardin, A.
    Alvarez, C.
    Hitschfeld-Kahler, N.
    Russo, A.
    Silva-Valenzuela, R.
    Olate-Sanzana, E.
    NUMERICAL ALGORITHMS, 2019, 82 (04) : 1189 - 1220
  • [45] C plus plus builder
    Brauer, R
    DR DOBBS JOURNAL, 1997, 22 (07): : 12 - 12
  • [46] C plus plus constructors
    Meyers, S
    DR DOBBS JOURNAL, 1997, 22 (05): : 10 - 10
  • [47] C plus plus standards
    Myers, N
    DR DOBBS JOURNAL, 1997, 22 (11): : 10 - +
  • [48] C plus plus evolves!
    Naumann, Axel
    20TH INTERNATIONAL CONFERENCE ON COMPUTING IN HIGH ENERGY AND NUCLEAR PHYSICS (CHEP2013), PARTS 1-6, 2014, 513
  • [49] ALCOA plus and Data Integrity
    Schniepp, Susan J.
    BIOPHARM INTERNATIONAL, 2019, 32 (10) : 54 - +
  • [50] C plus plus constructors
    Plochan, F
    DR DOBBS JOURNAL, 1997, 22 (08): : 10 - +