Integrating Static Analyses for High-Precision Control-Flow Integrity

被引:0
作者
Kasten, Florian [1 ]
Zieris, Philipp [1 ]
Horsch, Julian [1 ]
机构
[1] Fraunhofer AISEC, Garching, Germany
来源
PROCEEDINGS OF 27TH INTERNATIONAL SYMPOSIUM ON RESEARCH IN ATTACKS, INTRUSIONS AND DEFENSES, RAID 2024 | 2024年
关键词
Control-Flow Integrity; Static Data-Flow Analysis; Whole-Program Analysis; Pointer Analysis; LLVM; SVF; Multi-Layer Type Analysis;
D O I
10.1145/3678890.3678920
中图分类号
TP [自动化技术、计算机技术];
学科分类号
0812 ;
摘要
Memory corruptions are still one of the most prevalent and severe security vulnerabilities in today's programs. For this reason, several techniques for mitigating software vulnerabilities exist and are used in production systems. An important mitigation involves the prevention of invalid control flow transfers. Attackers often corrupt function pointers to subvert a forward-edge in a program's call graph. Forward-edges can be protected using Control-Flow Integrity (CFI), for which practical implementations already exist. However, current CFI implementations are often imprecise, allowing more control flow transfers than necessary. This often leaves sufficient leeway for an attacker to successfully exploit a program. This paper presents High-Precision CFI (HPCFI), a concept and implementation for precise forward-edge CFI protection of indirect calls in C and C++ programs using a combination of type analysis and static data-flow analysis for determining valid forward-edges. HPCFI is implemented as LLVM compiler passes that perform a precise type analysis and utilize the Static Value-Flow (SVF) framework to conduct a static data-flowanalysis. The combination of type analysis and static data-flow analysis offers higher precision than conventional heuristic-based approaches. Our evaluation, using all compatible benchmarks from SPEC CPU 2017, demonstrates that HPCFI can be effectively applied to large projects with an average performance overhead of only 1.3%, while improving the precision of established CFI mechanisms, such as Clang CFI, by up to 99% and 40% on average.
引用
收藏
页码:419 / 434
页数:16
相关论文
共 41 条
  • [1] Control-Flow Integrity Principles, Implementations, and Applications
    Abadi, Martin
    Budiu, Mihai
    Erlingsson, Ulfar
    Ligatti, Jay
    [J]. ACM TRANSACTIONS ON INFORMATION AND SYSTEM SECURITY, 2009, 13 (01)
  • [2] Preventing memory error exploits with WIT
    Akritidis, Periklis
    Cadar, Cristian
    Raiciu, Costin
    Costa, Manuel
    Castro, Miguel
    [J]. PROCEEDINGS OF THE 2008 IEEE SYMPOSIUM ON SECURITY AND PRIVACY, 2008, : 263 - +
  • [3] ANDERSEN L. O., 1994, Tech. rep.
  • [4] Android Open Source Project, 2023, Control Flow Integrity
  • [5] Bletsch T., 2011, ASIACCS
  • [6] Mitigating Code-Reuse Attacks with Control-Flow Locking
    Bletsch, Tyler
    Jiang, Xuxian
    Freeh, Vince
    [J]. 27TH ANNUAL COMPUTER SECURITY APPLICATIONS CONFERENCE (ACSAC 2011), 2011, : 353 - 362
  • [7] SoK: Shining Light on Shadow Stacks
    Burow, Nathan
    Zhang, Xinping
    Payer, Mathias
    [J]. 2019 IEEE SYMPOSIUM ON SECURITY AND PRIVACY (SP 2019), 2019, : 985 - 999
  • [8] Control-Flow Integrity: Precision, Security, and Performance
    Burow, Nathan
    Carr, Scott A.
    Nash, Joseph
    Larsen, Per
    Franz, Michael
    Brunthaler, Stefan
    Payer, Mathias
    [J]. ACM COMPUTING SURVEYS, 2017, 50 (01)
  • [9] Carlini N, 2014, PROCEEDINGS OF THE 23RD USENIX SECURITY SYMPOSIUM, P385
  • [10] Carlini N, 2015, PROCEEDINGS OF THE 24TH USENIX SECURITY SYMPOSIUM, P161