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 条
  • [41] Full Spatial and Temporal Memory Safety for C
    Nagarakatte, Santosh
    IEEE SECURITY & PRIVACY, 2024, 22 (04) : 30 - 39
  • [42] Formalization of Memory Transfer Language with C, C plus plus and Java']Java on the Mold of Register Transfer Language
    Mselle, Leonard J.
    2014 INTERNATIONAL CONFERENCE ON INFORMATION SCIENCE AND APPLICATIONS (ICISA), 2014,
  • [43] EffectiveSan: Type and Memory Error Detection using Dynamically Typed C/C plus
    Duck, Gregory J.
    Yap, Roland H. C.
    PROCEEDINGS OF THE 39TH ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, PLDI 2018, 2018, : 181 - 195
  • [44] Leveraging C plus plus Meta-programming Capabilities to Simplify the Message Passing Programming Model
    Pellegrini, Simone
    Prodan, Radu
    Fahringer, Thomas
    RECENT ADVANCES IN THE MESSAGE PASSING INTERFACE, 2011, 6960 : 302 - 311
  • [45] EffectiveSan: Type and Memory Error Detection using Dynamically Typed C/C plus
    Duck, Gregory J.
    Yap, Roland H. C.
    ACM SIGPLAN NOTICES, 2018, 53 (04) : 181 - 195
  • [46] Learning-Based Memory Allocation for C plus plus Server Workloads
    Lea, Doug
    COMMUNICATIONS OF THE ACM, 2024, 67 (04) : 82 - 82
  • [47] Learning-based Memory Allocation for C plus plus Server Workloads
    Maas, Martin
    Andersen, David G.
    Isard, Michael
    Javanmard, Mohammad Mahdi
    McKinley, Kathryn S.
    Raffel, Colin
    TWENTY-FIFTH INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXV), 2020, : 541 - 556
  • [48] Pattern-based Synthesis of Synchronization for the C plus plus Memory Model
    Meshman, Yuri
    Rinetzky, Noam
    Yahav, Eran
    PROCEEDINGS OF THE 15TH CONFERENCE ON FORMAL METHODS IN COMPUTER-AIDED DESIGN (FMCAD 2015), 2015, : 120 - 127
  • [49] C-2PO: AWeakly Relational Pointer Domain "These Are Not the Memory Cells You Are Looking For"
    Ghidini, Rebecca
    Erhard, Julian
    Schwarz, Michael
    Seidl, Helmut
    PROCEEDINGS OF THE 10TH ACM SIGPLAN INTERNATIONAL WORKSHOP ON NUMERICAL AND SYMBOLIC ABSTRACT DOMAINS, NSAD 2024, 2024, : 2 - 9
  • [50] A CHERI C Memory Model for Verified Temporal Safety
    Zaliva, Vadim
    Memarian, Kayvan
    Campbell, Brian
    Almeida, Ricardo
    Filardo, Nathaniel
    Stark, Ian
    Sewell, Peter
    PROCEEDINGS OF THE 14TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON CERTIFIED PROGRAMS AND PROOFS, CPP 2025, 2025, : 112 - 126