DeTRAP: RISC-V Return Address Protection With Debug Triggers
<|reference_start|>DeTRAP: RISC-V Return Address Protection With Debug Triggers: Modern microcontroller software is often written in C/C++ and suffers from control-flow hijacking vulnerabilities. Previous mitigations suffer from high performance and memory overheads and require either the presence of memory protection hardware or sophisticated program analysis in the compiler.   This paper presents DeTRAP (Debug Trigger Return Address Protection). DeTRAP utilizes a full implementation of the RISC-V debug hardware specification to provide a write-protected shadow stack for return addresses. Unlike previous work, DeTRAP requires no memory protection hardware and only minor changes to the compiler toolchain.   We tested DeTRAP on an FPGA running a 32-bit RISC-V microcontroller core and found average execution time overheads to be between 0.5% and 1.9% on evaluated benchmark suites with code size overheads averaging 7.9% or less.<|reference_end|>
@article{richter2024detrap:,
    title={DeTRAP: RISC-V Return Address Protection With Debug Triggers},
    author={Isaac Richter (University of Rochester) and Jie Zhou (George
  Washington University) and John Criswell (University of Rochester)},
    journal={arXiv preprint arXiv:2408.17248},
    year={2024},
    archivePrefix={arXiv},
    eprint={2408.17248},
    primaryClass={cs.CR}
}