Peer-reviewed

Revisiting Residue Codes for Modern Memories (IEEE Micro - Top Picks)

This article shows how residue codes, traditionally used for compute rather than storage error correction, can be applied to memories with surprising results. We show that adapting residue codes to modern memory systems offers a level of error …

cuCatch: A Debugging Tool for Efficiently Catching Memory Safety Violations in CUDA Applications

CUDA, OpenCL, and OpenACC are the primary means of writing general-purpose software for NVIDIA GPUs, all of which are subject to the same well-documented memory safety vulnerabilities currently plaguing software written in C and C++. One can argue …

Implicit Memory Tagging: No-Overhead Memory Safety Using Alias-Free Tagged ECC

Memory safety is a major security concern for unsafe programming languages, including C/C++ and CUDA/OpenACC. Hardwareaccelerated memory tagging is an effective mechanism for detecting memory safety violations; however, its adoption is challenged by …

Revisiting Residue Codes for Modern Memories

Residue codes have been traditionally used for compute error correction rather than storage error correction. In this paper, we use these codes for storage error correction with surprising results. We find that adapting residue codes to modern memory …

EPI: Efficient Pointer Integrity For Securing Embedded Systems

Code-reuse attacks continue to pose a significant threat to systems security, from resource-constrained environments to data-centers. While current mitigation techniques excel at providing efficient protection for high-end devices, they typically …

No-FAT: Architectural Support for Low Overhead Memory Safety Checks

Memory safety continues to be a significant software reliability and security problem, and low overhead and low complexity hardware solutions have eluded computer designers. In this paper, we explore a pathway to deployable memory safety defenses. …

ZeRØ: Zero-Overhead Resilient Operation Under Pointer Integrity Attacks

A large class of today’s systems require high levels of availability and security. Unfortunately, state-of-the-art security solutions tend to induce crashes and raise exceptions when under attack, trading off availability for security. In this work, …

Practical Byte-Granular Memory Blacklisting using Califorms

Recent rapid strides in memory safety tools and hardware have improved software quality and security. While coarse-grained memory safety has improved, achieving memory safety at the granularity of individual objects remains a challenge due to high …

YOLO: Frequently Resetting Cyber-Physical Systems for Security

A Cyber-Physical System (CPS) is defined by its unique interactions between digital (cyber) computation and physical motion. Their hybrid nature introduces new attack vectors, but also provides an opportunity to design new security defenses. In this …

CryptoImg: Privacy Preserving Processing Over Encrypted Images

Cloud computing services provide a scalable solution for the storage and processing of images and multimedia files. However, concerns about privacy risks prevent users from sharing their personal images with third-party services. In this paper, we …