Control-Flow Bending: On the Effectiveness of Control-Flow Integrity

被引:0
|
作者
Carlini, Nicolas [1 ]
Barresi, Antonio [2 ]
Payer, Mathias [3 ]
Wagner, David [1 ]
Gross, Thomas R. [2 ]
机构
[1] Univ Calif Berkeley, Berkeley, CA 94720 USA
[2] Swiss Fed Inst Technol, Zurich, Switzerland
[3] Purdue Univ, W Lafayette, IN 47907 USA
关键词
D O I
暂无
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Control-Flow Integrity (CFI) is a defense which prevents control-flow hijacking attacks. While recent research has shown that coarse-grained CFI does not stop attacks, fine-grained CFI is believed to be secure. We argue that assessing the effectiveness of practical CFI implementations is non-trivial and that common evaluation metrics fail to do so. We then evaluate fully precise static CFI - the most restrictive CFI policy that does not break functionality - and reveal limitations in its security. Using a generalization of non-control-data attacks which we call Control-Flow Bending (CFB), we show how an attacker can leverage a memory corruption vulnerability to achieve Turing-complete computation on memory using just calls to the standard library. We use this attack technique to evaluate fully-precise static CFI on six real binaries and show that in five out of six cases, powerful attacks are still possible. Our results suggest that CFI may not be a reliable defense against memory corruption vulnerabilities. We further evaluate shadow stacks in combination with CFI and find that their presence for security is necessary: deploying shadow stacks removes arbitrary code execution capabilities of attackers in three of six cases.
引用
收藏
页码:161 / 176
页数:16
相关论文
共 50 条
  • [21] Partial Control-Flow Linearization
    Moll, Simon
    Hack, Sebastian
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 543 - 556
  • [22] A pointcut language for control-flow
    Douence, R
    Teboul, L
    GENERATIVE PROGRAMMING AND COMPONENT ENGINEERING 2004, PROCEEDINGS, 2004, 3286 : 95 - 114
  • [23] Demand Control-Flow Analysis
    Germane, Kimball
    McCarthy, Jay
    Adams, Michael D.
    Might, Matthew
    VERIFICATION, MODEL CHECKING, AND ABSTRACT INTERPRETATION, VMCAI 2019, 2019, 11388 : 226 - 246
  • [24] Partial Control-Flow Linearization
    Moll, Simon
    Hack, Sebastian
    ACM SIGPLAN NOTICES, 2018, 53 (04) : 560 - 573
  • [25] A survey of control-flow obfuscations
    Majumdar, Anirban
    Thomborson, Clark
    Drape, Stephen
    INFORMATION SYSTEMS SECURITY, PROCEEDINGS, 2006, 4332 : 353 - +
  • [26] MazeRunner: Evaluating the Attack Surface of Control-Flow Integrity Policies
    Zeng, Dongrui
    Niu, Ben
    Tan, Gang
    2021 IEEE 20TH INTERNATIONAL CONFERENCE ON TRUST, SECURITY AND PRIVACY IN COMPUTING AND COMMUNICATIONS (TRUSTCOM 2021), 2021, : 810 - 821
  • [27] SafeController: Efficient and Transparent Control-Flow Integrity for RTL Design
    Islam, Sheikh Ariful
    Katkoori, Srinivas
    2020 IEEE COMPUTER SOCIETY ANNUAL SYMPOSIUM ON VLSI (ISVLSI 2020), 2020, : 270 - 275
  • [28] Fine-Grained Control-Flow Integrity for Kernel Software
    Ge, Xinyang
    Talele, Nirupama
    Payer, Mathias
    Jaeger, Trent
    1ST IEEE EUROPEAN SYMPOSIUM ON SECURITY AND PRIVACY, 2016, : 179 - 194
  • [29] HCIC: Hardware-Assisted Control-Flow Integrity Checking
    Zhang, Jiliang
    Qi, Binhang
    Qin, Zheng
    Qu, Gang
    IEEE INTERNET OF THINGS JOURNAL, 2019, 6 (01): : 458 - 471
  • [30] 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