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 条
  • [21] Dynamic Binary Instrumentation Based Defense Solution Against Virtual Function Table Hijacking Attacks at C plus plus Binary Programs
    Wang, Yong
    Yan, Hailin
    Liu, Zhenyan
    Xue, Jingfeng
    Hu, Changzhen
    Li, Ming
    2015 10TH INTERNATIONAL CONFERENCE ON P2P, PARALLEL, GRID, CLOUD AND INTERNET COMPUTING (3PGCIC), 2015, : 430 - 434
  • [22] Oxidation protection of C/C composites with a multilayer coating of SiC and Si plus SiC plus SiC nanowires
    Chu Yanhui
    Li Hejun
    Fu Qiangang
    Wang Haipeng
    Hou Xianghui
    Zou Xu
    Shang Gunan
    CARBON, 2012, 50 (03) : 1280 - 1288
  • [23] 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
  • [24] Fast static analysis of C++ virtual function calls
    Bacon, DF
    Sweeney, PF
    ACM SIGPLAN NOTICES, 1996, 31 (10) : 324 - 341
  • [25] An Empirical Study of Function Overloading in C plus
    Wang, Cheng
    Hou, Daqing
    EIGHTH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION, PROCEEDINGS, 2008, : 47 - 56
  • [26] CUP: Comprehensive User-Space Protection for C/C plus
    Burow, Nathan
    McKee, Derrick
    Carr, Scott A.
    Payer, Mathias
    PROCEEDINGS OF THE 2018 ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (ASIACCS'18), 2018, : 381 - 392
  • [27] A C plus plus -LISP-CAD INTERFACE FOR VIRTUAL 2-D GEAR PROTOTYPING
    Spitas, Vasilios
    Spitas, Christos
    TOOLS AND METHODS OF COMPETITIVE ENGINEERING, VOLS 1-2, 2010, : 399 - 405
  • [28] Compiling C/C plus plus SIMD Extensions for Function and Loop Vectorizaion on Multicore-SIMD Processors
    Tian, Xinmin
    Saito, Hideki
    Girkar, Milind
    Preis, Serguei V.
    Kozhukhov, Sergey S.
    Cherkasov, Aleksei G.
    Nelson, Clark
    Panchenko, Nikolay
    Geva, Robert
    2012 IEEE 26TH INTERNATIONAL PARALLEL AND DISTRIBUTED PROCESSING SYMPOSIUM WORKSHOPS & PHD FORUM (IPDPSW), 2012, : 2349 - 2358
  • [29] VPS: Excavating High-Level C plus plus Constructs from Low-Level Binaries to Protect Dynamic Dispatching
    Pawlowski, Andre
    van der Veen, Victor
    Andriesse, Dennis
    van der Kouwe, Erik
    Holz, Thorsten
    Giuffrida, Cristiano
    Bos, Herbert
    35TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSA), 2019, : 97 - 112
  • [30] Virtual Detector of Synchrotron Radiation (VDSR) - a C plus plus parallel code for particle tracking and radiation calculation
    Rykovanov, S. G.
    Chen, M.
    Geddes, C. G. R.
    Schroeder, C. B.
    Esarey, E.
    Leemans, W. P.
    ADVANCED ACCELERATOR CONCEPTS, 2012, 1507 : 399 - 403