Skip to main content

Showing 1–9 of 9 results for author: Criswell, J

Searching in archive cs. Search in all archives.
.
  1. arXiv:2408.17248  [pdf, other

    cs.CR

    DeTRAP: RISC-V Return Address Protection With Debug Triggers

    Authors: Isaac Richter, Jie Zhou, John Criswell

    Abstract: 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 implem… ▽ More

    Submitted 30 August, 2024; originally announced August 2024.

    Comments: To appear at IEEE Secure Development Conference 2024

  2. arXiv:2310.10298   

    cs.CR

    Fast Summary-based Whole-program Analysis to Identify Unsafe Memory Accesses in Rust

    Authors: Jie Zhou, Mingshen Sun, John Criswell

    Abstract: Rust is one of the most promising systems programming languages to fundamentally solve the memory safety issues that have plagued low-level software for over forty years. However, to accommodate the scenarios where Rust's type rules might be too restrictive for certain systems programming and where programmers opt for performance over security checks, Rust opens security escape hatches allowing wr… ▽ More

    Submitted 26 May, 2024; v1 submitted 16 October, 2023; originally announced October 2023.

    Comments: The previous draft was an ongoing work. We are making significant changes to the core parts of the paper

  3. arXiv:2304.08717  [pdf, other

    cs.CR cs.OS

    InversOS: Efficient Control-Flow Protection for AArch64 Applications with Privilege Inversion

    Authors: Zhuojia Shen, John Criswell

    Abstract: With the increasing popularity of AArch64 processors in general-purpose computing, securing software running on AArch64 systems against control-flow hijacking attacks has become a critical part toward secure computation. Shadow stacks keep shadow copies of function return addresses and, when protected from illegal modifications and coupled with forward-edge control-flow integrity, form an effectiv… ▽ More

    Submitted 19 July, 2023; v1 submitted 17 April, 2023; originally announced April 2023.

    Comments: 18 pages, 9 figures, 4 tables

  4. Fat Pointers for Temporal Memory Safety of C

    Authors: Jie Zhou, John Criswell, Michael Hicks

    Abstract: Temporal memory safety bugs, especially use-after-free and double free bugs, pose a major security threat to C programs. Real-world exploits utilizing these bugs enable attackers to read and write arbitrary memory locations, causing disastrous violations of confidentiality, integrity, and availability. Many previous solutions retrofit temporal memory safety to C, but they all either incur high per… ▽ More

    Submitted 19 March, 2023; v1 submitted 26 August, 2022; originally announced August 2022.

  5. arXiv:2006.00076  [pdf, other

    cs.CR

    Fast Execute-Only Memory for Embedded Systems

    Authors: Zhuojia Shen, Komail Dharsee, John Criswell

    Abstract: Remote code disclosure attacks threaten embedded systems as they allow attackers to steal intellectual property or to find reusable code for use in control-flow hijacking attacks. Execute-only memory (XOM) prevents remote code disclosures, but existing XOM solutions either require a memory management unit that is not available on ARM embedded systems or incur significant overhead. We present Pic… ▽ More

    Submitted 4 September, 2020; v1 submitted 29 May, 2020; originally announced June 2020.

    Comments: 8 pages, 6 figures, 3 tables

  6. arXiv:1910.12157  [pdf, other

    cs.CR eess.SY

    Silhouette: Efficient Protected Shadow Stacks for Embedded Systems

    Authors: Jie Zhou, Yufei Du, Zhuojia Shen, Lele Ma, John Criswell, Robert J. Walls

    Abstract: Microcontroller-based embedded systems are increasingly used for applications that can have serious and immediate consequences if compromised---including automobile control systems, smart locks, drones, and implantable medical devices. Due to resource and execution-time constraints, C is the primary language used for programming these devices. Unfortunately, C is neither type-safe nor memory-safe,… ▽ More

    Submitted 25 June, 2020; v1 submitted 26 October, 2019; originally announced October 2019.

  7. arXiv:1903.10651  [pdf, other

    cs.CR

    Restricting Control Flow During Speculative Execution with Venkman

    Authors: Zhuojia Shen, Jie Zhou, Divya Ojha, John Criswell

    Abstract: Side-channel attacks such as Spectre that utilize speculative execution to steal application secrets pose a significant threat to modern computing systems. While program transformations can mitigate some Spectre attacks, more advanced attacks can divert control flow speculatively to bypass these protective instructions, rendering existing defenses useless. In this paper, we present Venkman: a sy… ▽ More

    Submitted 25 March, 2019; originally announced March 2019.

  8. Fast Intra-kernel Isolation and Security with IskiOS

    Authors: Spyridoula Gravani, Mohammad Hedayati, John Criswell, Michael L. Scott

    Abstract: The kernels of operating systems such as Windows, Linux, and MacOS are vulnerable to control-flow hijacking. Defenses exist, but many require efficient intra-address-space isolation. Execute-only memory, for example, requires read protection on code segments, and shadow stacks require protection from buffer overwrites. Intel's Protection Keys for Userspace (PKU) could, in principle, provide the in… ▽ More

    Submitted 2 August, 2021; v1 submitted 11 March, 2019; originally announced March 2019.

  9. arXiv:1810.00905  [pdf, other

    cs.PL

    Codestitcher: Inter-Procedural Basic Block Layout Optimization

    Authors: Rahman Lavaee, John Criswell, Chen Ding

    Abstract: Modern software executes a large amount of code. Previous techniques of code layout optimization were developed one or two decades ago and have become inadequate to cope with the scale and complexity of new types of applications such as compilers, browsers, interpreters, language VMs and shared libraries. This paper presents Codestitcher, an inter-procedural basic block code layout optimizer whi… ▽ More

    Submitted 1 October, 2018; originally announced October 2018.

    Comments: 24 pages, 6 figures, preprint