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
    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
    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
    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
    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
    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.
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS, PART VI - ICCSA 2014, 2014, 8584 : 161 - 170
  • [7] Static analysis to make the most of CHERI C/C plus plus for existing code: improving memory safety at scale
    Dudina, Irina
    Stark, Ian
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2025,
  • [8] Enhanced Memory Corruption Detection in C/C plus plus Programs
    Lin, Ching-Yi
    Yang, Wuu
    PROCEEDINGS OF THE 52ND INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING WORKSHOPS PROCEEDINGS, ICPP-W 2023, 2023, : 71 - 78
  • [9] MESH: Compacting Memory Management for C/C plus plus Applications
    Powers, Bobby
    Tench, David
    Berger, Emery D.
    McGregor, Andrew
    PROCEEDINGS OF THE 40TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '19), 2019, : 333 - 346
  • [10] The Semantics of Transactions and Weak Memory in x86, Power, ARM, and C plus
    Chong, Nathan
    Sorensen, Tyler
    Wickerson, John
    ACM SIGPLAN NOTICES, 2018, 53 (04) : 211 - 225