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 条
  • [1] vfGuard: Strict Protection for Virtual Function Calls in COTS C plus plus Binaries
    Prakash, Aravind
    Hu, Xunchao
    Yin, Heng
    22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [2] Devil is Virtual: Reversing Virtual Inheritance in C plus plus Binaries
    Erinfolami, Rukayat Ayomide
    Prakash, Aravind
    CCS '20: PROCEEDINGS OF THE 2020 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2020, : 133 - 148
  • [3] Boosting the Precision of Virtual Call Integrity Protection with Partial Pointer Analysis for C plus
    Fan, Xiaokang
    Sui, Yulei
    Liao, Xiangke
    Xue, Jingling
    PROCEEDINGS OF THE 26TH ACM SIGSOFT INTERNATIONAL SYMPOSIUM ON SOFTWARE TESTING AND ANALYSIS (ISSTA'17), 2017, : 329 - 340
  • [4] Model checking C plus plus programs
    Monteiro, Felipe R.
    Gadelha, Mikhail R.
    Cordeiro, Lucas C.
    SOFTWARE TESTING VERIFICATION & RELIABILITY, 2022, 32 (01):
  • [5] Model Checking of C and C plus plus with DIVINE 4
    Baranova, Zuzana
    Barnat, Jiri
    Kejstova, Katarina
    Kucera, Tadeas
    Lauko, Henrich
    Mrazek, Jan
    Rockai, Petr
    Still, Vladimir
    AUTOMATED TECHNOLOGY FOR VERIFICATION AND ANALYSIS (ATVA 2017), 2017, 10482 : 201 - 207
  • [6] Summary of Model Checking C plus plus Programs
    Monteiro, Felipe R.
    Gadelha, Mikhail R.
    Cordeiro, Lucas C.
    2022 IEEE 15TH INTERNATIONAL CONFERENCE ON SOFTWARE TESTING, VERIFICATION AND VALIDATION (ICST 2022), 2022, : 461 - 461
  • [7] Model checking C plus plus programs with exceptions
    Rockai, P.
    Barnat, J.
    Brim, L.
    SCIENCE OF COMPUTER PROGRAMMING, 2016, 128 : 68 - 85
  • [8] Recovering Container Class Types in C plus plus Binaries
    Wang, Xudong
    Xu, Xuezheng
    Li, Qingan
    Yuan, Mengting
    Xue, Jingling
    CGO '22: PROCEEDINGS OF THE 2022 IEEE/ACM INTERNATIONAL SYMPOSIUM ON CODE GENERATION AND OPTIMIZATION (CGO), 2022, : 131 - 143
  • [9] Checking C plus plus Codes for Compatibility with Operator Overloading
    Hueck, Alexander
    Bischof, Christian
    Utke, Jean
    2015 IEEE 15TH INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM), 2015, : 91 - 100
  • [10] Scalable data structure detection and classification for C/C plus plus binaries
    Haller, Istvan
    Slowinska, Asia
    Bos, Herbert
    EMPIRICAL SOFTWARE ENGINEERING, 2016, 21 (03) : 778 - 810