CryptSan: Leveraging ARM Pointer Authentication for Memory Safety in C/C plus

被引:2
|
作者
Hohentanner, Konrad [1 ]
Zieris, Philipp [1 ]
Horsch, Julian [1 ]
机构
[1] Fraunhofer AISEC, Garching, Germany
关键词
memory safety; unsafe programming languages; pointer authentication; buffer overflows; use-after-free; CHECKING;
D O I
10.1145/3555776.3577635
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Memory safety bugs remain in the top ranks of security vulnerabilities, even after decades of research on their detection and prevention. Various mitigations have been proposed for C/C++, ranging from language dialects to instrumentation. Among these, compilerbased instrumentation is particularly promising, not requiring manual code modifications and being able to achieve precise memory safety. Unfortunately, existing compiler-based solutions compromise in many areas, including performance but also usability and memory safety guarantees. New developments in hardware can help improve performance and security of compiler-based memory safety. ARM Pointer Authentication, added in the ARMv8.3 architecture, is intended to enable hardware-assisted Control Flow Integrity (CFI). But since its operations are generic, it also enables other, more comprehensive hardware-supported runtime integrity approaches. As such, we propose CryptSan, a memory safety approach based on ARM Pointer Authentication. CryptSan uses pointer signatures to retrofit memory safety to C/C++ programs, protecting heap, stack, and globals against temporal and spatial vulnerabilities. We present a full LLVM-based prototype implementation, running on an M1 MacBook Pro, i.e., on actual ARMv8.3 hardware. Our prototype evaluation shows that the system outperforms similar approaches under real-world conditions. This, together with its interoperability with uninstrumented libraries and cryptographic protection against attacks on metadata, makes CryptSan a viable solution for retrofitting memory safety to C/C++ programs.
引用
收藏
页码:1530 / 1539
页数:10
相关论文
共 50 条
  • [1] A Dynamic Detection Method to C/C plus plus Programs Memory Vulnerabilities Based on Pointer Analysis
    Ma, Rui
    Chen, Lingkui
    Hu, Changzhen
    Xue, Jingfeng
    Zhao, Xiaolin
    [J]. 2013 IEEE 11TH INTERNATIONAL CONFERENCE ON DEPENDABLE, AUTONOMIC AND SECURE COMPUTING (DASC), 2013, : 52 - 57
  • [2] DMTI: Accelerating Memory Error Detection in Precompiled C/C plus plus Binaries with ARM Memory Tagging Extension
    Hager-Clukas, Andreas
    Hohentanner, Konrad
    [J]. PROCEEDINGS OF THE 19TH ACM ASIA CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, ACM ASIACCS 2024, 2024, : 825 - 837
  • [3] Efficient detection of dangling pointer error for C/C plus plus programs
    Zhang, Wenzhe
    [J]. 2ND ANNUAL INTERNATIONAL CONFERENCE ON INFORMATION SYSTEM AND ARTIFICIAL INTELLIGENCE (ISAI2017), 2017, 887
  • [4] C/C plus plus Thread Safety Analysis
    Hutchins, DeLesley
    Ballman, Aaron
    Sutherland, Dean
    [J]. 2014 14TH IEEE INTERNATIONAL WORKING CONFERENCE ON SOURCE CODE ANALYSIS AND MANIPULATION (SCAM 2014), 2014, : 41 - 46
  • [5] On Monitoring C/C plus plus Transactional Memory Programs
    Fiedor, Jan
    Letko, Zdenek
    Lourenco, Joao
    Vojnar, Tomas
    [J]. MATHEMATICAL AND ENGINEERING METHODS IN COMPUTER SCIENCE, MEMICS 2014, 2014, 8934 : 73 - 87
  • [6] Double Pointer Shifting Window C plus plus Algorithm for the Matrix Multiplication
    Respondek, Jerzy S.
    [J]. COMPUTATIONAL SCIENCE AND ITS APPLICATIONS, PART VI - ICCSA 2014, 2014, 8584 : 161 - 170
  • [7] Enhanced Memory Corruption Detection in C/C plus plus Programs
    Lin, Ching-Yi
    Yang, Wuu
    [J]. PROCEEDINGS OF THE 52ND INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOPS PROCEEDINGS, ICPP-W 2023, 2023, : 71 - 78
  • [8] MESH: Compacting Memory Management for C/C plus plus Applications
    Powers, Bobby
    Tench, David
    Berger, Emery D.
    McGregor, Andrew
    [J]. PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 333 - 346
  • [9] The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C plus
    Chong, Nathan
    Sorensen, Tyler
    Wickerson, John
    [J]. ACM SIGPLAN NOTICES, 2018, 53 (04) : 211 - 225
  • [10] The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C plus
    Chong, Nathan
    Sorensen, Tyler
    Wickerson, John
    [J]. PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 211 - 225