vfGuard: Strict Protection for Virtual Function Calls in COTS C plus plus Binaries

被引:39
|
作者
Prakash, Aravind [1 ]
Hu, Xunchao [1 ]
Yin, Heng [1 ]
机构
[1] Syracuse Univ, Dept EECS, Syracuse, NY 13244 USA
基金
美国国家科学基金会;
关键词
D O I
10.14722/ndss.2015.23297
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Control-Flow Integrity (CFI) is an important security property that needs to be enforced to prevent control-flow hijacking attacks. Recent attacks have demonstrated that existing CFI protections for COTS binaries are too permissive, and vulnerable to sophisticated code reusing attacks. Accounting for control flow restrictions imposed at higher levels of semantics is key to increasing CFI precision. In this paper, we aim to provide more stringent protection for virtual function calls in COTS C++ binaries by recovering C++ level semantics. To achieve this goal, we recover C++ semantics, including VTables and virtual callsites. With the extracted C++ semantics, we construct a sound CFI policy and further improve the policy precision by devising two filters, namely "Nested Call Filter" and "Calling Convention Filter". We implement a prototype system called vfGuard, and evaluate its accuracy, precision, effectiveness, coverage and performance overhead against a test set including complex C++ binary modules used by Internet Explorer. Our experiments show a runtime overhead of 18.3% per module. On SpiderMonkey, an open-source JavaScript engine used by Firefox, vfGuard generated 199 call targets per virtual callsite - within the same order of magnitude as those generated from a source code based solution. The policies constructed by vfGuard are sound and of higher precision when compared to state-of-the-art binary-only CFI solutions.
引用
收藏
页数:15
相关论文
共 50 条
  • [1] Strict Virtual Call Integrity Checking for C plus plus Binaries
    Elsabagh, Mohamed
    Fleck, Dan
    Stavrou, Angelos
    PROCEEDINGS OF THE 2017 ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (ASIA CCS'17), 2017, : 140 - 154
  • [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] 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
  • [4] 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,
  • [5] 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
  • [6] 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
  • [7] DSIbin: Identifying Dynamic Data Structures in C/C plus plus Binaries
    Rupprecht, Thomas
    Chen, Xi
    White, David H.
    Boockmann, Jan H.
    Luettgen, Gerald
    Bos, Herbert
    PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 331 - 341
  • [8] MemPick: High-Level Data Structure Detection in C/C plus plus Binaries
    Haller, Istvan
    Slowinska, Asia
    Bos, Herbert
    2013 20TH WORKING CONFERENCE ON REVERSE ENGINEERING (WCRE), 2013, : 32 - 41
  • [9] Windows Malware Binaries in C/C plus plus GitHub Repositories: Prevalence and Lessons Learned
    La Cholter, William
    Elder, Matthew
    Stalick, Antonius
    ICISSP: PROCEEDINGS OF THE 7TH INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS SECURITY AND PRIVACY, 2021, : 475 - 484
  • [10] A Resizable C plus plus Container using Virtual Memory
    Rojc, Blaz
    Depolli, Matjaz
    PROCEEDINGS OF THE 16TH INTERNATIONAL CONFERENCE ON SOFTWARE TECHNOLOGIES (ICSOFT), 2021, : 481 - 488