Enforcing Forward-Edge Control-Flow Integrity in GCC & LLVM

被引:0
|
作者
Tice, Caroline [1 ]
Roeder, Tom [1 ]
Collingbourne, Peter [1 ]
Checkoway, Stephen [2 ]
Erlingsson, Ulfar [1 ]
Lozano, Luis [1 ]
Pike, Geoff [1 ]
机构
[1] Google Inc, Mountain View, CA 94043 USA
[2] Johns Hopkins Univ, Baltimore, MD 21218 USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Constraining dynamic control transfers is a common technique for mitigating software vulnerabilities. This defense has been widely and successfully used to protect return addresses and stack data; hence, current attacks instead typically corrupt vtable and function pointers to subvert a forward edge (an indirect jump or call) in the control-flow graph. Forward edges can be protected using Control-Flow Integrity (CFI) but, to date, CFI implementations have been research prototypes, based on impractical assumptions or ad hoc, heuristic techniques. To be widely adoptable, CFI mechanisms must be integrated into production compilers and be compatible with software-engineering aspects such as incremental compilation and dynamic libraries. This paper presents implementations of fine-grained, forward-edge CFI enforcement and analysis for GCC and LLVM that meet the above requirements. An analysis and evaluation of the security, performance, and resource consumption of these mechanisms applied to the SPEC CPU2006 benchmarks and common benchmarks for the Chromium web browser show the practicality of our approach: these fine-grained CFI mechanisms have significantly lower overhead than recent academic CFI prototypes. Implementing CFI in industrial compiler frameworks has also led to insights into design tradeoffs and practical challenges, such as dynamic loading.
引用
收藏
页码:941 / 955
页数:15
相关论文
共 50 条
  • [1] Hardware-Assisted Code-Pointer Tagging for Forward-Edge Control-Flow Integrity
    Kim, Yonghae
    Kar, Anurag
    Lee, Jaewon
    Lee, Jaekyu
    Kim, Hyesoon
    IEEE COMPUTER ARCHITECTURE LETTERS, 2023, 22 (02) : 117 - 120
  • [2] Enforcing Unique Code Target Property for Control-Flow Integrity
    Hu, Hong
    Qian, Chenxiong
    Yagemann, Carter
    Chung, Simon Pak Ho
    Harris, William R.
    Kim, Taesoo
    Lee, Wenke
    PROCEEDINGS OF THE 2018 ACM SIGSAC CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY (CCS'18), 2018, : 1470 - 1486
  • [3] TitanCFI: Toward Enforcing Control-Flow Integrity in the Root-of-Trust
    Parisi, Emanuele
    Musa, Alberto
    Manoni, Simone
    Ciani, Maicol
    Rossi, Davide
    Barchi, Francesco
    Bartolini, Andrea
    Acquaviva, Andrea
    2024 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION, DATE, 2024,
  • [4] Control-Flow Bending: On the Effectiveness of Control-Flow Integrity
    Carlini, Nicolas
    Barresi, Antonio
    Payer, Mathias
    Wagner, David
    Gross, Thomas R.
    PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM, 2015, : 161 - 176
  • [5] Security Analysis of Processor Instruction Set Architecture for Enforcing Control-Flow Integrity
    Shanbhogue, Vedvyas
    Gupta, Deepak
    Sahita, Ravi
    PROCEEDINGS OF THE 8TH INTERNATIONAL WORKSHOP ON HARDWARE AND ARCHITECTURAL SUPPORT FOR SECURITY AND PRIVACY, HASP '19, 2019,
  • [6] Opaque Control-Flow Integrity
    Mohan, Vishwath
    Larsen, Per
    Brunthaler, Stefan
    Hamlen, Kevin W.
    Franz, Michael
    22ND ANNUAL NETWORK AND DISTRIBUTED SYSTEM SECURITY SYMPOSIUM (NDSS 2015), 2015,
  • [7] Modular Control-Flow Integrity
    Niu, Ben
    Tan, Gang
    ACM SIGPLAN NOTICES, 2014, 49 (06) : 577 - 587
  • [8] TFCFI:Transparent Forward Fine-grained Control-Flow Integrity Protection
    She, Cairui
    Chen, Liwei
    Shi, Gang
    2022 IEEE INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS, TRUSTCOM, 2022, : 407 - 414
  • [9] Out Of Control: Overcoming Control-Flow Integrity
    Goktas, Enes
    Athanasopoulos, Elias
    Bos, Herbert
    Portokalidis, Georgios
    2014 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2014), 2014, : 575 - 589
  • [10] Survey on Control-flow Integrity Techniques
    Zhang Z.
    Xue J.-F.
    Zhang J.-C.
    Chen T.
    Tan Y.-A.
    Li Y.-Z.
    Zhang Q.-X.
    Ruan Jian Xue Bao/Journal of Software, 2023, 34 (01): : 489 - 508