Title: Hardware-based Always-On Memory Safety
Date: Thursday, July 27th
Time: 8:30 AM – 10:00 AM (EDT)
Location: Klaus 2100
Virtual: Zoom Link (Meeting Code: 854 234 9794, Passcode: 110142)
Yonghae Kim
Ph.D. Candidate
School of Computer Science
Georgia Institute of Technology
Committee:
Dr. Hyesoon Kim (Advisor) - School of Computer Science, Georgia Institute of Technology
Dr. Moinuddin Qureshi - School of Computer Science, Georgia Institute of Technology
Dr. Taesoo Kim - School of Computer Science and School of Cybersecurity and Privacy, Georgia Institute of Technology
Dr. Vivek Sarkar - School of Computer Science, Georgia Institute of Technology
Dr. Jaekyu Lee - Arm
Abstract:
For decades, memory safety issues have exposed substantial security threats to computer systems. Memory safety violations occur when instructions perform illegitimate memory accesses to a program’s address space. There are broadly two types of memory safety violations. If a memory access occurs outside of its allowed range, e.g., out-of- bounds (OOB) access, it violates spatial memory safety. When a memory region is accessed after the region is no longer valid, temporal memory safety is violated, e.g., use-after-free (UAF). Despite long-term efforts to resolve, memory safety issues are still the most prevalent and problematic. Recent studies show that ∼70% of security vulnerabilities addressed in industry stemmed from memory violations.
In this dissertation, we first note the prevalence of control-flow attacks in real world. Control-flow attacks aim to alter the control flow of a program to achieve arbitrary code execution, privilege escalation, etc. To protect systems against such attacks, we propose Code-Pointer Tagging (CPT), a hardware-assisted solution for forward-edge control-flow integrity (CFI). CPT combines security properties of CFI and cryptographic solutions and thereby enables effective detection of malicious control-flow changes. We further analyze the security of existing pointer authentication (PA) solutions and observe that replay attacks, which leak signed pointers from memory and reuse them, remain as the major attack vector. To further harden security, we propose Authenticated Control-Flow Integrity (aCFI). In this work, we form a baseline using Google CFI and Arm PA. On top of our design, we develop a mitigation method for replay attacks, called MAC closure. All together, we demonstrate that aCFI enforces strict CFI combined with PA while sustaining high performance.
Besides control-flow attacks, recent work has shown that Turing-complete attacks are possible without altering the control flow. Such data-oriented attacks corrupt variables that influence a program’s decision making or just leak sensitive information without hijacking the control flow. To prevent such attacks and achieve complete memory safety, we propose defense mechanisms for mitigating root cause violations of memory safety. First, we present Always-On memory Safety (AOS), a low-overhead heap protection mechanism. AOS proposes a data-pointer signing scheme that utilizes the unused upper bits of a pointer for a security purpose. With the proposed hardware support, AOS achieves efficient metadata management and bounds checks transparently performed in hardware. Second, we present RV-CURE, a RISC-V capability architecture that orchestrates compiler, architecture, and system designs. RV-CURE proposes data-pointer tagging (DPT) that generalizes a pointer-tagging method for all memory types, including stack, heap, and global memory. In addition, RV-CURE investigates efficient, lightweight hardware extensions for DPT based on the RISC-V BOOM core.